Как могут изображаться объекты операционной системы с которыми работает компьютер

Обновлено: 06.07.2024


Вам хорошо известны такие объекты операционной системы, как рабочий стол, панель задач, окна документов, папок, приложений и т. д.

Рассмотрим одно из средств, позволяющих увидеть, какие файлы хранятся в компьютере.

Окно Компьютер (Мой компьютер) содержит значки всех устройств компьютера, на которых можно хранить файлы (рис. 3).

image

image

Вопросы и задания

3. Какие правила записи имени файла следует соблюдать?

6. Каких действий следует избегать при работе с файлами?

8. Одно из действий в контекстном меню объекта операционной системы всегда выделено полужирным шрифтом. Какое это действие? Почему выбрано именно оно? Каким образом можно выполнить это действие без контекстного меню?

10. Что такое байт, килобайт, мегабайт и гигабайт? Как они связаны между собой?

image

image

Компьютерный практикум

Работаем с основными объектами операционной системы

Задание 1. Оформление рабочего стола

Задание 2. Панель задач и её свойства

Задание 3. Объекты рабочего стола

Задание 4. Свойства компьютера

Задание 4. Свойства компьютера

image

1. С помощью кнопки Система откройте окно устройства хранения данных.
2. Откройте контекстное меню жёсткого диска (разделов диска).
3. В контекстном меню выберите пункт Свойства .
4. Найдите информацию о размере жёсткого диска, объёме занятой и свободной дисковой памяти.
5. Найдите аналогичную информацию о других устройствах хранения данных, имеющихся в вашем компьютере.
6. Закройте окно Свойства .


В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.

Получите невероятные возможности



2. Раздавайте видеоуроки в личные кабинеты ученикам.


3. Смотрите статистику просмотра видеоуроков учениками.

Конспект урока "Объекты операционной системы"

Для изучения объектов операционной системы, необходимо узнать само понятие. Итак, операционная система – это набор специальных программ.

Наиболее распространёнными операционными системами являются операционная система Windows и операционная система Linux.


Запуск (загрузка) операционной системы происходит автоматически при включении компьютера.

Итак, объектами операционной системы являются: рабочий стол, панель задач, окна документов, папок, приложений и т.д.


После загрузки операционной системы на экране компьютера появляется Рабочий стол и панель задач. На рабочем столе размещаются различные значки. Значки – это все объекты, с которыми работает компьютер (программы, документы, папки и т.д.), изображённые на экране небольшими картинками.


Рассмотрим более подробно рабочий стол. На нём размещено множество значков, по виду которых вы сразу можете определить, к какому приложению они относятся. Например, текстовый документ под именем «Список учащихся», графический файл под именем «Логотип», музыкальный файл с названием «Песенка мамонтёнка», папка под именем «Программы», ярлык «Опера Браузер».


Набор значков на различных компьютерах может быть разным, т.к. каждый пользователь размещает на рабочем столе те значки, с которыми он чаще всего работает.

Описание любого из объектов операционной системы можно получить с помощью контекстного меню – правая кнопка мыши. В контекстном меню мы видим все действия, которые могут совершаться с данным объектом. Например, открыть, вырезать, создать ярлык, удалить, переименовать и другие. В конце любого контекстного меню объекта находится действие – «Свойства». Оно позволяет узнать свойства объекта, такие как тип файла, расположение, размер и прочие. Но также можно и изменить некоторые из свойств.


Разберём более подробно некоторые виды объектов операционной системы.

Ярлыки – это значки, которые обычно содержат изображение стрелочки в нижнем левом углу. Они обеспечивают быстрый доступ к какой-либо папке, программе или документу и являются лишь ссылкой на программу или документ. При удалении ярлыка сама программа или документ не удаляются. Для запуска программы с помощью ярлыка, необходимо выполнить на нем двойной щелчок мыши.


Файлы-программы служат для запуска определённой программы.

