Coherent OS: забытый клон Unix v7

в 12:00, , рубрики: coherent, nix, UNIX, операционные системы
Coherent OS: забытый клон Unix v7 - 1

Начало 80-х. AT&T, в чьей Bell Labs был разработан Unix, внезапно осознала очевидный факт: их программный продукт популярен, но при этом не приносит никакого дохода. Руководство решает начать продажу коммерческих лицензий.

Если верить журналу Byte за октябрь 1983 года, лицензию Unix для частной компании можно было купить за умопомрачительные 20 000 долларов. Лишь немногие могли себе позволить такие траты (справедливости ради, для учебных заведений ценник был гораздо ниже — всего 200 долларов США). В это непростое время появился проект, который поставил своей целью конкурировать с оригинальным Unix. Сегодня расскажу, что из этого вышло.

Шипучая история

В наше повествование внезапно врывается газировка! Точнее, безалкогольный напиток Dr. Enuf, созданный после Второй мировой войны американским предпринимателем Робертом Шварцем. Вкус лимона и лайма в нем сильно отличается от напитков вроде 7 Up, Sprite или Mountain Dew. Его начинили кофеином и витаминами группы B, получив тем самым то, что мы сейчас называем энергетиками.

Изначально Dr. Enuf рекламировали как отличное средство от похмелья, которое к тому же снижает боли в желудке. Да и приставка Dr. прозрачно намекает на лечебные свойства. Разливать сей напиток стали в партнерстве с Чарльзом Гордоном (Charles O. Gordon) из Tri-City Beverage, которая уже до этого владела Mountain Dew:

Charles O. Gordon, основатель Tri-City Beverage

Charles O. Gordon, основатель Tri-City Beverage

Когда PepsiCo Inc решила сделать предложение выкупить оба бренда напитков, то Tri-City Beverage продала только Mountain Dew, а Dr. Enuf оставила за собой. Забавно, что эта газировка до сих пор продается в США и ее реально можно попробовать в штатах Теннесси, Вирджиния и Северная Каролина.

К 1977 году стало ясно, что в битве двух якодзун (The Coca-Cola Company и PepsiCo Inc) победы ближайшие годы не будет. С бизнесом по производству газировки Роберт Шварц завязал, сменив сферу деятельности Mark Williams Company (MWC) на разработку программного обеспечения. Наблюдая за тем, как AT&T Unix все больше и больше захватывает умы и сердца, он решил, что нужно вложить средства в создание альтернативной системы, которая будет практически полностью копировать поведение оригинального Unix.

Что внутри

У MWC не было ничего, что позволяло бы легально использовать исходный код AT&T Unix в разработке Coherent OS. Ни лицензии, ни торговой марки… Словом, ничего, что могло бы впоследствии дать повод к судебным искам. Но при этом разработчики системы, будучи выпускниками исследовательского Университета Ватерлоо, прекрасно знали, как устроен оригинальный Unix.

Так что когда в MWC наведалась делегация из AT&T с целью уличить создателей в копировании интеллектуальной собственности, то им попросту нечего было предъявить. Coherent OS не использовала код Unix, а просто по-другому реализовала те же идеи, что лежали в основе этой ОС. Именно поэтому такая операционная система называлась Unix-подобной, но самим Unix она не была.

DEC VAX Micro PDP-11. Источник)

DEC VAX Micro PDP-11. Источник)

Первые версии Coherent OS писались под 16-разрядные мини-ЭВМ PDP-11 знаменитой Digital Equipment Corporation (DEC). Но впоследствии ее портировали на IBM PC-совместимые компьютеры с архитектурой x86 и вычислительные системы на базе процессоров Motorola 68k и Zilog Z8k. Ее сразу же поставляли OEM-производителям «железа» по весьма скромной цене в 500 $.

К тому же в средствах массовой информации началась достаточно агрессивная рекламная кампания, где конечным пользователям предлагалось купить операционную систему всего лишь за 99,95 $:

Рекламная вырезка из журналов тех лет. Источник

Рекламная вырезка из журналов тех лет. Источник

За эту цену покупатели получали почти тот же самый набор возможностей, что и у оригинального AT&T Unix. Система была совместима практически со всеми написанными под нее приложениями. Дистрибутив Coherent OS версии 3 для IBM PC-совместимых компьютеров (286/386) поставлялся всего на четырех дискетах, требовал 10 мегабайт свободного дискового пространства и 640 Кб оперативной памяти. Ядро ОС так и вовсе занимало 64 Кб.

Получается, что такой «Unix» отлично запускался и работал на любом ПК, который справлялся с MS-DOS. Но вместе с этим имел и множество преимуществ. Во-первых, ядро поддерживало многозадачность, позволяя одновременно запускать несколько приложений. Во-вторых, оно было многопользовательским, а это позволяло работать за одним компьютером разным юзерам, каждый из которых получал свою порцию ресурсов.

В качестве командной оболочки поддерживались bash (Bourne Again SHell) и ksh (Korn shell). Последний, к слову, затем стал стандартом для QNX, AIX и OpenBSD. Система использовала собственный компилятор C, созданный там же в MWC, и включала в себя множество приложений, утилит и библиотек. Там можно было встретить и крошечный Emacs-like, текстовый редактор MicroEMACS, и утилиту для форматирования текста nroff, и удобный скриптовый язык awk.

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

