История операционных систем
История ОС - от мейнфреймов к персональным ПК
Современная Windows, Linux или macOS кажутся «всегда такими». На деле каждая возможность — от виртуальной памяти до вкладок в браузере — появилась как ответ на конкретную проблему: дорогой процессор простаивал, операторы вручную переносили перфоленты, один сбойный процесс ронял всю машину.
История ОС — это цепочка компромиссов: эффективность железа ↔ удобство программиста ↔ безопасность ↔ стоимость разработки. Понимая эту цепочку, проще читать документацию ядра, спорить об архитектуре и не путать «старый костыль» с «фундаментальной идеей».
Связанные материалы: определение и роль ОС, архитектура ядра, классификация современных ОС.
До операционных систем — программа = вся машина
В 1940–1950-х программа загружалась так, что владела всем компьютером. Оператор монтировал перфоленту или переключал провода, запускал расчёт, ждал окончания, снимал результат. Пока программа работала, никто другой не мог использовать машину — даже если процессор 90% времени ждал медленную память или перфоратор.
Первые «операционные» элементы — загрузчики и библиотеки подпрограмм (например, для машины IBM 701): они экономили время оператора, но не давали параллелизма.
Пакетная обработка (batch processing)
Идея: накопить задания в очередь и выполнять их подряд без участия человека между задачами.
| Что изменилось | Зачем |
|---|---|
| Очередь заданий (job queue) | Меньше простоя между программами |
| Автоматическая смена заданий | Оператор не переносит ленту вручную после каждой задачи |
| Учёт времени и ресурсов | Можно выставлять счёт и планировать мощности |
Типичный пример — OS/360 (IBM, 1960-е): крупная система для мейнфреймов, пакетная обработка, учёт заданий. Пользователь не «сидел за консолью» в реальном времени — он сдавал колоду карт, получал результат позже.
Ограничение: пока одна программа выполнялась, процессор всё ещё мог простаивать в ожидании ввода-вывода (медленные ленты, диски). Следующий шаг — не отпускать CPU.
Мультипрограммирование (multiprogramming)
Идея: пока одна программа ждёт диск, CPU переключается на другую. В памяти одновременно несколько программ; планировщик решает, кому отдать процессор.
Это заложило основы понятий, которые вы видите сегодня:
- процесс (программа + её состояние);
- очередь готовых и очередь ожидающих I/O;
- переключение контекста;
- защита памяти (чтобы программы не портили друг друга).
Появились прерывания как стандартный способ сообщить ядру: «устройство закончило работу» или «истёк квант времени».
Подробнее о процессах и планировании: управление процессами в Linux, классические алгоритмы планирования CPU.
Разделение времени (time-sharing)
В 1960-х исследователи (в том числе проект CTSS в MIT, затем Multics) пошли дальше: дать интерактивность — многим пользователям по терминалу, как будто у каждого «свой» компьютер.
| Пакетная ОС | Time-sharing |
|---|---|
| Ответ через минуты/часы | Отклик на нажатие клавиши — доли секунды |
| Очередь на магнитной ленте | Сессии по терминалу |
| Мало обратной связи | Редакторы, отладчики в онлайне |
Multics (1965+) ввила многие идеи, которые пережили полвека:
- иерархическая файловая система;
- кольца защиты (предшественник уровней привилегий);
- разделяемая память и IPC;
- концепция «всё есть файл» (развита в Unix).
Multics была сложной и дорогой, но стала прямым предком Unix.
Unix и «одна простая идея»
Unix (Bell Labs, 1969–1970, Кен Томпсон, Деннис Ритчи) — переломный момент. компактное ядро и чёткая философия:
- программы — фильтры в конвейере (
cmd1 | cmd2); - устройства и IPC — через файловый интерфейс;
- процессы —
fork+exec; - переносимость на разное железо (C вместо ассемблера).
Unix породил семейство систем: BSD, System V, Linux (ядро + GNU), macOS (Darwin/XNU), Android (ядро Linux). См. классификацию ОС и основы UNIX.
rwx, /proc — наследие Unix. Даже Windows переняла идеи (WSL, NTFS-права, подсистема POSIX в старых версиях).Персональные компьютеры — от DOS к Windows и macOS
MS-DOS (1981) — однопользовательская, по сути без полноценного планировщика процессов в современном смысле: одна программа владеет машиной (кроме TSR и поздних хаков). Простота и низкие требования к RAM.
Windows пошла другим путём:
- Windows 1.x–3.x — оболочка над DOS;
- Windows NT (1993) — новое ядро: 32-бит, защита памяти, многозадачность, клиент-сервер внутри ядра (гибридная архитектура). См. Windows.
macOS (наследник Mac OS + NeXTSTEP) — гибрид XNU (Mach + BSD). См. macOS.
Параллельно Linux (1991) как свободное ядро + дистрибутивы сделали Unix-подобную ОС массовой на серверах и позже на смартфонах.
Сетевые и распределённые ОС
Когда машины соединили локальными сетями, ОС научились:
- монтировать удалённые файловые системы (NFS, SMB/CIFS);
- запускать процессы на других узлах (ранние кластеры, сегодня — Kubernetes поверх Linux, а не «другая ОС»);
- разделять имя и адрес (DNS), аутентификацию (Kerberos, домены AD).
«Сетевая ОС» как отдельный продукт (Novell NetWare и др.) уступила место сетевому стеку внутри универсальной ОС — TCP/IP в ядре или рядом с ним.
Реального времени (RTOS)
Не все системы гонятся за максимальным throughput. RTOS (FreeRTOS, QNX, VxWorks) гарантируют верхнюю границу задержки — критично для АСУ ТП, автомобилей, медицины.
| Критерий | Обычная ОС (GPOS) | RTOS |
|---|---|---|
| Цель | Справедливость, throughput | Дедлайны |
| Планирование | CFS, приоритеты с долей времени | Фиксированные приоритеты, предсказуемость |
| Подкачка | Да, может задержать задачу | Часто отключена |
См. также упоминание RTOS в классификации.
Виртуализация и облако
Гипервизор (VMware, KVM, Hyper-V) запускает несколько гостевых ОС на одном железе. Идея старая (IBM VM/370), массовая — с 2000-х.
Слой ниже гостевой ОС — эмуляция устройств, вложенные таблицы страниц (см. распределение памяти). Слой выше — контейнеры: изоляция процессов через namespaces и cgroups в Linux (Docker, containerd).
Контейнер — не замена ОС: это способ упаковать приложение, используя то же ядро хоста.
Хронология в одной таблице
| Период | Веха | Главная идея |
|---|---|---|
| 1940-е | ENIAC, Colossus | Программа = ручной запуск |
| 1950-е | Перфоленты, загрузчики | Меньше ручного труда оператора |
| 1960-е | OS/360, пакетные системы | Очередь заданий |
| 1960-е | Мультипрограммирование | CPU не простаивает в I/O |
| 1960-70-е | CTSS, Multics | Time-sharing, интерактив |
| 1970-е | Unix | Простота, переносимость, pipe |
| 1980-е | MS-DOS, ранний Mac | Персональный компьютер |
| 1990-е | Windows NT, Linux | 32/64 бит, сеть, open source |
| 2000-е | Виртуализация, SMP, NUMA | Много ядер, много ВМ |
| 2010-е | Контейнеры, облако | Изоляция без полной ВМ |
| 2020-е | eBPF, confidential computing | Наблюдаемость и безопасность в ядре |
Что вынести на экзамен и на практику
- ОС эволюционировала от «управления очередью заданий» к «управлению ресурсами для многих программ и пользователей».
- Unix задал лексикон индустрии; NT — модель Win32 и гибридного ядра; Linux — открытая серверная и мобильная база.
- Современные темы (контейнеры, cgroups,
/proc, systemd) — продолжение идей изоляции, учёта ресурсов и IPC, а не революция с нуля.
Дальше по учебному маршруту: требования к ОС и подходы к реализации → ядро → процессы → память.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Программное обеспечение, управляющее аппаратными ресурсами компьютера. Основные функции и задачи ОС. Функциональные и нефункциональные требования к операционным системам, критерии выбора архитектуры ядра и способы реализации подсистем. Классификация операционных систем - ключевые семейства ОС, их отличия, типовые области применения и архитектурные особенности. Основы UNIX-систем - ключевые принципы многозадачности, иерархии файлов и управления процессами в классической Unix-модели. Ядро операционной системы - различия монолитной и микроядерной архитектуры, их компромиссы по производительности и надежности. Обзор Windows — версии, компоненты ядра NT, файловая система NTFS, структура каталогов и отличия от Unix-подобных систем. Полный инструментарий по Windows 11, возможности и функции. Устройство файловой системы Windows - иерархия хранения данных, служебные структуры и поведение файловой среды в ОС. Работа памяти в Windows - физические и виртуальные уровни, страницы памяти и механизмы управления ресурсами процессов. Локализация и символы в Windows - особенности кодировок, терминалов и корректной обработки текста в системных инструментах. Сравнение Windows и Linux - различия подходов к интерфейсу, администрированию и повседневным рабочим сценариям. Linux - структура файловой системы, ключевые каталоги и базовые принципы организации среды в Unix-подобной ОС.Операционные системы
Требования к ОС и подходы к реализации
Классификация операционных систем
Основы UNIX-систем
Ядро операционной системы
Windows
Справочник по Windows 11
Устройство файловой системы Windows
Работа памяти в Windows
Поддержка локализации и символов в Windows
Сравнение Windows и Linux
Linux