При нажатии на графический, музыкальный или текстовый файлы откроется окно программы для просмотра или воспроизведения этого файла. Например, если мы откроем графический файл, то запуститься окно для просмотра изображений, если музыкальный, то откроется окно для воспроизведения файла, а если текстовый, то откроется окно программы для просмотра и редактирования документа.

Так же, как мы уже знаем, к объектам операционной системы относятся окна программ. Рассмотрим, как же оно выглядит и изучим его основные элементы.


На рисунке показано окно программы текстового редактора Microsoft Word. Вверху присутствует заголовок окна. На нем расположен слева значок программы; по центру - имя открытого документа и программы, в которой он открыт; справа в углу находятся управляющие кнопки. Первая кнопка предназначена для сворачивания окна, вторая – для раскрытия окна на весь экран. Она используется для восстановления прежних размеров окна. Третья кнопка используется для закрытия окна программы. Так же к элементам окна относятся: лента, Рабочая область, Строка состояния и полосы прокрутки. Окна других программ могут выглядеть немного по-другому, а некоторые элементы вообще могут отсутствовать. Например, окна программ «Блокнот» и «Калькулятор». В программе «Блокнот» отсутствует строка состояния, а в программе «Калькулятор» нет таких элементов как: полоса прокрутки и строка состояния.


Коротко о главном:

Операционная система – это набор специальных программ для обеспечения взаимодействия человека с компьютером и согласованной работы устройств компьютера.

Значки – это все объекты, с которыми работает компьютер (программы, документы, папки и т.д.), изображённые на экране небольшими картинками.

Ярлыки – это значки, которые обычно содержат изображение стрелочки в нижнем левом углу.

Операционная система

№ слайда 1

1. Как компьютер обрабатывает информацию? 2. Язык, на котором «думает» компьютер

№ слайда 2

1. Как компьютер обрабатывает информацию? 2. Язык, на котором «думает» компьютер – какой он? 3. Как вы думаете: есть ли такая профессия, в которой не используется компьютер? 4. Кто сегодня не может обойтись без компьютера? 5. Как компьютер передает и получает информацию? 6. Какое устройство компьютера обрабатывает информацию?

Сегодня мы начинаем разговор о том, благодаря чему компьютер (процессор) обрабат

№ слайда 3

Сегодня мы начинаем разговор о том, благодаря чему компьютер (процессор) обрабатывает информацию

Программа – это последовательность команд, которую выполняет ПК в процессе обраб

№ слайда 4

Программа – это последовательность команд, которую выполняет ПК в процессе обработки информации. Деятельность человека по созданию программ называется – программированием, а люди называются – программистами. Программное обеспечение (ПО) – все многообразие программ, используемых в современном ПК.

Аппаратное обеспечение «hardware» Программное обеспечение «software»

№ слайда 5

Аппаратное обеспечение «hardware» Программное обеспечение «software»

Системное ПО Прикладное ПО Инструментальное программирование Является основным П

№ слайда 6

Системное ПО Прикладное ПО Инструментальное программирование Является основным ПО, неотъемленной частью ПК. Руководит сложной работой всех элементов компьютерной системы, как на аппаратном уровне, так и на программном Предназначено для выполнения конкретных задач пользователя, не прибегая к программированию (текстовый редактор, графический редактор, электронная таблица и др.) Это средство, предназначенное для создания ПО, т.е. того же системного и прикладного ПО. Его составляют разнообразные языки и среды программирования (Паскаль, С, С++ и др.) Таблица

Резидентные программы – это программы, на протяжении всей работы компьютера нахо

№ слайда 7

Резидентные программы – это программы, на протяжении всей работы компьютера находящиеся в его оперативной памяти. Т.к. эти программы на протяжении всего периода включения компьютерной системы следят за ее состоянием (например, операционная система, антивирусная программа). Нерезидентные программы – это программы, которые по окончании своей работы выгружаются полностью или частично из ОЗУ (например, прикладные программы).

