Устройство которое служит для загрузки компьютера
Для включения практически любого компьютера используется кнопка «Power» («Питание»), расположенная на лицевой части его корпуса. Корректное выключение компьютера производится из операционной системы, хотя можно так же воспользоваться этой кнопкой. Так же кнопка «Power» поможет произвести экстренное выключение в случае «зависания» компьютера.
Рядом с кнопкой включения на системном блоке, часто располагается еще одна кнопка, более маленького размера. Называется она «Reset» («Перезапуск») и служит для аварийной перезагрузки компьютера без выключения питания. На ноутбуках данная кнопка отсутствует.
Монитор имеет собственную кнопку включения и выключения питания. Правда, включить его достаточно лишь в первый раз или после полного отключения электричества. В дальнейшем при включении компьютера, монитор будет включаться автоматически, а при его выключении, автоматически переходить в «спящий режим» (выключаться).
На большинстве компьютеров, после успешной проверки его компонентов, выводится на экран сводная таблица, содержащая информацию о конфигурации системы. Из нее можно узнать о типе и характеристиках установленных процессора, памяти, жесткого диска и прочих устройствах вашего ПК.
Правда, вся эта информация довольно быстро сменяет друг друга на экране и что бы успеть ее увидеть , можно временно приостановить загрузку компьютера с помощью клавиши Pause/Break. Нажмите ее в нужный момент и бегущие строки остановятся. Для возобновления загрузки ПК нажмите любую другую клавишу.
Итак, если аппаратная составляющая вашего компьютера в порядке и средства самотестирования не выявили никаких проблем, то далее начинается непосредственно процесс загрузки операционной системы. В течение некоторого времени в оперативную память и на жесткий диск загружаются самые важные компоненты ОС:
- Ядро, состоящее из комбинации программных и конфигурационных файлов;
- Драйверы, отвечающие за подключение к системе и корректную работу различных устройств;
- Динамические библиотеки, использующиеся разными программами для выполнения основных операций в системе;
- Графическая оболочка (пользовательский интерфейс), то есть, то, что вы будете видеть на экране монитора во время работы с ОС.
Пользователи же в этот момент наблюдают на экране монитора стартовую заставку той операционной системы, которая установлена на вашем компьютере.
Наконец перед вами должен появиться основной экран ОС или так называемый рабочий стол. Еще какое-то непродолжительное время может понадобиться системе для загрузки вспомогательных приложений, например антивируса. После этого экран «успокоится» и на этом загрузку системы можно считать законченной, а компьютер готовым к работе.
Меня зовут Андрей Артемьев, я работаю в 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).
Уровень архитектуры компьютера. Он представлен материнской платой, которая имеет определённый форм-фактор, встроенные функции закодированные в микросхемах называемых чип-сетом и порты, через которые можно расширять функционал компьютера подключив графическую карту, сетевую карту, дополнительную оперативную память (RAM), жёсткие диски, клавиатуру и пр. Порты влияют на скорость работы и возможности компьютера, что и будет определять его назначение будь то сервер для обработки тысяч запросов в секунду, планшет для пользования Интернетом или игровой ПК с несколькими видеокартами. ОС абстрагирует особенности материнской платы.
Микросхемы выглядят как на картинке ниже и представляют собой мини-компьютер выполняющий простые программы для низкоуровневых задач, к примеру прочитать данные от клавиатуры и передать их дальше чтобы они достигли в конечном счёте процессора. Как правило реализованы в виде аналоговой непрограммируемой микросхемы или микроконтроллера, программируемого на языке С.
Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.
Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.
Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.
Микроархитектура это не то же самое что архитектура. Весь функционал CPU разделён на компоненты, которые работают сообща. Эти компоненты и их взаимодействие и есть микроархитектура. На блок-схеме ниже они представлены цветными прямоугольниками и квадратиками.
Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.
Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.
Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.
Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.
Мы будем много говорить про уровень ОС и чуть меньше про архитектуру компьютера, микроархитектуру, аналоговые схемы и радиоэлементы. К последней части у вас должно быть понимание как это всё работает вместе.
Запуск компьютера
Все программы, подлежащие выполнению, должны находиться в оперативной памяти компьютера. После нажатия на кнопку включения компьютера, оперативная память не содержит никакой информации, и поэтому процессор обращается к специальной микросхеме – постоянному запоминающему устройству (ПЗУ) – для чтения команд начального загрузчика – BIOS (Basic Input Output System) .
BIOS начинает проверку исправности всех устройств компьютера, выводя на экран информацию о ходе проверки и подавая звуковой сигнал в случае обнаружения неисправностей. В случае успешной проверки BIOS считывает программу начальной загрузки ОС в оперативную память компьютера.
Компьютеры без операционных систем
Изначально в 70 – 80-ые годы на персональных компьютерах не было операционных систем. Постоянное запоминающее устройство (ПЗУ) персональных компьютеров содержало некий простой язык программирования, например Бэйсик. И в момент загрузки процессор получал к нему доступ. Пользователь вводил команды с клавиатуры, язык программирования принимал их и выполнял. Это воспринималось некоторыми пользователями как работа с операционной системой.
При подключении к ПК магнитофона была возможность загрузки с него какой-нибудь программы, отключающей ПЗУ и берущей на себя управление компьютером аналогично игровым приставкам.
Более подробно о разделении на клиент-сервер
Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.
Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.
Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.
Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:
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 удобный компромисс между десятичной и двоичной системами, средами людей и машин.
Программный способ разделения на клиент-сервер (режим ядра-режим пользователя) гораздо скучнее перечисленных выше механизмов. Процессы и потоки могут быть помечены специальными аттрибутами или же мы можем хранить список указателей на потоки/процессы и проверять их в коде. Если вы хоть раз делали авторизацию в веб-приложении, то хорошо понимаете о чём я говорю.
Загрузка операционной системы компьютера
Для хранения файлов операционной системы используются диски – внешние устройства долговременного хранения информации, встроенные – жёсткие диски, или съёмные – CD, DVD… Такие диски называются системными, и при их отсутствии компьютер не может быть запущен.
После успешной загрузки операционной системы в оперативную память управление передаётся командному процессору. Для ОС с графическим интерфейсом происходит его загрузка в оперативную память, иначе, появляется строка с приглашением ввода команд.
Операционные системы компании Microsoft:
DOS (Disk Operating System). Пользовательский интерфейс – командная строка. Команды вводятся с клавиатуры в специальной строке – командной строке.
Windows 3.1 и 3.11 – Графическая оболочка, расширяющая возможности DOS.
У всех дальнейших операционных систем интерфейс графический.
Семейство Windows-98 / NT / ME / 2000 / XP/ 7/ 8.
Первые дисковые операционные системы компьютера
С появлением устройств прямого доступа – дисководов – и подключением их к компьютеру процедура загрузки программ с их использованием потребовала существенного изменения. Магнитофон является устройством последовательного доступа, и поиск необходимой для загрузки программы заключался в перематывании кассеты. Для поиска требуемой программы на диске необходимо знать точный её адрес – номер дорожки и номер сектора на этой дорожке.
Для решения этой проблемы была создана программа которая преобразовывала имя файла программы её адрес на диске. Это давало возможность загрузки необходимых программ (файлов), используя их название. Программу нарекли дисковой операционной системой.
Впоследствии программу «научили» не только загрузке файлов в ПК, но и записи их на диск. А так же удалению с диска и копированию их с одного диска на другой. Автоматизация этих процессов устранила множество потенциальных ошибок и избавил от хранения информации о файлах на бумаге.
Назначение и состав операционной системы компьютера. Загрузка компьютера.
Для того чтобы мы могли не думать о том, как в компьютере происходит работа процессора с программами, данными и с аппаратными устройствами, существует специальный комплекс программ, называемых операционной системой.
Операционные системы разные, но их назначение и функции одинаковые. Операционная система является базовой и необходимой составляющей ПО компьютера, без нее компьютер не может работать в принципе.
Операционная система – комплекс программ, обеспечивающих взаимодействие всех аппаратных и программных частей компьютера между собой и взаимодействие пользователя и компьютера.
Операционная система обеспечивает связь между пользователем, программами и аппаратными устройствами.
Структура операционной системы:
- Ядро – переводит команды с языка программ на язык «машинных кодов», понятный компьютеру.
- Драйверы – программы, управляющие устройствами.
- Интерфейс – оболочка, с помощью которой пользователь общается с компьютером.
Операционная система обеспечивает совместное функционирование всех устройств компьютера и предоставляет пользователю доступ к его ресурсам.
Процесс работы компьютера в определенном смысле сводится к обмену файлами между устройствами. В операционной системе имеются программные модули, управляющие файловой системой.
В состав операционной системы входит специальная программа — командный процессор, которая запрашивает у пользователя команды и выполняет их. Пользователь может дать, например, команду выполнения какой-либо операции над файлами (копирование, удаление, переименование), команду вывода документа на печать и т. д. Операционная система должна эти команды выполнить.
К магистрали компьютера подключаются различные устройства (дисководы, монитор, клавиатура, мышь, принтер и др.). В состав операционной системы входят драйверы устройств — специальные программы, которые обеспечивают управление работой устройств и согласование информационного обмена с другими устройствами. Любому устройству соответствует свой драйвер.
Для упрощения работы пользователя в состав современных операционных систем, и в частности в состав Windows, входят программные модули, создающие графический пользовательский интерфейс. В операционных системах с графическим интерфейсом пользователь может вводить команды посредством мыши, тогда как в режиме командной строки необходимо вводить команды с помощью клавиатуры.
Операционная система содержит также сервисные программы, или утилиты. Такие программы позволяют обслуживать диски (проверять, сжимать, дефрагментировать и т. д.), выполнять операции с файлами (архивировать и т. д.), работать в компьютерных сетях и т. д.
Для удобства пользователя в операционной системе обычно имеется и справочная система. Она предназначена для оперативного получения необходимой информации о функционировании как операционной системы в целом, так и о работе ее отдельных модулей.
Запуск компьютера
При поступлении сигнала о запуске процессор обращается к специально выделенной ячейке памяти. В ОЗУ в этот момент ничего нет, если бы там была какая-либо программа, то она начала бы выполнятся.
Для того чтобы компьютер мог начать работу необходимо наличие специальной микросхемы – ПЗУ. Программы ПЗУ записываются на заводе и называются BIOS.
После включения компьютера процессор начинает считывать и выполнять микрокоманды, которые хранятся в микросхеме BIOS. Прежде всего начинает выполнятся программа тестирования POST, которая проверяет работоспособность основных устройств компьютера. В случае неисправности выдаются определенные звуковые сигналы, а после инициализации видеоадаптера процесс тестирования отображается на экране монитора.
Затем BIOS начитает поиск программы-загрузчика операционной системы. Программа-загрузчик помещается в ОЗУ и начинается процесс загрузки файлов операционной системы.
Загрузка операционной системы
Файлы операционной системы хранятся во внешней, долговременной памяти (на жестком диске, на CD …). Однако программы могут выполнятся, только если они находятся в ОЗУ, поэтому файлы ОС необходимо загрузить в оперативную память.
После окончания загрузки операционной системы управление передается командному процессору. В случае использования интерфейса командной строки на экране появляется приглашение системы для ввода команд, в противном случае загружается графический интерфейс операционной системы. В случае загрузки графического интерфейса операционной системы команды могут вводиться с помощью мыши.
Компьютеры без операционных систем
Первые персональные компьютеры не имели операционных систем и были похожи на современные игровые приставки. При включении компьютера в сеть процессор обращался к постоянной памяти (ПЗУ), в котором была записана программа поддержки несложного языка программирования, например языка БЕЙСИК или похожего. Первичное изучение команд этого языка обычно занимало не более нескольких часов, и вскоре на компьютере можно было набирать и запускать несложные программы. Подключив к компьютеру магнитофон, можно было загрузить постороннюю программу. Загруженная программа отключала ПЗУ и далее работа с компьютером происходила под управлением загруженной программы (как в игровых приставках).
Первые бытовые персональные компьютеры 70—80-х годов не имели операционных систем, но некоторые пользователи рассматривали содержащийся в ПЗУ язык программирования как самостоятельную операционную систему, хотя и упрощенную. Она позволяла принимать и понимать команды от клавиатуры и загружать посторонние программы.
Первые дисковые операционные системы
Серьезная необходимость в операционных системах возникла, когда к персональным компьютерам стали подключать дисководы. Дисковод отличается от магнитофона тем, что это устройство свободного доступа, а магнитофон — устройство последовательного доступа. Для загрузки программы с ленты надо было перемотать кассету, после чего компьютер загружал первую встретившуюся программу.
На диске есть свобода выбора. На музыкальном диске можно включить воспроизведение любой песни. С магнитного диска можно загрузить любую программу. Поэтому команды загрузки стали очень сложными. Надо было указывать номер дорожки и номер сектора, в котором находится то, что надо загрузить. Например, для загрузки игры Посадка на Луну приходилось давать команду типа: LOAD *d* 29:37, 31:14
Помнить, в каких секторах что хранится, было мучительно трудно. И выход был найден. Была написана программа, которая переводит названия программ и файлов в номера дорожек и секторов. Человек мог загружать то, что ему нужно, пользуясь только названиями. Эта программа и стала дисковой операционной системой.
Дисковой операционной системе поручили и другие задачи. Она могла не только загружать файлы с диска в компьютер, но и записывать файлы на диск, следить за тем, чтобы два разных файла не попадали в один сектор, при необходимости удалять файлы, копировать их с диска на диск. В общем, она избавила человека от необходимости хранить множество записей на отдельных бумажках, упростила работу с дисководом и значительно уменьшила количество ошибок.
Неграфические операционные системы
В дальнейшем операционные системы развивались параллельно с аппаратным обеспечением. Появлялись новые дисководы гибких дисков, менялись и операционные системы. С появлением жестких дисков открылась возможность хранить на них не десятки, а сотни и тысячи файлов. В именах файлов стало так же легко запутаться, как в номерах дорожек и секторов. Тогда дисковые операционные системы стали сложнее. В них ввели средства для разбиения дисков на каталоги и средства для обслуживания каталогов (перенос и копирование файлов между каталогами, сортировка файлов и прочее). Так на дисках появилась файловая структура, а операционная система взяла на себя ее создание и обслуживание. Когда же жесткие диски приобрели еще большие размеры, операционная система «научилась» делить их на несколько логических дисков.
Вместе с развитием жестких и гибких дисков происходило увеличение оперативной памяти компьютера, менялись также процессоры. Каждая новая операционная система все лучше использовала оперативную память и могла работать со все более мощными процессорами.
Для компьютеров IВМ РС основной операционной системой с 1981 г. по 1995 г. была так называемая система МS-DOS. За эти годы она прошла развитие от версии МS-DOS 1.0 до МS-DOS 6.22.
Программы-оболочки
Операционная система МS-DOS позволила успешно работать с персональными компьютерами на протяжении почти 15 лет. Тем не менее, эту работу нельзя назвать удобной. Во-первых, МS-DOS — неграфическая операционная система, которая использует интерфейс командной строки. Это значит, что все команды надо набирать по буквам в специальной строке. Требовалось хорошо знать эти команды, помнить, как они записываются. Изучение операционной системы стало самостоятельной задачей, достаточно сложной для простого пользователя.
Графические оболочки
Несмотря на то, что появление программ-оболочек заметно упростило работу с компьютером и его операционной системой, оболочки все-таки долгое время оставались неграфическими.
Одна из особенностей компьютеров IВМ РС состоит в том, что в них текстовый и графический режим работы с экраном существуют отдельно. Компьютер переключается либо в тот режим, либо в другой. Нельзя, например, сделать так, чтобы часть экрана была в текстовом режиме, а часть — в графическом. Эти режимы несовместимы.
Работа с текстовым экраном долгое время была вполне приемлема для служебных целей. На многих предприятиях и в организациях не было необходимости в работе с графикой, а если такая потребность возникала, для этого было принято использовать компьютеры Macintosh. Однако когда встал вопрос об использовании IВМ РС в качестве домашнего компьютера, возникла острая необходимость в графической операционной системе, которая наглядно выводит информацию на экран и которой можно управлять с помощью мыши.
Работы над графической операционной системой для IВМ РС в компании Microsoft начались еще в 1981 г., но впервые такая система вышла в свет только в 1995 г. под названием Microsoft Windows 95. До появления Microsoft Windows 95 компьютеры IВМ РС работали с неграфической системой МS-DOS, но для нее были сделаны несколько графических оболочек Windows 1.0, Windows 2.0, Windows 3.0, Windows 3.1, , Windows 3.11.
Оболочки Windows запускались под управлением МS-DOS, то есть не были самостоятельными операционными системами. Но поскольку с появлением Windows открылись некоторые новые возможности, все-таки принято называть Windows не оболочкой, а средой. Вот некоторые особенности Windows, отличающие эту среду от прочих оболочек:
- Многозадачность.
- Единый программный интерфейс.
- Единый интерфейс пользователя.
- Графический интерфейс пользователя.
- Единый аппаратно-программный интерфейс.
Графические операционные системы
Выпущенная в сентябре 1995 г. система Windows 95 стала первой графической операционной системой для компьютеров IВМ РС.
Все следующие версии операционных систем Windows (98, NT, ME, 2000, XP) являются графическими.
Производители аппаратного обеспечения изготавливают узлы и приборы так, чтобы они были совместимы с Windows . Мы можем достаточно смело приобретать новые устройства и устанавливать их в компьютер, рассчитывая на то, что все прочие устройства и программы будут работать нормально. Система Windows ввела новый стандарт самоустанавливающихся устройств (plud-and-play). Подключение таких устройств происходит автоматически. Операционная система сама «узнает», что установлено в компьютере, и настраивается на работу с новым оборудованием.
На сегодняшний день на рынке программного обеспечения для IBM PC-совместимых компьютеров сосуществуют несколько семейств операционных систем, но операционные системы Windows являются наиболее распространенными среды пользователей.
Операционная система – это важнейшая часть системного программного обеспечения, которая организует процесс выполнения задач на ЭВМ, распределяя для этого ресурсы машины, управляя работой всех ее устройств и взаимодействием с пользователем. Иными словами, это своеобразный администратор компьютера, распределяющий его ресурсы так, чтобы пользователь мог решать свои задачи максимально удобно (ресурсами компьютера являются процессорное время, память всех видов, устройства ввода/вывода, программы и данные).
Роль операционной системы можно наглядно представить себе с помощью рисунка. В центре его изображен собственно компьютер, т.е. все то оборудование, которое стоит на вашем столе и которое можно непосредственно "потрогать руками" (в информатике эта часть часто называется hardware – техническое обеспечение). Внешней оболочкой является разнообразное программное обеспечение (software), позволяющее многочисленным пользователям решать свои прикладные задачи из всех областей человеческой деятельности. Операционная система (ОС) организует их совместную работу и служит своеобразным программным расширением управляющего устройства компьютера. Вы можете спросить: а так ли нужен еще один дополнительный слой? Очень нужен, учитывая тот факт, что невозможно заложить в системный блок информацию обо всех устройствах, которые к нему могут быть подсоединены. И, кроме того, новое устройство может быть изобретено уже после изготовления компьютера! Отсюда очевидно, что загружаемая (а следовательно, изменяемая) программная часть, обеспечивающая работу компьютерной аппаратуры, совершенно необходима.
С другой стороны, наличие операционной системы очень существенно облегчает разработку нового программного обеспечения. Все наиболее часто встречающиеся при работе компьютера задачи сконцентрированы в ОС. Поэтому программисту уже не требуется заботиться о размещении своей программы в объеме памяти каждого конкретного компьютера или описывать отдельные технические детали взаимодействия со всевозможными внешними устройствами разнообразных фирм-изготовителей – для этого достаточно просто обратиться к соответствующей функции операционной системы. Если бы об этом не заботилась ОС, каждая программа должна была бы самостоятельно проверять наличие дискеты в дисководе при записи информации или факт подключения принтера перед печатью на бумагу. И таких ситуаций существует великое множество.
Но наличие ОС удобно и пользователю. Поскольку на современных компьютерах диалог с ним ведется именно средствами ОС, то интерфейс (способ взаимодействия с человеком) во всех программах получается примерно одинаковым. Так, освоив 2-3 программы в системе Windows, пользователь может довольно быстро научиться работать с еще одной, даже совершенно новой для него.
ОС решает целый комплекс важных задач управления компьютером. Сформулируем их по возможности более полно:
· организация согласованного выполнения всех процессов в компьютере – планирование работ, распределение ресурсов;
· организация обмена с внешними устройствами – хранение информации и обеспечение доступа к ней, предоставление справок;
· запуск и контроль прохождения задач пользователя;
· реакция на ошибки и аварийные ситуации, контроль за нормальным функционированием оборудования;
· обеспечение возможности доступа к стандартным системным средствам (программам, драйверам, информации о конфигурации и т.п.);
· обеспечение общения с пользователем;
· сохранение конфиденциальности информации в многопользовательских системах.
Операционные системы разные (MS-DOS, Windows, Linux, Mac OS, UNIX и др.), но их назначение и функции одинаковые. Операционная система является базовой и необходимой составляющей программного обеспечения компьютера, без нее компьютер не может работать в принципе.
Современные операционные системы имеют сложную структуру, каждый элемент которой выполняет определенные функции по управлению компьютером.
Управление файловой системой. Процесс работы компьютера в определенном смысле сводится к обмену файлами между устройствами. В операционной системе имеются программные модули, управляющие файловой системой.
Командный процессор. В состав операционной системы входит специальная программа – командный процессор, – которая запрашивает у пользователя команды и выполняет их.
Пользователь может дать команду запуска программы, выполнения какой-либо операции над файлами (копирование, удаление, переименование), вывода документа на печать и так далее. Операционная система должна эту команду выполнить.
Драйверы устройств. К магистрали компьютера подключаются различные устройства (дисководы, монитор, клавиатура, мышь, принтер и др.). Каждое устройство выполняет определенную функцию (ввод информации, хранение информации, вывод информации), при этом техническая реализация устройств существенно различается.
В состав операционной системы входят драйверы устройств – специальные программы, которые обеспечивают управление работой устройств и согласование информационного обмена с другими устройствами, а также позволяют производить настройку некоторых параметров устройств. Каждому устройству соответствует свой драйвер.
Технология «Plug and Play» (подключи и играй) позволяет автоматизировать подключение к компьютеру новых устройств и обеспечивает их конфигурирование. В процессе установки Windows определяет тип и конкретную модель установленного устройства и подключает необходимый для его функционирования драйвер. При включении компьютера производится загрузка драйверов в оперативную память.
Пользователь имеет возможность вручную установить или переустановить драйверы.
Графический интерфейс. Первые операционные системы (DOS от Microsoft и др.) являлись операционными системами с интерфейсом командной строки – необходимо вводить команды с помощью клавиатуры. Развитие графических возможностей дисплеев привело к коренному изменению принципов взаимодействия человека и компьютера. Командная строка была безвозвратно вытеснена графическим интерфейсом, когда объекты манипуляций в ОС изображаются в виде небольших рисунков, а необходимые действия тем или иным образом выбираются из предлагаемого машиной списка – так называемого меню. В состав современных операционных систем, и в частности в состав Windows, входят программные модули, создающие графический пользовательский интерфейс. В операционных системах с графическим интерфейсом пользователь может вводить команды с помощью мыши.
Сервисные программы. В состав операционной системы входят также сервисные программы, или утилиты. Такие программы позволяют обслуживать диски (проверять, сжимать, дефрагментировать и так далее), выполнять операции с файлами (копировать, перемещать, удалять, переименовывать, архивировать и так далее), работать в компьютерных сетях и так далее.
Справочная система. Для удобства пользователя в состав операционной системы обычно входит также справочная система. Справочная система позволяет оперативно получить необходимую информацию как о функционировании операционной системы в целом, так и о работе ее отдельных модулей.
Неграфические операционные системы компьютера
Дальнейшее развитие операционных систем полностью связано с развитием аппаратного обеспечения. Появлялись новые съёмные устройства хранения информации – гибкие диски, жёсткие диски. Объёмы жёстких дисков позволяли теперь хранить тысячи файлов, что, безусловно, усложняло операционные системы. Для облегчения поиска файлов в них появились инструменты создания на дисках каталогов файлов и средства обслуживания этих каталогов. Таким образом создавалась файловая система ОС. И операционная система стала ответственной как за её создания, так и за обслуживание. С увеличением объёмов жёстких дисков в разы, были разработаны средства ОС, позволяющие делить физические жёсткие диски на логические диски меньших объёмов. Для более эффективной работы с огромными объёмами хранимой информации.
Увеличение объёмов обрабатываемой информации заставляло увеличивать и оперативную память компьютера. А так же рабочие характеристики процессоров, и операционные системы для работы со всё более мощными устройствами и всё более производительными процессорами.
Получившие широкое распространение в начале 80 – 90-х годах персональные компьютеры IBM PC были оснащены операционной системой MS DOS (версии MS DOS 1.0 – MS DOS 6.22)
Программы-оболочки
В течение 15 лет MS DOS была вне конкуренции. Столь продолжительный период работы с системой привёл к необходимости её усовершенствования или замены. Дело в том, что интерфейс работы с пользователем системы MS DOS командный, не графический. Усложнение аппаратных устройств, появление совершенно новых устройств приводило к увеличению команд операционной системы. А это очень нагружало пользователя запоминанием ещё большего числа команд со всеми необходимыми параметрами. Кроме того, ввод каждой команды требовал большого внимания, а, стало быть, и напряжения, и увеличения вероятности ошибки.
Назрела необходимость в разработке более удобного интерфейса пользователя. Появляются надстройки – программы-оболочки, запуск которых осуществляла операционная система и передавала им управление для работы с этой ОС.
Наибольшую популярность среди программ-оболочек получила оболочка Norton Commander, разработанная в Америке гениальным программистом Питером Нортоном .
В Norton Commander вся файловая система компьютера отображалась на экране в виде структуры дисков, каталогов и файлов. Работа с файловой структурой выполнялась с помощью меню команд. Которые запускались нажатием определённых клавиш, указанных здесь же для каждой команды. Это избавляло пользователя от запоминания всех команд и их параметров и утомительного ввода этих команд с клавиатуры.
И сейчас ещё пользуются программой Total Commander – современной реализацией Norton Commander. Но, как правило, используются более современные средства.
Графические операционные системы компьютера
К разработке графической операционной системы для ПК типа IВМ РС компания Microsoft приступила в 1981 году, и новая графическая ОС появилась в 1995 году, заменив МS-DOS с последней графической оболочкой Windows 3.11. Графическую операционную систему назвали Microsoft Windows 95.
Далее последовали всё более и более совершенствующиеся графические ОС Windows. Такие как Windows 98, NT, ME, 2000, XP, 7, 8.
В настоящее время новые аппаратные средства при их изготовлении производителями остаются совместимыми с Windows. И их установка на компьютер обеспечивает нормальную работу всех остальных устройств компьютера и всех программ. Компания Windows разработала plud-and-play стандарт устройств, автоматически подключающихся к компьютеру. Операционная система самостоятельно распознаёт все установленные устройства и начинает с ними работать.
ОС Windows получили наибольшее распространение на рынке графических операционных систем для компьютеров, совместимых с ПК типа IBM PC.
Элементы интерфейса Windows:
Рабочий стол.
Очень удачное название. Появляется сразу после загрузки ОС. Экран, на котором, как на столе, расположены в виде значков (иконок) инструменты управления и программы.
Значки.
Значки соответствуют реальным объектам Windows – программам, документам, устройствам. Запуск/открытие производится двойным щелчком кнопки мыши по значку либо щелчком правой кнопки мыши и последующим выбором в появившемся контекстном меню строки Открыть. Программы могут находиться как на Рабочем столе, так и на диске. Если программы находятся на диске, на Рабочем столе они представлены ярлыком.
Ярлыки.
Ярлык программы – это только указатель (адрес) места на диске, где программа хранится. Запуск программы производится двойным щелчком кнопки мыши по ярлыку либо щелчком правой кнопки мыши и выбором в появившемся контекстном меню строки Открыть. Ярлык имеет тот же вид, что и значок, обозначающий саму программу, но отличается от него небольшой стрелочкой внизу слева.
Панель задач.
Самая нижняя широкая строка экрана. Содержит:
- кнопку Пуск,
- кнопки открытых окон,
- индикаторы,
- часы.
Окно.
Окно – Основной интерфейс Windows, в его честь названа сама система. Соответствует активной программе, открытому документу, активному диалогу и служит для работы с ними.
Информатика и информационно-коммуникационные технологии в школе
Из чего состоит Windows?
Абстракция или же разбиение на компоненты есть во всех сферах программирования и интуитивно понятно что Windows тоже делится на какие-то компоненты. Под компонентом понимается какая-то единица функциональности — ООП класс, файл, dll, папка. Компоненты на диаграмме ниже могут быть как индивидуальными *.sys, *.dll файлами, так и просто набором API сгруппированным логически через добавление префикса к имени функции, старая часть системы написана на C, а он не поддерживает классы. Новые части пишутся нередко на C++. В укрупнённом виде Винда выглядит так:
Давайте быстренько пробежимся по её компонентам снизу вверх:
- Hyper-V Hypervisor — слой виртуализации благодаря которому в Windows можно создать виртуальную машину. Иногда говорят, что Hyper-V это минус первый уровень привилегий, однако реализован он в одном уровне привилегий и адресном пространстве что и ядро ОС, за счёт использования слоёной архитектуры ОС ничего не знает о нём.
- HAL.dll — Hardware Abtraction Layer — изначально задумывался как абстракция над железом — чипсет, материнская плата, процессор — для того чтобы можно было перенести Windows на новую платформу реализовав новый HAL.dll, который будет выбран и скопирован во время установки. По сути это драйвер к устройствам материнской платы, к примеру таймерам, контроллеру прерываний. Сейчас его роль снижена, потому как многие драйвера материнки и чип-сета реализованы в ACPI.sys.
«Операционная система компьютера» В составе каждого компьютера различают две необходимые для его работы части: h ardware – аппаратное обеспечение (АО), или «железо» и s oftware – программное обеспечение (ПО), или программы и данные.
Чтобы не нагружать пользователя проблемами, как организовать работу процессора с АО и ПО. На каждом компьютере имеется операционная система, представляющая собой большой комплекс программ, которые реализуют согласованную работу всех составляющих частей компьютера.
Помимо осуществления взаимодействия аппаратного и программного обеспечения, ОС реализует согласованную работу пользователя и с программами, и с аппаратными устройствами.
Насколько глубоко мы погрузимся в тему?
Давайте для начала в общих чертах поговорим об уровнях на которых можно рассматривать компьютер. Каждый уровень основывается на предыдущем. Начнём с самого верха.
Уровень операционной системы. ОС можно рассматривать как:
- Менеджер ресурсов — память, жёсткие диски, принтеры, экран, клавиатура ограниченные ресурсы которые совместно используются запущенными на компьютере программами.
- Виртуальная машина — файл это наглядный пример виртуального объекта. Он представляет абстракцию данных на диске, API для работы с ним и так же добавляет концепцию прав доступа. Вместо файла могла быть концепция контейнера данных и совершенно другого API. Таких виртуальных объектов в ОС много.
- Платформа — ОС предоставляет программные модели и примитивы для построения программ. К примеру Windows Drivers Framework позволяет быстро разрабатывать драйвера, окна в Windows используются для построения сложных пользовательских интерфейсов. Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры (см. LowLevelKeyboard hook).
Уровень архитектуры компьютера. Он представлен материнской платой, которая имеет определённый форм-фактор, встроенные функции закодированные в микросхемах называемых чип-сетом и порты, через которые можно расширять функционал компьютера подключив графическую карту, сетевую карту, дополнительную оперативную память (RAM), жёсткие диски, клавиатуру и пр. Порты влияют на скорость работы и возможности компьютера, что и будет определять его назначение будь то сервер для обработки тысяч запросов в секунду, планшет для пользования Интернетом или игровой ПК с несколькими видеокартами. ОС абстрагирует особенности материнской платы.
Микросхемы выглядят как на картинке ниже и представляют собой мини-компьютер выполняющий простые программы для низкоуровневых задач, к примеру прочитать данные от клавиатуры и передать их дальше чтобы они достигли в конечном счёте процессора. Как правило реализованы в виде аналоговой непрограммируемой микросхемы или микроконтроллера, программируемого на языке С.
Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.
Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.
Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.
Микроархитектура это не то же самое что архитектура. Весь функционал CPU разделён на компоненты, которые работают сообща. Эти компоненты и их взаимодействие и есть микроархитектура. На блок-схеме ниже они представлены цветными прямоугольниками и квадратиками.
Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.
Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.
Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.
Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.
Мы будем много говорить про уровень ОС и чуть меньше про архитектуру компьютера, микроархитектуру, аналоговые схемы и радиоэлементы. К последней части у вас должно быть понимание как это всё работает вместе.
Среду Windows отличали следующие особенности:
- Многозадачность.
- Единый программный интерфейс.
- Единый интерфейс пользователя.
- Графический интерфейс пользователя.
- Единый аппаратно-программный интерфейс.
Графические оболочки
В компьютерах типа IВМ РС невозможно совмещение графического и текстового режимов работы с экраном. Для этого требуется переключение экрана только в один из них. Такой вариант до определённого времени удовлетворял потребности пользователей ПК. А так же предприятия и организации, использовавшие компьютер в служебных целях. Им в полне было достаточно работы в текстовом режиме. С расширением области применения компьютеров, в том числе, и как домашнего ПК. Встала задача создания графической ОС, позволяющей наглядно изображать информацию на экране. А так же управлять ею с помощью устройств-манипуляторов курсором, например, мышью.
Прототипами графической операционной системы были разработанные компанией Microsoft графические оболочки, работающие под управлением МS-DOS. (Windows 1.0, Windows 2.0, Windows 3.0, Windows 3.1, Windows 3.11) и называемые «средой Windows».
Основы Операционной Системы
Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям 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, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.
Читайте также: