Лекция 3

18.02.2026 Обновлено: 18.02.2026

Постепенное нарастание функционала ОС

Операционные системы становились всё сложнее, обрастали новым функционалом и требовали больше ресурсов. Разработчики упёрлись в стену: писать под каждую железяку с нуля становилось невозможно дорого.

Так подошли к идее создания универсальных операционных систем (раньше говорили «мобильные», но сейчас слово вызывает путаницу — лучше переносимые: возможность перемещать ОС с одного железа на другое).

  • Linux можно поставить на любую железяку (сложно представить устройство, куда нельзя было бы поставить Linux).
  • macOS на любую железяку уже не поставить (хотя пул поддерживаемых устройств всё ещё внушительный).

Раньше ОС писались под конкретный десяток моделей, не более. Начался процесс унификации аппаратных платформ.

  • Если проект уникальный — нужны уникальные специалисты. Это дорого, такого специалиста дорого заменить.
  • Обычного джависта при этом можно заменять как шестерёнку в большой системе: один не подошёл — взял другого. (Меркантильненько, но такова жизнь.)

Так пришли к идее аппаратных платформ: «давайте все процессоры будут иметь одну систему команд». Появилась платформенная разработка, выросли большие гиганты, которые потом станут IBM. Начались работы в Xerox PARC (раньше они были гигантами; мышка, принтер — всё родилось в Xerox PARC, но неудачный менеджмент погубил их величие).

Раньше, по сути, кто делал железо — тот и писал ОС. После появления аппаратных платформ ОС стали унифицироваться под эти платформы.

Языки высокого уровня

Появляется идея языков высокого уровня — гораздо приятнее писать не команду MUL с какими-то адресами, а просто ставить звёздочку, а машина пусть сама команды подставляет.

Так возникло разделение на компилируемые и интерпретируемые языки.

Интерпретируемые языки были медленными и сложными в отладке (нет всего контекста, чтение только построчное), но давали возможность писать под разные системы — код работал везде, где есть интерпретатор. Но интерпретатор тоже надо было написать.

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

Начали унифицировать и ОС: написать её на языке высокого уровня. Но как? Высокоуровневый язык должен компилироваться, а компилятор — часть языка ОС… Классическая проблема яйца и курицы.

Эту задачу решили в Bell Labs.

Феномен Bell Labs

Обычно частные компании не могут заниматься фундаментальными исследованиями — нужно обосновать инвесторам трату миллиардов на то, что может не дать результата. («Дайте нам десятки миллиардов на коллайдер, мы поищем бозон Хиггса. Но не факт, что найдём».)

Bell Labs смогла удивить всех. В её стенах трудились 8 нобелевских лауреатов. Доходы были сверхвысокими — из-за них даже пересматривали налогообложение компаний.

Что сделали в Bell Labs:

  • Изобрели полевой транзистор, создав базу для всей современной электроники.
  • Придумали ПЗС-матрицу, на которой работает любая цифровая камера.
  • Разработали процессы эпитаксиального выращивания кристаллов (привет TSMC).
  • Заложили основы теории связи — формула Шеннона.
  • Открыли реликтовое излучение.
  • И многое другое.

Bell Labs совместно с MIT работали над проектом MULTICS (Multiplexed Information and Computing Service). Затем три товарища — Кен Томпсон, Брайан Керниган и Деннис Ричи — решили развивать свою версию, форк MULTICS. Их система не обещала быть крутой и эффективной, но метила в универсальность.

Так на свет появилась UNICS

Эти же люди позже создадут язык C.

Для начала они написали систему с нуля на ассемблере. Три человека справились за полгода.

1 января 1970 года была запущена UNICS 1.

Она пока ничем принципиально не отличалась от других ОС — просто была написана своими руками на ассемблере. С этой даты, кстати, ведётся отсчёт UNIX-времени (Unix timestamp).

Не было компилятора языка высокого уровня — разрабатывают язык B (буква A была занята ассемблером). B создавался как промежуточный шаг.

Кстати, awk — последняя буква K это Керниган.

Получив интерпретатор B, который работал на UNICS, они переписали саму UNICS на B. Появилась UNICS 2. Цепочка замкнулась, но было медленно — B интерпретируемый.

Тогда приступили к созданию языка C. Компилятор для C написали на B.

  • 1973 год — UNICS 3: есть компилятор C, написанный на B.
  • Конец 1973 — UNICS 4: ядро переписано на C.
  • 1975 — UNICS 5: полностью переписана на C.
  • 1978 — UNICS 7: дорабатывались разные вещи, появился sh (shell, предок bash).

AT&T и антимонопольная служба

На AT&T (которой принадлежит Bell Labs) наезжает антимонопольная служба. Формально телекоммуникационная компания не может самостоятельно заниматься продажей операционных систем.

Был придуман смарт-мув: в США если бизнес связан с университетом, можно обойти много законов. Код UNICS отдали университету Беркли. Они создают коммерческое предприятие — Berkeley Software Distribution.

Так появилась BSD, от которой позже родятся FreeBSD, OpenBSD, NetBSD.

«Закон большой тройки»: в любой высокотехнологической отрасли есть 3 главных игрока, держащих 80–90% рынка.

3 университета вовлечены в развитие индустрии: MIT, Berkeley, Stanford.