ПК работает с информацией по алгоритму, который задается программой, а программа

№ слайда 8

ПК работает с информацией по алгоритму, который задается программой, а программа в свою очередь написана на языке понятном компьютеру. 2. Для того, чтобы ПК мог работать с информацией необходимо не только аппаратное обеспечение – устройства компьютерной системы, но и программное обеспечение которое наделяет ПК мыслями и интеллектом. 3. ПО делится на: системное, прикладное и инструментальное программирование. 4. ПО систематизируется по длительности нахождения в оперативной памяти компьютера на резидентные программы и нерезидентные программы

Впишите пропущенные слова в предложениях: 1. Компьютер без ………………. – это бесполе

№ слайда 9

Впишите пропущенные слова в предложениях: 1. Компьютер без ………………. – это бесполезный хлам, груда железа. И только ……………….. делают его нашим помощником, другом, советчиком. 2. Программирование – деятельность человека по …………………. программы. 3. Для обработки информации на компьютере необходимо иметь ……………………………………. - устройства компьютерной системы («hardware»), но и …………………………………. («software»), которое наделяет компьютер мыслями и интеллектом. 4. …………………… ПО – предназначено для выполнения конкретных задач пользователя. 5. Наиболее дружественно пользователю ………………….. ПО. программ программы созданию не только аппаратное обеспечение программное обеспечение Прикладное системное

«5» - все слова или словосочетания вписаны правильно; «4» - не вписаны два слова

№ слайда 10

«5» - все слова или словосочетания вписаны правильно; «4» - не вписаны два слова или словосочетания; «3» - не вписаны три слова или словосочетания; «2» - не вписано более трех слов или словосочетаний.

1. Выучить основные определения и понятия. 2. Учебник §2.4, устно ответить на во

№ слайда 11

1. Выучить основные определения и понятия. 2. Учебник §2.4, устно ответить на вопросы для размышления.

Операционная система

№ слайда 12

1. Самые первые программы разрабатывались непосредственно на объектно-ориентиров

№ слайда 13

1. Самые первые программы разрабатывались непосредственно на объектно-ориентированном языке и все люди могли заниматься их разработкой, а не только профессиональные программисты. 2. Программа – это последовательность команд, которую выполняет ПК в процессе хранения информации. 3. Все используемые в компьютере программы называются аппаратным обеспечением. 4. Прикладное ПО руководит слаженной работой всех элементов компьютерной системы как на аппаратном уровне, так и на программном уровне. 5. Системные программы – это средства, предназначенные для создания ПО. Найдите и исправьте ошибки в предложениях:

1. Самые первые программы разрабатывались непосредственно на машинном языке и не

№ слайда 14

1. Самые первые программы разрабатывались непосредственно на машинном языке и не все люди могли заниматься их разработкой, только профессиональные программисты. 2. Программа – это последовательность команд, которую выполняет ПК в процессе обработки информации. 3. Все используемые в компьютере программы называются программным обеспечением. 4. Системное ПО руководит слаженной работой всех элементов компьютерной системы как на аппаратном уровне, так и на программном уровне. 5. Инструментальное ПО – это средства, предназначенные для создания ПО. Найдите и исправьте ошибки в предложениях:

«5» - все слова или словосочетания вписаны правильно; «4» - не вписаны два слова

№ слайда 15

«5» - все слова или словосочетания вписаны правильно; «4» - не вписаны два слова или словосочетания; «3» - не вписаны три слова или словосочетания; «2» - не вписано более трех слов или словосочетаний.

1. Как можно комфортно общаться с ПК, не зная его языка? 2. ПК без операционной

№ слайда 16

1. Как можно комфортно общаться с ПК, не зная его языка? 2. ПК без операционной системы: может ли быть такое? 3. Почему операционная система Windows является самой популярной у пользователей?

Операционная система – комплекс программ, обеспечивающих взаимодействие всех апп