Пользователи, которые приобрели лицензионную копию Coherent OS, должны были заполнить особую регистрационную карточку и отправить ее письмом в MWC. После этого они получали бесплатную техническую поддержку по email, факсу и телефону. В крайнем случае можно было написать запрос на бумаге и отправить обычной почтой. Чтобы сразу снизить количество обращений, был написан огромный мануал. Его и сейчас можно смело рекомендовать всем пользователям, желающим больше узнать о том, как устроен Unix.

От теории к практике

Да простят меня читатели, но я предпочитаю исследовать операционные системы не теоретическим, а эмпирическим путем. К тому же сделать это можно на любом компьютере, используя эмуляторы вроде PCem или VirtualBox. Так что предлагаю попробовать развернуть Coherent OS и посмотреть, насколько сильно она отличается от привычных нам современных Unix-like-систем. Ну как предлагаю, я это уже сделал — и сейчас вам покажу. В эксперименте мне очень помогла вот эта информация.

Для установки я возьму образы дискет и сконфигурирую VirtualBox с такими параметрами:

  • Тип — Other

  • Версия — Other/Unknown

  • Оперативная память — 16 Мб

  • Процессор — 1

  • Жесткий диск — 512 Мб

  • Тип контроллера — IDE

  • Модель — PIX3

  • Видеопамять — 1 Мб

Во многих мануалах также рекомендуется пробросить COM-порт, но делать я этого не буду: пока что мне для взаимодействия достаточно окна ОС. Плюс актуальная на момент написания этой статьи версия Oracle VirtualBox упрямо отказывается стартовать с проброшенным портом COM1 до \.pipeCOM1. Отключаю практически все дополнительные фичи вроде поддержки USB или звуковой карты, после чего стартую с образа disk1-4.2.14-y2k.

Да-да, установщик ОС был подвержен той самой пресловутой Проблеме 2000 года, так что энтузиасты пересобрали первый загрузочный образ, чтобы система смогла установиться. В противном случае пришлось бы еще и со временем шаманить, отправляя инсталлятор в прошлое.

Coherent OS: забытый клон Unix v7 - 5

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

Ввожу цифры 532319371.

Это официально опубликованный ключ, закон мы не нарушаем — говорю на всякий случай. Исходники Coherent OS открыты с 2015 года, так что любой интересующийся темой может запросто их скачать и использовать:

Coherent OS: забытый клон Unix v7 - 6

Дальше система сама распознает наличие жесткого диска и его параметров. Единственным хитрым действием будет разметка. Нужно добиться приблизительно такой картины:

Coherent OS: забытый клон Unix v7 - 7

Партиции я распределил так:

  • /dev/at0a — корневой каталог /root

  • /dev/at0b — домашний каталог /home

  • /dev/at0c — примонтирован в роли /data

  • /dev/at0d — не задействован

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

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

Coherent OS: забытый клон Unix v7 - 8

После ввода логина и пароля выводится сообщение дня (Message of the Day). Так, ОС будет рассказывать, какие знаменитые личности родились или умерли в этот же день, а еще — про разные праздники:

Coherent OS: забытый клон Unix v7 - 9

Базовые команды Unix тут работают без проблем — например, вывод листинга текущей директории:

Coherent OS: забытый клон Unix v7 - 10

Давайте напишем небольшую первую программу на языке C. В качестве редактора воспользуемся MicroEMACS:

root: emacs hello.c

Coherent OS: забытый клон Unix v7 - 11

Сочетаниями клавиш Ctrl+X, Ctrl + S и Ctrl + C сохраняем наш код и выходим. Теперь нужно его скомпилировать:

root: cc hello.c

И сделать полученный файл hello исполняемым:

root: chmod +x hello

Запускаем эту элементарную программу:

root: ./hello

Coherent OS: забытый клон Unix v7 - 12

Вот такой интересный способ поприветствовать читателей на Хабре.

Вместо итога

Почему Coherent OS при всех своих очевидных плюсах не дожил до наших дней? Причин тому несколько. Первой и главной стало появление Linux в качестве бесплатной операционной системы с открытым исходным кодом. Вокруг нее сразу же появилось большое комьюнити разработчиков — их привлекла идея, что каждый может внести свой посильный вклад в развитие ОС.

MWC в те годы — маленькая софтверная компания, у которой не было ресурсов, чтобы конкурировать с более крупными проектами. Это усугублялось тем, что аппаратное обеспечение эволюционировало стремительными темпами, за которыми небольшое количество разработчиков просто не успевало.

Нежелание открыть исходный код системы с самого начала сильно ограничивало возможности дальнейшего развития. Если бы Coherent OS в свое время сделала ставку на Open source, то еще неизвестно, к чему бы это привело. Последняя выпущенная версия 4.2.14 вышла в 1994 году, а уже в следующем Mark Williams Company прекратила свое существование.

В сентябре 2007 года истек один из любопытных патентов компании номер US4956809A с названием Method for canonical ordering of binary data for portable operating systems. А спустя еще восемь лет исходный код ОС был опубликован под лицензией BSD-3-Clause. Вот так Open source в итоге победил. А Coherent OS теперь выполняет роль музейного экспоната, периодически собирая интересные комментарии на Reddit и вызывая неподдельное чувство ностальгии у тех, кто застал период ее популярности.

А вы когда-нибудь слышали об этой операционной системе? Жду вас в комментариях.

Автор: kliment_01

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js