Similar presentations:
Операционные системы и среды: UNIX и Windows (архитектуры и философии)
1.
Операционные Системы и Среды | Лекция 2Операционные Системы и Среды
Лектор: Васильев Александр Витальевич
2.
Операционные Системы и Среды | Лекция 2Тезисы прошлой лекции:
Само название Operating System (Оперирующая система) подсказывает нам суть. Чем она оперирует - Оборудованием.
Операционная Система — это комплекс программных средств, предназначенных для:
Обеспечения доступа к ресурсам
Диспетчеризации этих ресурсов - наиболее удобным и эффективным для пользователя способом.
Обратите внимание на ключевые слова в конце: Удобство и Эффективность.
3.
Операционные Системы и Среды | Лекция 24.
Операционные Системы и Среды | Лекция 25.
Операционные Системы и Среды | Лекция 2Эволюция семейства ОС UNIX. Легенда о Динозаврах.
Mult — Multiplexed (Мультиплексная)
I — Information
(Информационная)
C — Computing (Вычислительная)
S — Service (Служба)
История UNIX начинается с прародителя - ОС MULTICS. В 60-е годы гиганты индустрии (Bell Labs, General Electric и MIT)
пытались создать «операционную систему мечты» — MULTICS (Multiplexed Information and Computing Service).
Идея: Компьютерные вычисления должны стать такой же коммунальной услугой, как электричество или вода.
Огромный центральный компьютер обслуживает весь город, а люди подключаются к нему через терминалы.
Результат: Проект оказался слишком сложным, громоздким и дорогим для своего времени. Он опередил
технический прогресс. В итоге Bell Labs вышла из проекта, но идеи (например, многозадачность) остались в
головах разработчиков.
6.
Операционные Системы и Среды | Лекция 2Эволюция семейства ОС UNIX. Философия.
Un— Uniplexed (Односложная)
I — Information (Информационная)
C — Computing
(Вычислительная)
S — Service
(Служба)
Один из исследователей Bell Labs, Кен Томпсон, который работал над MULTICS, решил сохранить полезные концепции, но
отбросить ненужную сложность. ОС была создана для
Название: Изначально система называлась UNICS (UNiplexed Information and Computing Service). Это была игра слов, унаследованная
от названия MULTICS: вместо «Мульти-» (многосложная) — «Уни-» (односложная, простая). Интересный факт: Буквы «CS» на «X»
(UNIX) предложил заменить Брайан Керниган, посчитав, что так название выглядит загадочнее.
Дата рождения: Официальным началом эпохи UNIX считается 1 января 1970 года.
Первая версия была написана Кеном Томпсоном буквально для списанного компьютера (PDP-7) и предназначалась система для нужд
патентного отдела Bell Labs — для обработки и форматирования текстов патентов.
Принцип KISS (keep it short and simple): Система была предельно простой. В ней не было сложной внутренней структуры файлов —
файл стал просто неструктурированным потоком байтов.
«Всё есть файл»: Это ключевая концепция UNIX. Экран, мышка, сетевая карта, данные на диске — для системы всё это файлы, с
которыми можно работать одинаковыми методами (читать/писать).
UNIX — это собирательный образ, основанный на стандартах и философии первой версии ОС UNIX.
7.
Операционные Системы и Среды | Лекция 2Революция языка Си: Первая переносимая ОС.
Эволюция: От «Языка мечты» к универсальному языку для разработки ОС:
CPL (Combined Programming Language) — сложная спецификация, «язык мечты».
BCPL (Basic CPL) — базовая, упрощенная версия.
Язык B («Би») — Кен Томпсон. Выкинул всё лишнее, оставил минимум для работы на PDP-7.
Язык C («Си») — Деннис Ритчи. Добавил структуры данных и типизацию.
Философия языка Си:
«Высокоуровневый ассемблер»:
Близость к железу (драйверы, ядра).
Абстракция (код читается как текст).
3. Главный результат:
Мобильность UNIX: Первая в истории переносимая ОС (Minix для x80-86 )
До Си: ОС умирала вместе с компьютером (написана на Ассемблере).
С языком Си: ОС можно перекомпилировать и запустить на новом железе.
8.
Операционные Системы и Среды | Лекция 2Дерево Языков
9.
Операционные Системы и Среды | Лекция 2POSIX: Стандарт, объединяющий семейство UNIX
1. Стандарт
POSIX = Portable Operating System Interface + X (дань традициям UNIX).
Разработчик: IEEE (Institute of Electrical and Electronics Engineers, комитет №1003). Вспомним что такое IEEE802.11.
2. Структура стандарта
POSIX.1 (API): Интерфейс прикладного программирования. Правила общения программ с ядром (функции open, read, write).
POSIX.2 (CLI): Интерфейс командной строки. Правила общения пользователя с системой (Shell, утилиты ls, cp, mv).
3. Главная цель
Переносимость (Portability): Совместимость на уровне исходного кода.
Программу можно перенести с Linux на Solaris простой перекомпиляцией.
4. Философия - Линус Торвальдс написал всё с нуля, но:
Linux ведет себя как UNIX (соответствует стандарту POSIX.1).
Linux управляется как UNIX (соответствует стандарту POSIX.2). Значит, Linux — это UNIX-совместимая операционная система.
10.
Операционные Системы и Среды | Лекция 2Архитектура UNIX: Ядро и Интерфейсы
1. Уровень Ядра (Kernel Space) - Внутренняя структура едина для большинства UNIX-систем (4 компоненты):
Process Management: Управление процессорным временем (Планировщик).
Memory Management: Управление оперативной памятью (Виртуальная память).
I/O Subsystem: Драйверы устройств и буферы.
File Subsystem: Управление информационным ресурсом. Центральный диспетчер (концепция «Всё есть файл»).
2. Граница взаимодействия
System Calls (Системные вызовы):
○
Единственный способ обратиться к ядру (POSIX.1).
○
«Дорогая» операция: требует переключения контекста процессора (User Mode → Kernel Mode).
libc (Standard C Library):
○
Системная библиотека-«обертка».
○
Превращает сложные системные прерывания в простые функции (open, read, write).
3. Типы вызовов
Library Call: Вызов функции в пространстве пользователя (Быстро).
System Call: Вызов функции ядра с переключением режима (Медленнее, но мощнее).
11.
Операционные Системы и Среды | Лекция 2Архитектура UNIX: Ядро и Интерфейсы
12.
Операционные Системы и Среды | Лекция 2Философия: «Всё есть файл»
1. Фундаментальный принцип (Кен Томпсон)
«Не плодить сущности без надобности».
Отказ от специальных интерфейсов для каждого устройства.
2. Универсальная абстракция В UNIX файл — это не просто данные на диске, это интерфейс доступа:
Hardware: Мышь, клавиатура, видеокарта — это файлы.
Network: Сокеты и соединения — это файлы.
IPC: Каналы общения между программами — это файлы.
3. Единый метод взаимодействия
Программисту не нужно учить API видеокарты или сетевого протокола.
Достаточно 4-х функций: open, read, write, close.
4. Plan 9 - самый UNIXовый UNIX:
Если экран — это файл, неважно, где он физически находится.
Программа работает на сервере, а пишет в файл «экран» на вашем ноутбуке.
Plan 9: Доводит эту идею до абсолюта (распределенная система без спец. протоколов)
13.
Операционные Системы и Среды | Лекция 2Библиотеки: Удобство против Безопасности
1. Что такое библиотека? Это чужой код, взятый “взаймы”. Файл с набором готовых функций, у которого (в отличие от обычной
программы) нет точки входа ( у программистов main) — он просто ждет вызова. В операционной системе библиотека (например, libc)
играет роль «Переводчика»: она превращает простые функции программиста (open, read) в сложные Системные вызовы (System
Calls), понятные ядру.
2. Механизм работы (Shared Address Space) В современных ОС (Windows, Linux) доминируют динамические библиотеки (.dll, .so). При
запуске программа загружает код библиотеки в своё собственное адресное пространство. Чужая функция становится частью вашего
процесса, получая полный доступ ко всей вашей памяти и работая с вашими правами.
3. Фундаментальная уязвимость - архитектура построена на слепом доверии. Загрузка библиотеки эквивалентна тому, чтобы
«передать управление чужаку». Злоумышленнику достаточно подменить файл библиотеки на диске (атака «Троянский конь» / DLL
Hijacking), и легитимная программа своими руками запустит вредоносный код внутри себя.
4. Альтернативный подход (Plan 9) В исследовательской ОС Plan 9 динамические библиотеки полностью отсутствуют как класс.
Вместо загрузки кода «к себе» используется Клиент-Серверная модель: данные отправляются на обработку в отдельный,
изолированный процесс. Это медленнее, но гарантирует безопасность памяти.
14.
Операционные Системы и Среды | Лекция 2История Windows
15.
Операционные Системы и Среды | Лекция 2Архитектура Windows: Ядро и Интерфейсы
16.
Операционные Системы и Среды | Лекция 2Ядро ОС
1. Монолитное ядро (Monolithic Kernel)
Пример: UNIX, Linux, MS-DOS.
Принцип: «Всё в одном котле». Драйверы, файловая система, менеджер памяти работают в едином адресном
пространстве ядра.
Плюс: Максимальная производительность (нет лишних переключений).
Минус: Низкая надежность. Ошибка в одном драйвере обрушивает всю систему (Kernel Panic).
2. Микроядро (Microkernel)
Пример: QNX, Minix
Принцип: В ядре только минимум (планировщик). Драйверы и службы вынесены в User Mode (работают как
обычные процессы).
Плюс: Идеальная надежность. Если драйвер завис — его можно перезапустить без перезагрузки ОС.
Минус: Низкая производительность (высокие накладные расходы на переключение контекста).
3. Гибридное ядро (Hybrid Kernel)
Пример: Windows NT (XP, 10, 11), macOS.
Принцип: Компромисс. Структура микроядерная, но критические подсистемы (графика, драйверы) возвращены в
ядро ради скорости.
Результат: Быстро как монолит, но с риском полного краха (BSOD) при сбое драйвера.
17.
Операционные Системы и Среды | Лекция 2Философия: «Всё есть объект»
«Если философия UNIX — "Всё есть файл", то философия Windows NT — "Всё есть Объект". Система
писалась в 90-е годы, когда объектно-ориентированный подход (ООП) был на пике моды.
Хотя само ядро написано на языке Си (который не является объектным), оно спроектировано в объектном
стиле.
Файл — это объект.
Процесс — это объект.
Поток — это объект.
Окно, семафор, таймер — всё это объекты.
У каждого объекта есть свойства, методы и заголовки безопасности. Этим занимается специальный Object
Manager внутри ядра. Это дает системе унификацию, но добавляет сложности. В UNIX вы просто пишете
байты в файл. В Windows вы вызываете методы объекта».
18.
Операционные Системы и Среды | Лекция 2Архитектура Windows NT: Нейтральное Ядро
1. Философия Дэйва Катлера
Ядро-агностик: Ядро NT не знает, что такое «Windows», «кнопки» или «окна».
Задача ядра: Предоставлять только базовые абстракции (потоки, память, объекты, семафоры).
2. Executive Services (Исполнительные службы)
Configuration Manager (Реестр):
○
Концепция: Единая централизованная бинарная база данных настроек (The Registry).
○
Отличие от UNIX: Строгая иерархия вместо хаоса текстовых конфигов (/etc/*.conf).
Security Reference Monitor (SRM):
○
Безопасность. Принудительная проверка прав доступа при каждом обращении к любому объекту.
Plug-and-Play & Power Manager:
○
Горячее подключение устройств и управление энергопотреблением (сон, гибернация).
3. Environment Subsystems (Подсистемы окружения)
Принцип: Реализуют API для разных типов приложений в User Mode.
○
Win32 (CS): Основная «родная» подсистема (GUI, DirectX).
○
POSIX: Для совместимости с UNIX (требование внутри США).
○
OS/2: Для запуска приложений IBM (историческое наследие).
LPC (Local Procedure Call): Высокоскоростной механизм передачи сообщений, связывающий подсистемы и ядро.
software