Занятие 2 · 2 академических часа
История, назначение
и функции ОС.
Виды операционных систем
Операционная система рассматривается как программа, управляющая процессором, памятью и устройствами. Функции системы разбираются в порядке их исторического появления: каждая из них возникла как решение конкретной технической задачи.
Машинный зал · конец 1950-х
Простой оборудования между задачами: постановка проблемы
Вычисление занимало три минуты, подготовка следующего задания — сорок. Разрешением этого противоречия стала программа, принявшая на себя функции оператора.
Инженер передавал колоду перфокарт оператору. Оператор вручную устанавливал ленту с компилятором, загружал колоду, дожидался печати результата и готовил следующее задание. В интервале между двумя вычислениями процессор не выполнял полезной работы.
Стоимость часа машинного времени была сопоставима с месячным окладом инженера, тогда как полезная нагрузка составляла несколько минут этого часа. Основная часть затрат приходилась на простой оборудования.
Требовалось передать смену заданий самой машине. Решением стала программа, постоянно находящаяся в оперативной памяти и управляющая последовательностью вычислений. Эта программа и получила название операционной системы.

Структура занятия · четыре раздела
Структура темы: четыре вопроса занятия
Уровневая модель, два режима работы процессора, механизм системного вызова.
Шесть этапов развития: пакетная обработка, мультипрограммирование, разделение времени, UNIX, персональные компьютеры, мобильные системы.
Управление процессами, памятью, файлами, устройствами, доступом и интерфейсом; демонстрация работы планировщика.
Классификация собственной системы и обзор семейств: Windows, Linux, macOS, BSD, мобильные системы.
Определение · три составляющие
Определение операционной системы
Операционная система — комплекс программ, который управляет ресурсами компьютера и предоставляет их прикладным программам через единый интерфейс.
- Программное, а не аппаратное обеспечение
Совокупность исполняемого кода и данных, загружаемая в оперативную память при включении компьютера и остающаяся в ней до завершения работы.
- Посредник между программой и устройством
Прикладная программа не обращается к накопителю напрямую: она передаёт запрос операционной системе, которая определяет порядок и способ его выполнения.
- Распределитель ресурсов и средство защиты
Ресурс — ограниченный компонент системы, распределяемый между потребителями: процессорное время, память, дисковое пространство, доступ к устройству. Ресурсы делятся между десятками программ одновременно, и ошибка в одной из них не должна нарушать работу остальных.
Модель · уровни вычислительной системы
Уровневая модель вычислительной системы
Ввод с клавиатуры и мыши, окна, файлы, команды терминала.
получает результатВыполняются в пользовательском режиме и не имеют прямого доступа к устройствам.
запрашивают ресурсыПринимает запросы, упорядочивает их, распределяет процессорное время и память, обращается к устройствам.
распределяетВыполняет машинные инструкции. Понятий файла, окна и пользователя на этом уровне не существует.
исполняетНазначение · две функции одной программы
Две функции операционной системы: расширенная машина и распределитель ресурсов
Вместо управления позиционированием головки и нумерацией секторов прикладная программа выполняет вызов open("data.txt"). Накопитель представлен абстракцией файла, сетевой адаптер — абстракцией сокета.
Процессор один, число программ — десятки. Операционная система определяет, какой процесс выполняется, какие ожидают, какой объём памяти выделяется каждому и в каком порядке обслуживаются запросы к накопителю.
Вычислительная система без операционной системы
Задачи, которые решает прикладная программа при отсутствии операционной системы
print("Привет").Ресурсы · часть 1
Ресурсы вычислительной системы: процессор и память
- Процессорное время
Одно ядро в каждый момент выполняет одну последовательность инструкций, тогда как число процессов в системе измеряется сотнями. Остальные процессы находятся в очереди планировщика.
- Оперативная память
Объём памяти фиксирован, выделяется она страницами. Обращение процесса к странице, выделенной другому процессу, должно быть исключено средствами защиты.
Ресурсы · часть 2
Ресурсы вычислительной системы: накопитель, устройства и сеть
- Дисковое пространство
Общий накопитель распределяется через файлы, права доступа, квоты на объём и очередь запросов к устройству.
- Устройства ввода-вывода
Клавиатура, дисплей, принтер и камера обслуживают один запрос одновременно, тогда как число обращающихся к ним программ больше.
- Сеть
Один физический канал распределяется между множеством соединений через порты, сокеты, полосу пропускания и правила фильтрации.
Механизм · граница режимов
Механизм системного вызова и режимы работы процессора
Процессор работает в двух режимах. В пользовательском режиме доступна ограниченная часть машинных инструкций, в привилегированном — полный набор. Прикладной код выполняется в пользовательском режиме, ядро — в привилегированном; переход между режимами выполняется единственным способом.
Код готовит аргументы: дескриптор файла, адрес буфера, число байтов.
Управление передаётся по фиксированному адресу, режим переключается на привилегированный.
Ядро проверяет, открыт ли файл на запись, копирует данные из буфера программы и передаёт запрос драйверу.
Режим переключается обратно, программа продолжает со следующей строки.
Часть 2 · история
Историческое развитие
операционных систем
Раздел содержит шесть этапов развития. Каждый рассматривается по единой схеме: техническая проблема, предложенное решение и его цена. Такой порядок показывает, что перечень функций операционной системы сложился как результат последовательного решения этих проблем.
Нулевое поколение
1945–1955Вычислительные машины 1945–1955 годов: работа без операционной системы
Расчёт баллистических таблиц. Программа задавалась переключателями и коммутационными панелями: соединение блоков машины выполнялось проводами вручную.
Отсутствовало. Одна программа занимала машину целиком — процессор, память и устройства — и содержала весь код взаимодействия с оборудованием.
Смена задачи занимала часы или дни. Программа была неотделима от конкретной машины и не поддавалась переносу.

