
Постепенное нарастание функционала ОС
Операционные системы становились всё сложнее, обрастали новым функционалом, требовали больше ресурсов. Разработчики упёрлись в стену: писать под каждую железяку с нуля становилось невозможно дорого.
Так подошли к идеи создания универсальных операционных систем (мобильные, но сейчас слова мобильный вызывает спутанность, тут больше портативность(?) возможность перемещать с одного железа на другое железо)
Например Linux можно поставить на любую железяку (сложно представить устройство, куда нельзя было бы поставить линукс) А вот MacOS на любую железяку уже не поставить (сложно представить случайный компьютер, куда она встанет, хотя пул поддерживаемых устройств всё еще внушительный)
Раньше ОС писалась под конкретный десяток моделей, не более
Начался процесс унификации аппаратных платформ
- Если проект уникальный - нужны уникальные рабочие. Это дорого, такого специалиста дорого заменить, а если он уйдет, то будут еще и накладные расходы
- Обычного же джависта при этом можно заменять как шестерёнку в большой системе: один не подходит, выбросил, взял другого (меркантильненко, но такова жизнб…)
Так и пришли к идеи аппаратных платформ: “а давайте все процессоры будут иметь одну систему команд”
Появилась платформенная разработка, выросли большие гиганты, которые потом станут IBM, начнутся работы в Xerox PARC (раньше они были гигантами, мышка, принтер всё родилось в Xerox PARC, но неудачный менеджмент погубил их величество)
Ранее, по сути, кто делал железо, тот и писал ОС. Максимальная унификация это похожие интерфейсы, но внутренняя реализация была везде разной. После появления аппаратных платформ ОС стали тоже унифицироваться и писаться под эту аппаратную платформу
Языки высокого уровня
Появляется идея языков высоких уровней (классно писать не команду MUL с какими-то адресами, а просто ставить звёздочку, а там пускай машина сама команды подставляет)
Так возникло разделение на компилируемые и интерпретируемые языки
Интерпретируемые языки были хоть и медленными и сложными в отладке (не было всего контекста, чтение только построчное), но он дал возможность писать под разные системы, код работал везде где есть интерпретатор, но нужно было бы написать интерпретатор
Cоздать железо, которое будет поддерживать все языки программирования было невероятно дорого и требовало уйму мозговитых людей
Начали унифицировать и ОС. Его решили написать на языке высокого уровня. Но как написать ОС на высокоуровневом языке, если высокоуровневый язык должен компилироваться, а компилятор это часть языка ОС… Классическая проблема яйца и курицы
Эту задачу решили в Bell Labs (вообще Bell Labs это феномен…)
Феномен Bell Labs
Обычно частные компании не могут идти в фундаментальные исследование, потому что нужно доказать целесобразность расходов огромных миллиардов инвесторам на то, что может просто не дать результатов. “Вот давайте бозон Хиггса ловить… Но мы правда не знаем поймаем ли или нет… Но вы это… Дайте десятки миллиардов, мы их в землю закопаем чтобы коллайдер построить”
И Bell Labs была как раз той частной компанией, которая смогла удивить всех. В её стенах трудились 8 нобелевских лауреатов. У них были сверхвысокие доходы и даже их-за них возникла нужда пересмотреть налогооблажение для компаний со сверхвысокими доходами
- Изобрели полевой транзистор, создав базу для всей современной электроники
- Придумали ПЗС-матрицу, на которой работает любая цифровая камера
- Разработали процессы эпитаксиального выращивания кристалов, что сегодня позволяет создавать и память, и процессор, и любые микросхемы (привет TSMC)
- Заложили основы теория связи — формула Шеннона
- Открыли реликтовое излучение и заглянули в невидимые спектр
- и т.д…..
В Bell Labs совместно с MIT работали над проектом MULTICS (Multiplexed Te and Information Computer Service) Но потом пришли три товарища — Кен Томпсон, Брайан Керниган и Деннис Ричи — и решили развивать свою версию, форк MULTICS. Их система не обещала быть крутой и эффективной, но зато метила в универсальные
Так на свет появилась UNICS
Именно они позже создадут и язык C
Для начала они взяли и написали систему с нуля на ассемблере. Три человека справились за полгода. 1 января 1970 года была запущена UNICS 1
Она пока ничем принципиально не отличалась от других ОС, просто была написана своими руками на ассемблере.
С этой даты, кстати, ведётся отчёт UNIX-времени (timestamp)
У системы не было компилятора языка высокого уровня. Поэтому следом они разрабатывают язык B (Названный так, потому что А было занято за ассемблером). Язык B был создан как промежуточный шаг, чтобы в будущем написать на нём что-то большее (например язык)
%%Кстати, awk - последняя буква K это Кернинган%%
Получив интерпретатор B который будет запускаться на UNICS, они переписали саму UNICS на язык B. Так появилась UNICS 2
Цепочка замкнулась. Была наконец создана связка ОС и интерпретируемого языка. ОС сама себя интерпретировала. Это было очень медленно, так как это интепретируемый язык.
Тогда они приступили к созданию языка C. Компилятор для C они написали… на языке B.
К 1973 год появилась UNICS 3 в котором есть компилятор C, написанный на B. Теперь можно было писать на C.
Последний шаг – переписать на C саму UNICS. Но к UNICS 4 переписали только ядро ОС (конец 1973)
UNICS 5 – полностью переписанный на C (1975 год)
UNICS 7 вышел в 1978 год. Тут дорабатывались какие-то вещи операционки. Появился sh (shell, предок bash)
Начинается следующий виток истории
AT&T и антимонопольная служба
На компанию AT&T (bell labs) наезжает антимонопольная служба. Формально программа не может самостоятельно заниматься продажами операционных систем, так как они телекомуникационная служба
Был придуман смарт-мув. В США если бизнес связан с универстетом, то этот бизнес может обойти много законов.
Код UNICS отдали университету Беркли. Университет получает возможность дальше его развивать. Чтобы развивать какой-то коммерческий проект они создают коммерческое предприятие. Они создали Berkeley Software Distribution.
Так появилось BSD, от которой позже появятся FreeBSD, OpenBSD, NetBSD
В высокотехнологических компаниях работает “Закон большой тройки”: в любой отрасли есть 3 главных игрока, которые держут 80-90% рынка
3 университета вовлечены в развитие индустрии: MIT, Berkli, Stanford
Стэнфорд явно проигрывает эту гонку. Они вовсе берут ось от беркли. Стэнфорд же ушли больше в начную штуку. И Беркли и Стэнфорд шли с научной точки зрения. У них были разногласия в сетевых технология. Беркли развивали NCP, а стэнфорд стали продвигать TCP/IP. Продвигать Стэнфорд принимает решение сделать форк. Появляется SUN (Stanford University Network)
На базе этого форка Стенфорд создают коммерческую ОС Solaris
Unix: новое имя старой системы
А тем временем AT&T не оставляла попыток обойти антимонопольное законодательство. Годы бюрократии(Paper Work) дали результат, по итогу им дают возможность с MIT развивать свою ОС, но они не могут использовать уже бренд Unics, потому что он был отдан Berkli и успешно похоронен. Поэтому они делают очень изящный ход и появляется Unix. С точки зрения фонетики читается одинаково, но юридически это другое название.
От этого UNIX появляются свои коммерческие ветки:
- HP-UX (Hewlett-Packard)
- AIX (IBM)
- IRIX ()
Перенесёмся в 1983 год
Появляется еще один важный форк - SystemV (SysV), который берёт своё начало от BSD
В то время царил патентный беспредел: можно было взять чужую разработку, добавить копеечную деталь, запантетовать — и потом подать в суд на оригинального автора. обвинив его в плагиате
Именно в этой атмосфере Ричард Столман начинает свой крестовый поход против “акул бизнеса”
Он создаёт свой манифест свободного(открытого) ПО с 4 принципами (и как истинный си-программист начинает нумерацию с нуля) 0. Свобода копировать
- Свобода распростронять (если есть копия, то можешь отдавать кому-то другому)
- Свобода узнавать как она устроена (открытый код)
- Свобода создавать на этой основе новые произведения
Столман придумывает концепции свободной лицензии
Значок Copyright обозначает что копия разрешена. Ваша копия легальна и разрешена автором.
Купил copyright книгу Гарри Поттера. Купил принтер и начал копировать книжки. Вроде ты за всё заплатил, книгу, принтер, бумагу. Но не платишь автору
В общем значок copyright значит что ты купил не сам текст, а чисто этот экземпляр и больше не можешь копировать его
Столман придумывает Copyleft – перевёрнуты копирайт, который работает с точностью да наоборот.
Но пока это только юридические приколы. Нужен код. Нужна операционная система, написанная под лицензией Copyleft
%%Единожды написанное нельзя закрыть%%
Для этого нужно писать всё с нуля. Столман запускает свой проект с открытым кодом GNU — рекурсивный акроним “GNU is Not Unix”.
В то время уже все писали на C
Столман совместно со своей командой переписывают свободный компилятор C и получает название gcc (gnu c compiler). Опенсорсный по GPL лицензией. Но возникает проблема с ядром. У Столмана нет такой экспертизы чтобы написать своё ядро. Столману не дают людей, которые могут ему помочь
Но тут снова вмешивается удача. Откатимся немного назад…
студент, который бросил вызов
Хельсенский университет (тот самый, который Пушкин назвал “приютом убогого чухонца”) Один студент изучает Minix — учебную ОС, написанную професором Таненбаумом, но ему она не нравится. Он решает написать свою ОС, во многом отрицая принципы, заложенные Таненбаумом.
В одиночку написать универсальное решение нереально, поэтому он делает ставку на конкретную архитектуру - Intel 8086, ту самую, которая после станет x86
В это время уже появляются первые сети: FidoNet, подписные сети. Gopher (суслик, роет норки и распространяется по ним). Люди подключаются к этому студенту, помогать с кодом. Слухи доходят до MIT и до самого Таненбаумана.
Появляется провокационная тема: “Linux устарел”. Нашего студентика как раз звали Торвальд Линус. Торвальд пишет в ответ тоже достаточно жёсткое письмо где отбивает свои принципы и это переходит в переписку “Да кто ты такой”
Столман приходит к Линусу. Говорит давай мы возьмем тебя к себе, твой код, твоё монолитное ядро. Но проект будет GNU, так как за нами MIT и имя. Линус соглашается но с одним условием. Чтобы в название проекта было его имя. Столман соглашается. Проект называется GNU/Linux
Компания RedHat начали распространялись свою версию Linux по подписке
Позже на основе исходного кода Redhat появляется CentOS – из него убрали всё проприетарное и лицензионное, оставляя полностью свободную систему.
Комьюнити CentOS погибло, но вроде есть сейчас следователи дела.
1989 год…
К концу 80-ых активно появляется много операционных систем с исходным кодом. Совместно с ними появляются и частные бизнесы, которые собирают свои конфигурации компьютеров с открытым ПО и дописывают его под конкретные ниши. Классный интерфейс и т.д.
Появляется компания NeXT (XT - связка с известными в те времена XT платформы)
Они создают ОС NeXTSTEP. На протяжение 8 лет эта компания худо или бедное была на плаву. Деньги зарабатывала ну и ладно. В 1997 году их выкупила гигант…
Персональные компьютеры были очень дорогими. Нужен был ПК для домохозяйки или ПК не для программиста, математика. Появляются мощные программы для дизайнеров. Но дизайнер это антиматематик. Либо ты математик/технарь либо творческий/дизайнер.
Для дизайнеров как бы нужна явно не линукс. Командная строка, белые буковки, чёрный фон явно не для них. Нужна ОС которая бы работала с коробки. Но писать её с нуля – нет. Бизнес идея компания: покупать кого-нибудь, ребрендировать, вешать знаменитое обкусанное яблоко. Как раз этим гигантом был Apple. Из NeXTSTEP появляется свободная часть Apple - Darwin. Это был юридический шаг чтобы обходить лицензии и не получать по головушке. На основе всего этого появляется MacOS
Закроем ветку Apple. Перейдем к ветке синего окошка.
The Windows
История Windows начинается иначе. Она была создана с нуля концептуально. Операционная система MsDOS изначално рассчитывалась под домашнее использование. Пусть она будет нефункциональна, но имела полезные для обычных людей. Нересурсоёмкие задачи, написать текст, посёрфить интернет. Удобный интерфейсик. Это произвело фурор в обществе и они стали популярными. Они начали вкладывались в Entertaiment (развлечения).
Сначала Windows был надстройкой над MsDOS. В Windows 2.0 не было пересечения окон. Потом Windows 3.0 пересекающиеся окна. Позже появилась поддержка сети.
Дальше Microsoft принимают решение сделать графический интерфейс основным. Интегрировать ядро с графическим интерфейсом. То, на что линукс не пошёл. Появился Windows x95. Но это было подделкой. Интеграция была, но на самом деле все вызовы шли в ядро MsDOS. Это было нужно чтобы обкатать просто идею, понять, нужно ли это делать вообще на какой-то фокус группе. Появилась версия Windows XP и т.д.
Добро пожаловать в современность 🏄♂️ 🌐 ☕️ 🖥