№ слайда 17

Операционная система – комплекс программ, обеспечивающих взаимодействие всех аппаратных и программных частей компьютера между собой и взаимодействие пользователя и компьютера.

1. Организация согласованного выполнения всех процессов в компьютере. 2. Обеспеч

№ слайда 18

1. Организация согласованного выполнения всех процессов в компьютере. 2. Обеспечение хранения информации во внешней памяти и обмен с устройствами ввода-вывода, т.е. ОС отвечает за правильный ввод информации с устройства ввода и ее вывод на монитор, принтер и т.д., а также за правильное распределение информации на дисках внешней памяти. 3.Реакция на ошибки и аварийные ситуации. 4. Осуществление диалога и общения с пользователем.

Ядро – переводит команды с языка программ на язык «машинных кодов», понятный ком

№ слайда 19

Ядро – переводит команды с языка программ на язык «машинных кодов», понятный компьютеру. Драйверы – программы, управляющие устройствами. Интерфейс – оболочка, с помощью которой пользователь общается с компьютером.

«окно» по английски «Windows» Приложение - это программа, работающая под управле

№ слайда 20

«окно» по английски «Windows» Приложение - это программа, работающая под управлением Windows.

1. Многозадачность 2. Единый программный интерфейс 3. Единый интерфейс пользоват

№ слайда 21

1. Многозадачность 2. Единый программный интерфейс 3. Единый интерфейс пользователя 4. Графический интерфейс пользователя 5. Единый аппаратно-программный интерфейс

Этапы загрузки ОС Первую свою команду ПК получает от ПЗУ В ПЗУ находятся програм

№ слайда 22

1. Для чего необходима операционная система? 2. Какова структура операционной си

№ слайда 23

1. Для чего необходима операционная система? 2. Какова структура операционной системы? 3. Каковы основные этапы загрузки компьютера? 4. Какие операционные системы вы знаете?

1. Выучить основные определения и понятия. 2. Учебник §2.4 - §2.5, устно ответит

№ слайда 24

1. Выучить основные определения и понятия. 2. Учебник §2.4 - §2.5, устно ответить на вопросы для размышления. 3. Используя новые термины и понятия предыдущего и сегодняшнего урока, составьте кроссворд. Оформите на отдельном листе в нескольких экземплярах. (Можно в электронном варианте)

image

Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.

Насколько глубоко мы погрузимся в тему?

Давайте для начала в общих чертах поговорим об уровнях на которых можно рассматривать компьютер. Каждый уровень основывается на предыдущем. Начнём с самого верха.

Уровень операционной системы. ОС можно рассматривать как:

  • Менеджер ресурсов — память, жёсткие диски, принтеры, экран, клавиатура ограниченные ресурсы которые совместно используются запущенными на компьютере программами.
  • Виртуальная машина — файл это наглядный пример виртуального объекта. Он представляет абстракцию данных на диске, API для работы с ним и так же добавляет концепцию прав доступа. Вместо файла могла быть концепция контейнера данных и совершенно другого API. Таких виртуальных объектов в ОС много.
  • Платформа — ОС предоставляет программные модели и примитивы для построения программ. К примеру Windows Drivers Framework позволяет быстро разрабатывать драйвера, окна в Windows используются для построения сложных пользовательских интерфейсов. Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры (см. LowLevelKeyboard hook).

image

Уровень архитектуры компьютера. Он представлен материнской платой, которая имеет определённый форм-фактор, встроенные функции закодированные в микросхемах называемых чип-сетом и порты, через которые можно расширять функционал компьютера подключив графическую карту, сетевую карту, дополнительную оперативную память (RAM), жёсткие диски, клавиатуру и пр. Порты влияют на скорость работы и возможности компьютера, что и будет определять его назначение будь то сервер для обработки тысяч запросов в секунду, планшет для пользования Интернетом или игровой ПК с несколькими видеокартами. ОС абстрагирует особенности материнской платы.