Первое поколение · пакетная обработка
1956Системы пакетной обработки заданий
В интервале между двумя расчётами машина простаивала: оператор менял ленты, готовил колоды перфокарт и снимал распечатки.
Система GM-NAA I/O, написанная в General Motors и North American Aviation для IBM 704, постоянно оставалась в памяти и сама запускала следующую задачу из пакета, как только заканчивалась предыдущая. Задачи заранее собирали в один пакет — отсюда и название пакетной обработки.
Обратная связь отсутствовала: ошибка в программе обнаруживалась через несколько часов, а иногда на следующий день, поскольку пакет уже был поставлен в очередь.

Второе поколение · простой процессора
1960-еМультипрограммирование как способ загрузки процессора
Исходное состояние. В памяти находится одна программа. Она считывает данные с ленты, выполняет вычисления и выводит результат на печать. На операциях ввода-вывода процессор простаивает: внешние устройства медленнее его на несколько порядков.
Решение. В памяти размещаются несколько программ одновременно. При переходе первой программы в состояние ожидания ввода-вывода операционная система передаёт процессор второй программе. Такой режим работы называется мультипрограммированием.
Что изменилось. Процессор перестал быть привязан к одной программе, а понятие очереди готовых к выполнению программ стало постоянной частью системы.
При одной программе в памяти доля полезной работы определяется соотношением времени вычислений и времени ввода-вывода.
При нескольких программах простой одной из них заполняется работой другой.
Второе поколение · технические следствия
Три механизма, потребовавшиеся для размещения нескольких программ в памяти
- Защита памяти
При размещении в памяти нескольких программ запись одной программы в область другой должна быть исключена. Для этого введены аппаратные границы областей памяти, проверяемые при каждом обращении.
- Привилегированный режим процессора
Часть машинных инструкций стала доступна только ядру. Без такого разделения прикладная программа могла бы отключить защиту памяти самостоятельно.
- Планирование
Потребовалось правило выбора очередной программы из числа готовых к выполнению; из него развились современные алгоритмы диспетчеризации. Все три механизма появились одновременно и по технической необходимости, а не из соображений удобства.
Третье поколение · семейство машин
1964–1966Семейство IBM System/360 и операционная система OS/360
Производитель выпускал несколько несовместимых линий машин. Программу, разработанную для одной модели, требовалось переписывать для другой вместе со всем системным программным обеспечением.
Линейка совместимых машин разной мощности с общим набором команд и общей операционной системой OS/360. Код, написанный для младшей модели, выполнялся на старшей.
Система, рассчитанная на машины разной производительности и различные режимы применения, достигла объёма в миллионы строк кода. Управление такой разработкой стало самостоятельной инженерной проблемой, описанной Фредериком Бруксом в книге «Мифический человеко-месяц».