Стэнфорд явно проигрывал гонку. Они взяли ОС от Беркли, но ушли больше в научную сторону. У них с Беркли были разногласия в сетевых технологиях: Беркли развивали NCP, Стэнфорд — TCP/IP. Стэнфорд решает сделать форк — появляется SUN (Stanford University Network). На базе этого форка Стэнфорд создаёт коммерческую ОС Solaris.

UNIX: новое имя старой системы

AT&T продолжает попытки обойти антимонопольное законодательство. Годы Paper Work дают результат: им позволяют развивать свою ОС с MIT, но они не могут использовать бренд UNICS — он отдан Беркли. Они делают изящный ход: появляется UNIX. Фонетически читается одинаково, но юридически — другое название.

От UNIX появляются коммерческие ветки:

  • HP-UX (Hewlett-Packard)
  • AIX (IBM)
  • IRIX (Silicon Graphics)

1983 год — SystemV и Ричард Столлман

Появляется важный форк — SystemV (SysV), берущий начало от BSD.

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

В этой атмосфере Ричард Столлман начинает свой крестовый поход против «акул бизнеса».

Он создаёт манифест свободного ПО с 4 принципами (и как истинный C-программист начинает нумерацию с нуля): 0. Свобода запускать программу (классически — копировать).

  1. Свобода распространять копии.
  2. Свобода изучать, как программа устроена (открытый код).
  3. Свобода улучшать программу и создавать на её основе новые произведения.

Столлман придумывает концепцию свободной лицензии.

Знак Copyright обозначает, что копия легальна и разрешена автором именно как экземпляр, но дальше копировать нельзя. Купил книгу Гарри Поттера, купил принтер — но если будешь печатать копии, автору не заплатишь.

Столлман придумывает Copyleft — перевёрнутый копирайт, который работает с точностью до наоборот.

Но пока это юридические приколы. Нужна ОС, написанная под лицензией Copyleft. Для этого нужно писать всё с нуля. Столлман запускает проект GNU — рекурсивный акроним «GNU is Not Unix».

В то время уже все писали на C. Команда Столлмана переписывает свободный компилятор C — получается gcc (GNU C Compiler) под лицензией GPL. Но у Столлмана нет экспертизы написать своё ядро, и людей ему не дают.

Студент, который бросил вызов

Хельсинкский университет (тот самый, который Пушкин назвал «приютом убогого чухонца»). Один студент изучает Minix — учебную ОС, написанную профессором Танненбаумом, — но она ему не нравится. Он решает написать свою ОС, во многом отрицая принципы Танненбаума.

В одиночку написать универсальное решение нереально — он делает ставку на конкретную архитектуру, Intel 8086 (та самая, которая станет x86).

В это время уже появляются первые сети: FidoNet, Gopher (суслик, роющий норки). Люди подключаются к этому студенту, помогая с кодом. Слухи доходят до MIT и до самого Танненбаума.

Появляется провокационная тема — «Linux устарел». Студентика как раз звали Линус Торвальдс. Линус пишет в ответ жёсткое письмо, отстаивая свои принципы. Завязывается переписка в духе «Да кто ты такой?».

Столлман приходит к Линусу: «давай возьмём твой код, твоё монолитное ядро. Но проект будет называться GNU». Линус соглашается, но с условием: чтобы в названии было его имя. Так появляется GNU/Linux.

Компания RedHat начала распространять свою версию Linux по подписке. Позже на основе исходного кода Red Hat появляется CentOS — оттуда убрали всё проприетарное, оставив полностью свободную систему. Сообщество CentOS позже погибло, но есть продолжатели дела.

1989 год — NeXT, Apple, Microsoft

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

Появляется компания NeXT (XT — отсылка к известным в те времена XT-платформам). Они создают ОС NeXTSTEP. 8 лет компания худо-бедно существовала. В 1997 году их выкупил гигант…

Персональные компьютеры были очень дорогими. Возникает нужда в ПК для домохозяйки или дизайнера — не для программиста и математика. Появляются мощные программы для дизайнеров, но дизайнер — антиматематик: либо ты технарь, либо творческий человек.

Дизайнерам Linux не подходил — командная строка, белые буковки на чёрном фоне, не для них. Нужна ОС, работающая «из коробки». Писать её с нуля — нет. Бизнес-идея: купить готовое, ребрендировать, повесить знаменитое обкусанное яблоко. Этим гигантом и был Apple. Из NeXTSTEP появилась свободная часть Apple — Darwin (юридический шаг, чтобы обходить лицензии). На основе всего этого появилась macOS.

The Windows

История Windows начинается иначе. Она создавалась с нуля концептуально. MS-DOS изначально рассчитывалась под домашнее использование: пусть менее функциональна, но удобна для обычных людей. Нересурсоёмкие задачи (текст, сёрфинг), удобный интерфейс. Это произвело фурор. Microsoft начала вкладываться в Entertainment.

Сначала Windows был надстройкой над MS-DOS. В Windows 2.0 не было пересечения окон. В Windows 3.0 — пересекающиеся окна. Позже — поддержка сети.

Дальше Microsoft принимает решение сделать графический интерфейс основным и интегрировать ядро с GUI (Linux на это не пошёл). Появляется Windows 95 — но это была «подделка»: интеграция была формально, реально все вызовы шли в ядро MS-DOS. Это было нужно, чтобы обкатать идею на фокус-группе. Появилась версия Windows XP и далее…

Добро пожаловать в современность 🏄‍♂️ 🌐 ☕️ 🖥