Микросхемы выглядят как на картинке ниже и представляют собой мини-компьютер выполняющий простые программы для низкоуровневых задач, к примеру прочитать данные от клавиатуры и передать их дальше чтобы они достигли в конечном счёте процессора. Как правило реализованы в виде аналоговой непрограммируемой микросхемы или микроконтроллера, программируемого на языке С.

image

Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.

Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.

image

Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.

Микроархитектура это не то же самое что архитектура. Весь функционал CPU разделён на компоненты, которые работают сообща. Эти компоненты и их взаимодействие и есть микроархитектура. На блок-схеме ниже они представлены цветными прямоугольниками и квадратиками.

image

Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.

Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.

image

image


Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.

image

Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.

image

Мы будем много говорить про уровень ОС и чуть меньше про архитектуру компьютера, микроархитектуру, аналоговые схемы и радиоэлементы. К последней части у вас должно быть понимание как это всё работает вместе.

Основы Операционной Системы

Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям CPU, а роль “Пользователь” может вызывать не все команды процессора и не со всеми аргументами. Поверх этой ролевой модели по принципу клиент-серверной архитектуры построена операционная система, где сервер это ядро, которое и реализовывает функционал ОС, а клиент — это пользовательские программы. В мире Web клиент и сервер разделены физически — это два разных компьютера общающихся по сети. В ОС клиент и сервер живут на одной машине и на одном железе. У сервера есть некий API который позволяет клиентам изменять его состояние, к примеру Twitter API позволяет создавать посты, логиниться и загружать ленту твитов в мобильный клиент. У Windows есть Win API, только более громоздкий в виду более широкого круга задач, на сегодняшний день у винды примерно 330 000 API плюс API для UWP apps. Если концепции Твитера более менее всем понятны — пост, пользователь, фид — то концепции ОС могут потребовать некоторого углубления в её внутренности. Поэтому API Windows могут быть трудно понятными без понимания внутреннего устройства ОС.

На самом деле под ядром понимают три разные вещи. Ядро как весь код ОС. Ядро как подсистема которая отвечает за механизмы ОС, такие как планировщик потоков, переключение контекста, обработка прерываний, свап виртуальный памяти на физическую (Kernel) и ядро подсистемы для поддержки других ОС — CSRSS.exe (Windows), PSXSS.exe (POSIX), OS2SS.exe (OS/2) или WSL (Windows SubSystem for Linux). В данном контексте понимается первый смысл — весь код ОС.

Когда на экране появляется окно, то в серверной части ОС (режим ядра) появляется структура данных которая описывает это окно — его положение на экране, размеры, текст заголовка, оконная функция через которую ОС даёт приложению среагировать на события. Поскольку подсистем в ОС много, то и структур данных описывающих один объект может быть несколько, к примеру информация о пользовательском процессе есть в компонентах:

  • Executive — здесь логика работы ОС. В этом слое проверяется что могут и не могут делать процессы. Здесь хранится инфа о родительском процессе, параметры старта процесса (Process Environment Block), привязанный аккаунт пользователя, имя exe файла процесса.
  • Kernel — здесь реализованы механизмы ОС, такие как планировщик потоков. Здесь хранится сколько времени процесс проводит в режиме пользователя и ядра, к каким процессорам привязаны его потоки, базовый приоритет потоков процесса.
  • Windowing subsystem — инфа о GDI объектах которые используются для рисования в окне. Это такие примитивы как кисти, pen и пр.
  • DirectX — всё что имеет отношение к DirectX: шейдеры, поверхности, DX-объекты, счётчики производительности GPU, настройки памяти графической памяти.
  • Подсистема Windows которая представлена процессом CSRSS.exe (Client Server Runtime SubSystem). Windows ранее поддерживал ОС POSIX (процесс PSXSS.exe) и OS/2 (OS2SS.exe). В те времена возникла идея сделать и Windows такой же подсистемой, но эта было медленно и поэтому скоро часть CSRSS.exe перенесли в win32k.sys, который сейчас разбит на несколько файлов — win32k.sys, win32kbase.sys и win32kfull.sys. Здесь хранится информация о Process Group Data, Shutdown level, Session Data и пр.