Разделение времени · индивидуальный терминал
1961–1969Системы разделения времени: CTSS и Multics
Пакетная обработка обеспечивала загрузку машины, но исключала интерактивную работу: исправление опечатки требовало ожидания следующего прогона.
Разделение времени: процессор предоставляется каждому пользователю короткими интервалами в порядке очереди. Частота переключений такова, что для пользователя терминала машина выглядит выделенной ему одному. Система CTSS запущена в MIT в 1961 году, вслед за ней начат проект Multics.
Multics проектировался как система масштаба городской вычислительной службы и оказался чрезмерно сложным. Часть участников проекта перешла к разработке более компактной системы, из которой развился UNIX.

UNIX · переносимая система
1969–1973Система UNIX и переносимость операционной системы
Операционные системы разрабатывались на языке ассемблера конкретной машины. Перенос такой системы на другую архитектуру означал её разработку заново.
Разработка UNIX начата в Bell Labs в 1969 году; в 1973 году ядро системы переписано на языке C. Машинно-зависимой осталась небольшая часть кода, остальное компилировалось под новую архитектуру.
Принцип «всё есть файл», набор небольших утилит вместо одной универсальной программы, конвейер и права доступа к файлам. Эти решения применяются в Ubuntu и рассматриваются на последующих занятиях.

Четвёртое поколение · персональные компьютеры
1981MS-DOS и операционные системы персональных компьютеров
Компьютер стал персональным: одна машина рассчитана на одного пользователя. Задача разделения процессора между пользователями перестала быть актуальной.
Простая система с командной строкой и файловой системой FAT. Программа получала машину в единоличное распоряжение и обращалась к оборудованию напрямую.
Защита памяти и разграничение прав отсутствовали: сбой одной программы приводил к отказу всей системы, а любая программа могла повредить любой файл. Механизмы защиты пришлось вводить заново в следующем поколении систем.


C:\), разделение элементов пути обратной косой чертой, определение типа файла по расширению. Команды dir, copy и cd обрабатывала оболочка — отдельная программа, не входящая в состав ядра.Графический интерфейс
1984Графический интерфейс пользователя: Apple Macintosh, 1984 год
Работа с командной строкой требует знания имён команд и их параметров. Для пользователя, решающего прикладные задачи, это самостоятельный барьер освоения.
Графический интерфейс: окна, значки, меню и указатель мыши. Основные идеи разработаны в исследовательском центре Xerox PARC в 1970-е годы. Apple Lisa выпущена в 1983 году, Macintosh — в 1984 году; последний получил массовое распространение.
Графическая оболочка потребовала дополнительных объёмов памяти и процессорного времени, а последовательность действий стала хуже воспроизводимой: команда записывается в сценарий, перемещение указателя — нет. По этой причине командный интерфейс сохранился.

Открытый исходный код · 1991
Ядро Linux и модель открытой разработки
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.Линус Торвальдс, письмо в конференцию comp.os.minix, 25 августа 1991
«Я делаю (бесплатную) операционную систему — просто хобби, ничего большого и профессионального вроде gnu — для клонов AT на 386 и 486».
Дальнейшее развитие: исходный код был открыт, и в разработку включились сторонние участники. С версии 0.12 ядро распространяется по лицензии GPL. В настоящее время оно применяется в серверах, мобильных устройствах на Android, сетевом оборудовании и большинстве суперкомпьютеров.

uname -r выводит версию ядра, а lsb_release -a — версию дистрибутива Ubuntu; это разные номера.Итог раздела · восемь этапов
Хронология развития операционных систем
Итог раздела · закономерности
Три закономерности, видимые на хронологии
- Функции не исчезают
Очередь заданий 1956 года и планировщик Ubuntu 24.04 решают одну и ту же задачу — определяют порядок использования процессора — различными способами. Ни один механизм из перечисленных на хронологии не был отменён; менялась только его реализация.
- Механизмы защиты вводились дважды
Мейнфреймы получили защиту памяти и привилегированный режим в 1960-е годы. Персональные компьютеры начала 1980-х этих механизмов не имели и восстановили их к середине 1990-х, когда объём выполняемых задач сделал отказ системы неприемлемым.
- Срок жизни ядра измеряется десятилетиями
macOS основана на разработках BSD и Mach, Android работает на ядре Linux 1991 года, Windows — на ядре линии NT, выпущенном в 1993 году. Прикладное окружение обновляется существенно чаще, чем ядро.
Часть 3 · функции
Размещение функций операционной системы по уровням модели
Браузер, текстовый редактор, программа пользователя.
пользовательский режимКаждая функция рассматривается отдельно: решаемая задача и способ её наблюдения в работающей системе.
привилегированный режимИнтерпретатор команд bash, графическая среда GNOME, системные службы. Входят в состав операционной системы, но выполняются в пользовательском режиме.
Прямое обращение к этим компонентам выполняют только драйверы в составе ядра.
исполняетФункция 1 · управление процессами
Процесс и его состояния
Процесс — это запущенная программа со своей областью памяти и собственным состоянием. В каждый момент времени процесс находится в одном из трёх состояний.
Все условия выполнения соблюдены, не выделено только процессорное время. Процесс находится в очереди планировщика.
Процессор выполняет инструкции данного процесса. На одно ядро приходится один такой процесс.
Процесс запросил данные с накопителя или из сети. До получения ответа процессорное время ему не требуется.
S вывода команды ps aux: R — выполняется или готов, S — ожидает события, D — ожидает ответа устройства. Подробно рассматривается в теме «Модель процесса».Демонстрация · одно ядро, три процесса
Диспетчеризация процессов на одном процессорном ядре
Запись прогона показывает порядок предоставления процессорного времени трём процессам. Для воспроизведения используется кнопка «Запустить».
Функция 2 · управление памятью
Управление оперативной памятью: виртуальные адреса и страницы
- Виртуальный адрес
Программа обращается к адресу, отсчёт которого для неё начинается с нуля. Физическое размещение данных процессу неизвестно и может изменяться в ходе работы.
- Таблица страниц
Ядро хранит соответствие «виртуальная страница — физическая», а перевод адреса выполняет отдельный блок процессора. На архитектуре x86-64 страница обычно занимает 4 КБ.
- Изоляция и подкачка как результат
Чтение чужой страницы невозможно, а редко используемые страницы вытесняются на накопитель, освобождая память активным процессам.
Функция 3 · файловая система
Файловая система: организация данных на накопителе
Накопитель хранит нумерованные блоки. Каталоги, имена файлов, время изменения и права доступа существуют как структуры, которые создаёт и поддерживает операционная система.
LINUX · ОДНО ДЕРЕВО ОТ КОРНЯ /
/ ├── bin исполняемые программы ├── etc файлы настроек ├── home │ └── student личные файлы ├── var │ └── log журналы системы └── dev устройства как файлы
WINDOWS · ОТДЕЛЬНОЕ ДЕРЕВО НА КАЖДОМ ТОМЕ
C:\
├── Windows системные файлы
├── Program Files программы
└── Users
└── student личные файлы
D:\ второй том — свой кореньВ ext4 эти сведения лежат в структуре inode, отдельно от содержимого файла.
Различаются предельным размером тома и файла, наличием журналирования и поддержкой прав доступа. FAT32 права доступа не хранит, что и определило её применение на сменных носителях.
ls / и df -hTПервая команда выводит каталоги корневого уровня, вторая — разделы и типы файловых систем, на которых они размещены.
Функция 4 · устройства и драйверы
Управление устройствами ввода-вывода и драйверы
Число моделей устройств измеряется тысячами, тогда как интерфейс обращения к ним для прикладной программы остаётся единым. Это обеспечивают три механизма.
- Драйвер
Программный модуль для конкретной модели устройства. Выполняется в составе ядра и преобразует обобщённые команды системы в обращения к регистрам устройства.
- Единый интерфейс обращения
В Linux устройства представлены файлами каталога
/dev. Запись в такой файл преобразуется ядром в обращение к оборудованию, поэтому прикладная программа использует те же вызовы, что и при работе с обычным файлом. - Прерывание
Ожидание процессором завершения операции не требуется: устройство само сообщает о готовности данных, после чего ядро выводит процесс из состояния ожидания.
Функция 4 · цена решения
Виртуализация устройств и отказоустойчивость драйверов
Пример из практической работы № 1. Гостевая Ubuntu обращается к обычному контроллеру накопителя и использует штатный драйвер. Гипервизор VirtualBox преобразует эти обращения в операции с файлом .vdi на хостовой машине. Единый интерфейс устройства делает подмену незаметной для гостевой системы, и именно поэтому виртуальная машина работает без изменения кода Ubuntu.
Обратная сторона решения. Драйвер выполняется в привилегированном режиме и имеет доступ ко всей памяти. Его сбой является сбоем ядра, а не отдельной прикладной программы, и приводит к отказу системы целиком.
Значительная часть отказов операционных систем приходится на драйверы устройств, а не на прикладные программы.
Способы уменьшить этот риск рассматриваются в теме об архитектуре ядра.
Функция 5 · пользователи, права и защита
Учётные записи, права доступа и защита данных
Права проверяет ядро при каждом обращении к файлу или устройству, а не прикладная программа при запуске. Поэтому ограничение нельзя обойти, изменив саму программу.
| Механизм | Что ограничивает | Где увидеть в Ubuntu |
|---|---|---|
| Учётная запись | От чьего имени работает процесс: у каждого пользователя свой числовой идентификатор | id, whoami |
| Права на файл | Чтение, запись и запуск отдельно для владельца, группы и остальных | ls -l — строка вида -rw-r--r-- |
| Суперпользователь | Учётная запись root не подлежит проверке прав. Повседневная работа под ней не рекомендуется, поскольку любая ошибка выполняется без ограничений | sudo команда |
| Изоляция процессов | Обращение процесса к памяти другого процесса невозможно | Ошибка «Segmentation fault» при выходе за границы выделенной памяти |
sudo требует предварительной проверки. Ядро подтверждает права и выполняет запрошенное действие, включая удаление данных, если полномочий для этого достаточно.Функция 6 · интерфейс пользователя
Интерфейс пользователя: командная строка и графическая среда

- ГРАФИЧЕСКИЙ ИНТЕРФЕЙСДоступные действия представлены на экране, запоминание команд не требуется. Последовательность из двадцати операций указателем не сохраняется и не воспроизводится автоматически.
- КОМАНДНАЯ СТРОКАТребует знания имён команд, но каждая команда представляет собой текст. Строка
mkdir -p проект/отчёты && cp *.md проект/отчёты/сохраняется в сценарии, помещается в репозиторий и воспроизводится на другой машине без изменений. - СЕРВЕРНЫЕ УСТАНОВКИСистему устанавливают без графической среды: она расходует память и процессорное время на интерфейс, который не используется.
Смежные вопросы темы
Загрузка операционной системы и системный журнал
- Прошивка UEFI
Проверяет состав и исправность оборудования, после чего находит загрузчик на системном накопителе.
- Загрузчик
В Ubuntu используется GRUB: отображает меню выбора и помещает образ ядра в оперативную память.
- Ядро
Инициализирует управление памятью и устройствами, монтирует корневую файловую систему.
- Первый процесс
systemd запускает системные службы в требуемом порядке и доводит систему до экрана входа.
journalctl.Часть 4 · классификация
Классификация
операционных систем
Операционная система характеризуется одновременно по нескольким независимым признакам. Windows 11 является многозадачной, многопользовательской по своим возможностям, настольной, с комбинированным интерфейсом, не относящейся к системам реального времени и проприетарной. Далее рассматривается каждый признак; в конце раздела выполняется классификация собственной системы.
Признаки 1 и 2 · задачи и пользователи
Классификация по числу задач и числу пользователей
| Признак | Значения | Способ проверки | Пример |
|---|---|---|---|
| Число задач | Однозадачная — в памяти находится одна программа. Многозадачная — процессор поочерёдно обслуживает несколько процессов | Диспетчер задач или команда ps aux: наличие более одного процесса указывает на многозадачность | MS-DOS однозадачная, Windows и Linux многозадачные |
| Число пользователей | Однопользовательская — предусмотрена одна учётная запись. Многопользовательская — несколько учётных записей с разграничением прав и файлов | Команда cat /etc/passwd в Linux, раздел «Учётные записи» в параметрах Windows | MS-DOS однопользовательская, UNIX многопользовательская с момента создания |
Признак 1 · уточнение
Кооперативная и вытесняющая многозадачность
Процесс работает до тех пор, пока не передаст управление операционной системе добровольно. Зациклившаяся программа не передаёт его вовсе, и система перестаёт отвечать. Такая схема применялась в Windows 3.x и ранних версиях Mac OS.
По сигналу таймера ядро прерывает выполнение процесса и передаёт процессор другому. Отдельная программа не может заблокировать систему. Такая схема применяется во всех современных операционных системах.
Признак 3 · назначение · часть 1
Классификация по назначению: системы общего назначения
- Настольная · Windows 11, Ubuntu Desktop, macOS
Оптимизируется время отклика на действия пользователя. В состав входят графическая среда, подсистема звука, драйверы печатающих устройств и камер. Ресурсы отдаются активному окну, фоновые задачи получают их по остаточному принципу.
- Серверная · Ubuntu Server, Windows Server
Оптимизируются непрерывность работы служб и пропускная способность. Графическая среда обычно отсутствует, управление ведётся через терминал и удалённый доступ, обновления выполняются по плану, а не по появлению.
- Мобильная · Android, iOS
Оптимизируется энергопотребление. Фоновая активность приложений ограничивается системой, приложения изолируются друг от друга, доступ к камере, геопозиции и файлам выдаётся по явным разрешениям пользователя.
Признак 3 · назначение · часть 2
Классификация по назначению: специализированные системы
- Встраиваемая · маршрутизатор, телевизор, счётчик, автомобильная магнитола
Работает при малом объёме памяти, часто без дисплея и клавиатуры, обновляется редко. Применяются сокращённые сборки Linux или специализированные системы, размещаемые в постоянной памяти устройства.
- Реального времени · FreeRTOS, QNX, VxWorks
Обеспечивается гарантированное время реакции на внешнее событие. Признак рассматривается отдельно на следующем экране, поскольку определяется не областью применения, а свойством планировщика.
- Пограничный случай · одноплатные компьютеры
На платах класса Raspberry Pi работает обычный дистрибутив Linux. Одно и то же ядро применяется и в серверах, и во встраиваемых устройствах, поэтому назначение системы определяется её конфигурацией, а не составом ядра.
Признак 3 · отдельный случай
Операционные системы реального времени
Система реального времени характеризуется не скоростью ответа, а гарантией того, что ответ будет получен в назначенный срок. По строгости этого требования различают два класса систем.
Блок управления двигателем формирует сигнал зажигания в заданный момент. Ответ через 12 миллисекунд вместо 10 считается не замедлением, а ошибкой работы системы.
При задержке пакета видеосвязь сохраняется: ухудшается изображение, но соединение не разрывается, и результат остаётся приемлемым.
Признак 3 · чем обеспечивается гарантия
Различия систем реального времени и систем общего назначения
- Детерминированный планировщик
Нормируется не среднее, а максимальное время реакции. Для системы реального времени это значение должно быть обосновано расчётом и подтверждено испытаниями, а не получено усреднением измерений.
- Пропускная способность как цена гарантии
Объём работы, выполняемой за единицу времени, у такой системы ниже, чем у системы общего назначения. Часть ресурсов резервируется под наихудший случай и в обычном режиме не используется.
- Почему Windows и Linux к этому классу не относятся
Обе системы оптимизируют среднее время отклика. Фоновая задача способна задержать выполнение процесса на сотни миллисекунд, и штатных средств запретить такую задержку в системе не предусмотрено.
Признаки 4, 5 и 6
Классификация по интерфейсу, разрядности и типу лицензии
- Интерфейс: командный, графический, комбинированный
Большинство современных систем комбинированные: Ubuntu включает среду GNOME и терминал, Windows — графическую оболочку и PowerShell. Чисто командными остаются серверные установки.
- Разрядность: 32 или 64 бита
Определяет предельный объём адресуемой памяти и требует соответствующей сборки программ. Разрядность должна соответствовать архитектуре процессора — этот вопрос разбирался при выборе ISO-образа.
- Лицензия: открытая или проприетарная
Открытая лицензия даёт доступ к исходному коду с правом изменения и распространения, проприетарная таких прав не предоставляет. Windows и macOS проприетарные, Ubuntu и Debian открытые. Открытая лицензия при этом не означает бесплатного распространения: Red Hat Enterprise Linux поставляется с открытым кодом и платной поддержкой.
Архитектура · три подхода
Архитектура ядра: монолитное ядро, микроядро, гибридное ядро
ПОДХОД 1
Монолитное ядроОбращение внутри ядра выполняется как обычный вызов функции, что обеспечивает высокое быстродействие. Ошибка драйвера приводит к отказу системы. По такой схеме построен Linux.
ПОДХОД 2
МикроядроОтказавшая служба перезапускается без перезагрузки системы. Цена решения — обмен сообщениями вместо прямых вызовов функций. По такой схеме построены QNX и MINIX 3.
ПОДХОД 3
Гибридное ядроПромежуточное решение между быстродействием и отказоустойчивостью. К этому типу относят ядро Windows NT и ядро XNU в macOS.
Семейства систем
Современные семейства операционных систем
WindowsЯДРО NT · 1993Настольные и серверные редакции одной линии. Гибридное ядро, файловая система NTFS, проприетарная лицензия.
LinuxЯДРО · 1991Ядро, на основе которого формируются дистрибутивы: от серверов и рабочих станций до сетевого оборудования и мобильных устройств.
macOSЯДРО XNU · 2001Основана на разработках BSD и Mach. Этим объясняется наличие в macOS UNIX-совместимого терминала наряду с графической средой.
BSDОТ UNIX · 1977FreeBSD, OpenBSD, NetBSD. Самостоятельная ветвь UNIX; часть кода BSD вошла в macOS и в сетевые подсистемы других операционных систем.
Android и iOSМОБИЛЬНЫЕ · 2007–2008Android построен на ядре Linux, iOS — на ядре XNU, общем с macOS. Различия между настольными и мобильными системами определяются окружением, а не ядром.
Дистрибутивы Linux
Дистрибутивы Linux и их различия
UbuntuОСНОВАН НА DEBIANФиксированный график выпусков, версии LTS с длительным сроком поддержки. Используется в лабораторных работах курса.
DebianС 1993 ГОДАПриоритет отдан стабильности: пакет включается в стабильный выпуск после длительной проверки. Служит основой для многих других дистрибутивов.
FedoraСВЯЗАНА С RED HATНовые версии компонентов включаются раньше, чем в других дистрибутивах. Служит площадкой апробации решений, впоследствии переносимых в корпоративные системы.
Arch LinuxНЕПРЕРЫВНЫЕ ОБНОВЛЕНИЯСистема формируется пользователем из минимального набора компонентов. Обновления поступают без задержки, настройка выполняется вручную.
apt в Ubuntu и Debian, dnf в Fedora, pacman в Arch. Команды различаются, решаемая задача одна.
Фиксированные выпуски с полугодовым циклом либо непрерывное обновление. Выбор определяется соотношением актуальности версий и предсказуемости системы.
ls, cd, права доступа и структура каталогов одинаковы во всех дистрибутивах, поэтому навыки работы переносимы.
Сравнение · три настольные системы
Сравнение Windows 11, Ubuntu Desktop и macOS
| Критерий сравнения | Windows 11 | Ubuntu Desktop | macOS |
|---|---|---|---|
| Ядро | Гибридное, линия NT | Монолитное, Linux | Гибридное, XNU на основе Mach и BSD |
| Файловая система по умолчанию | NTFS | ext4 | APFS |
| Установка программ | Установщики и Microsoft Store | Менеджер пакетов apt и репозитории | App Store и перенос приложения в Applications |
| Оболочка командной строки | PowerShell и cmd | bash или zsh | zsh |
| Лицензия | Проприетарная, оплачивается | Открытая, свободно распространяется | Проприетарная, поставляется с устройством |
| Совместимость с оборудованием | Широкая | Широкая | Официально поддерживаются только компьютеры Apple |
Практическая часть · 8 минут
Практическое задание: классификация собственной операционной системы
Значение выбирается в каждом столбце, формулировка собирается ниже. Каждое значение подтверждается наблюдением: числом процессов, списком учётных записей, выводом команды.
Разбор · четыре типичные формулировки
Разбор типичных ошибок в определениях
bash на zsh не изменяет состав операционной системы.Вопрос на выход
Контрольный вопрос: путь запроса на запись файла
Программа записала файл на диск, хотя прямого доступа к диску у неё нет. Опишите путь этого запроса и назовите, где меняется режим работы процессора.
Полный ответ содержит четыре этапа: вызов в пользовательском режиме, переход по специальной инструкции процессора, проверка прав и работа драйвера в ядре, возврат результата с обратным переключением режима.
Дополнительный вопрос: чем такой путь дороже прямой записи в устройство и по каким причинам от него не отказываются.
Итог занятия · перечень результатов
Итоги занятия: проверяемые результаты
- Назвать уровни между прикладной программой и аппаратным обеспечением и функции каждого из нихЭКРАНЫ 05, 24
- Объяснить назначение двух режимов работы процессора на примере системного вызоваЭКРАН 10
- Соотнести три этапа развития систем с тремя функциями современной ОСЭКРАНЫ 12–23
- Разграничить понятия процесса, потока выполнения и программы на накопителеЭКРАНЫ 25, 26
- Классифицировать собственную систему по шести признакам с обоснованием каждогоЭКРАН 46
- Разграничить понятия ядра, дистрибутива и оболочкиЭКРАН 47
Домашнее задание № 2 · к следующему занятию
Максим Николаевич не хочет задавать домашнее задание. Но очень хочет
- 1Классифицировать собственную систему по шести признакам
Файл
reports/os-types.md. Для каждого признака указываются значение, обоснование и наблюдение на собственном компьютере, подтверждающее вывод. К трём признакам из шести прилагается снимок экрана. - 2Сравнить собственную систему с Ubuntu на виртуальной машине
Таблица из пяти строк: ядро, файловая система, установка программ, оболочка, лицензия. Значения для Ubuntu определяются в собственной виртуальной машине командами
uname -r,lsb_release -aиdf -hT, а не берутся из внешних источников. - 3Разобрать один этап хронологии и его последствие
Записка на 8–12 строк: исходное состояние, предложенное решение, функция современной ОС, развившаяся из него, и цена этого решения. Событие выбирается из восьми этапов хронологии.

Домашнее задание № 2 · порядок сдачи
Куда положить и как сдать
В репозитории os-linux-course: reports/os-types.md, reports/compare-ubuntu.md и снимки экрана в assets/screenshots/.
Ветка hw-02, коммиты с содержательными сообщениями, Pull Request в собственную ветку main. Слияние выполняется автором после проверки.
До начала занятия 3. Классификация без наблюдений и таблица без вывода команд не принимаются.
Шесть признаков с наблюдениями, пять строк сравнения с собственными значениями, записка об одном этапе хронологии, три снимка экрана.
Про ИИ: значения, наблюдения и вывод команд собираете сами — в этом и состоит задание, а характеристики вашего компьютера модели неизвестны. Оформление .md и редактуру формулировок можно поручить модели. Я сам так делаю всегда, поэтому и вам запрещать не буду. Содержание работы должно остаться вашим: классификацию вы будете объяснять на приёмке.