Что такое компонент? Это логически сгруппированный функционал. Компонентом можно назвать ООП-класс, dll, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.

Более подробно о разделении на клиент-сервер

Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.

Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.

image

Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.

Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:

image
image

64 битный адрес позволяет адресовать 16 экзабайт, это 18,446,744,073,709,551,616 ячеек памяти. Современные процессоры пока что не поддерживают так много RAM и поэтому используют только младшие 48 бит адреса, остальные 16 заполняются старшим разрядом. Поэтому Win x64 попросту не использует часть адресов, которые помечены на рисунке выше чёрным. Но это не значит, что 64х битный Windows “видит” 256 Tb оперативки. Максимум 8TB виртуальной памяти на архитектуре IA64 и 7TB на x64. Предел физической памяти поддерживаемой Windows 10 — 2TB, потому как с большим количеством Винда не тестировалась. Объём поддерживаемой RAM в Windows 10 определяется во многом редакцией ОС, чем дороже тем больше.

Почему ячейки памяти пронумерованы шестнадцатиричными (HEX) числами, а не десятичными или двоичными? Адрес ячейки это не просто порядковый номер, в нём закодировано три числа по которым эту ячейку можно отобразить на физическую память. Первые два это индексы по которым находится конкретная страница виртуальной памяти, а третье число — смещение от начала страницы. CPU и ОС здесь работают в связке — ОС предоставляет структуру данных по которой CPU находит страницу виртуальной памяти и копирует её в физическую. По HEX номеру можно сразу увидеть как выровнен в памяти адрес. Формат двоичного числа слишком громоздкий, 32 бита (или 64) трудны для восприятия. Десятичный формат — показывает слишком мало информации, тогда как HEX удобный компромисс между десятичной и двоичной системами, средами людей и машин.

Программный способ разделения на клиент-сервер (режим ядра-режим пользователя) гораздо скучнее перечисленных выше механизмов. Процессы и потоки могут быть помечены специальными аттрибутами или же мы можем хранить список указателей на потоки/процессы и проверять их в коде. Если вы хоть раз делали авторизацию в веб-приложении, то хорошо понимаете о чём я говорю.

Из чего состоит Windows?

Абстракция или же разбиение на компоненты есть во всех сферах программирования и интуитивно понятно что Windows тоже делится на какие-то компоненты. Под компонентом понимается какая-то единица функциональности — ООП класс, файл, dll, папка. Компоненты на диаграмме ниже могут быть как индивидуальными *.sys, *.dll файлами, так и просто набором API сгруппированным логически через добавление префикса к имени функции, старая часть системы написана на C, а он не поддерживает классы. Новые части пишутся нередко на C++. В укрупнённом виде Винда выглядит так:

image

Давайте быстренько пробежимся по её компонентам снизу вверх:

  • Hyper-V Hypervisor — слой виртуализации благодаря которому в Windows можно создать виртуальную машину. Иногда говорят, что Hyper-V это минус первый уровень привилегий, однако реализован он в одном уровне привилегий и адресном пространстве что и ядро ОС, за счёт использования слоёной архитектуры ОС ничего не знает о нём.
  • HAL.dll — Hardware Abtraction Layer — изначально задумывался как абстракция над железом — чипсет, материнская плата, процессор — для того чтобы можно было перенести Windows на новую платформу реализовав новый HAL.dll, который будет выбран и скопирован во время установки. По сути это драйвер к устройствам материнской платы, к примеру таймерам, контроллеру прерываний. Сейчас его роль снижена, потому как многие драйвера материнки и чип-сета реализованы в ACPI.sys.

Читайте также: