Почему я равнодушен к Linux
Сергей Кузнецов
🕛 09.01.2009, 16:22
С идеями UNIX я (и мои друзья-коллеги) впервые познакомился по статье Дениса Ритчи и Кена Томпсона «The Unix Time-Sharing System», которая была опубликована в Communications of the ACM в 1974 г. Как ни странно, в СССР этот журнал перепечатывался, мы на него подписывались, и больше всего информации о новшествах в области программирования получали именно из CACM, благо, что тогда журнал был очень хорошим.В 1974 г. мне было 25 лет. К этому времени мы с моим одногруппником и тогдашним другом Сашей Бяковым закончили свою первую работу в ИТМиВТ по разработке интерпретатора периферийной машины нового вычислительного комплекса АС-6, занимались разработкой гораздо более сложного интерпретатора центрального процессора и одновременно были привлечены к проектированию новой операционной системы ЦП АС-6. Руководителем этой работы был Виктор Иванников, который до этого занимался проектированием и разработкой операционной системы НД-70 для БЭСМ-6 и в 1971 г. защитил на эту тему кандидатскую диссертацию.
В то время мы находились под глубоким воздействием идей ОС Multics. В Новосибирске тогда переводилась на русский язык и публиковалась в виде препринтов масса статей, посвященных этому проекту, а мы по этим переводам учились. Кроме того, тогда только появилось направление языков с абстрактными типами данных, и нам очень хотелось применить эти идеи в области операционных систем. Это тема отдельного длинного разговора, но факт, что поначалу ОС UNIX воспринималась нами, как полное пренебрежение достигнутым уровнем технологии операционных систем, как популистская ОС, которая не принесет в область операционных систем ничего нового.
После достаточно успешного завершения проекта АС-6 в 1980-е гг. мы занимались проектом новой операционной системы КЛОС (кластерная операционная система) и продолжали относиться к UNIX вполне свысока, хотя уже использовали эту систему на практике и даже эмулировали ее в среде КЛОС (это снова отдельная история). Но к концу 1980-х гг., когда появилась Советская ассоциация пользователей ОС UNIX, ставшая частью европейской ассоциации EurOpen, мне постепенно стало понятно, что ОС UNIX значит гораздо больше, что простая операционная система - это важный компонент подхода Открытых систем.
Да, для меня 1990-е гг. были временем Открытых систем, систем, основанных на открытых стандартах, обеспечивающих возможность создания мобильных и интероперабельных системных и прикладных программ. И ОС UNIX стала первой (и до сих пор единственной) открытой операционной системой, поскольку уже в 1980-е гг. для нее появились открытые и общедоступные стандарты (наличие которых, в частности, и позволило Линусу Торвальдсу заняться созданием собственного варианта этой ОС).
Мне опять же не хочется сейчас много распространяться по поводу Открытых систем. Замечу лишь, что поначалу (до середины 1990-х гг.) в плодотворности этого подхода многих приходилось убеждать, а с середины 1990-х он был принят на вооружение в подавляющем числе компаний, производивших программное обеспечение на платформе ОС UNIX. В настоящее же время про Открытые системы говорить, по всей видимости, уже не слишком разумно, поскольку (как мне кажется) этот подход стал повсеместным.
Так вот, мне кажется, что в Linux все-таки главное не то, что это операционная система с открытыми кодами, а то, что Linux - это операционная система, сделанная по стандартам UNIX. Для широкого класса пользователей Linux открытые коды ядра не значат ровным счетом ничего, а важно то, что разные варианты этой ОС, работающие на разных архитектурах, позволяют использовать одни и те же приложения. Равным образом, важно и то, что приложения, разработанные в среде Linux, почти наверняка можно будет использовать и в среде различных вариантов BSD, и в среде коммерческих вариантов UNIX. Другими словами, если ты не входишь в достаточно узкое сообщество разработчиков ядра Linux, то открытость кодов этой ОС для тебя не означает ровным счетом ничего. Я в это сообщество не вхожу и поэтому для меня Linux - это всего лишь один из нескольких существующих вариантов UNIX.
Если уж на то пошло, то для меня существенно ближе клоны UNIX, базирующиеся на ядре System V (AIX, HP-UX, Solaris и т.д.), и системы-наследницы UNIX BSD. Все-таки они первичны, они зарождались и развивались у меня на глазах. Известно и понятно происхождение их недостатков и достоинств. Это старые добрые операционные системы, отлаживавшиеся десятилетиями. На их фоне Linux (вместе с Линусом) - это дерзкий молокосос, завоевавший всемирную популярность благодаря не столько своим особым достоинствам, сколько эксцентричности способа разработки. Тем не менее, теперь уже абсолютно ясно, что Linux полноправно входит в когорту UNIX-подобных операционных систем, хотя злокозненные законники и не дают этой системе права называться UNIX.
Может показаться, что в связи со все более полным засильем на рынке аппаратных средств компании Intel идеи открытых систем и UNIX в том числе становятся менее существенными. Однако посмотрите, какие операционные системы в первую очередь появляются на любых экспериментальных вычислительных системах, основанных на новых процессорах? Все та же ОС UNIX (теперь все чаще Linux), поскольку ее проще всего перенести на новую аппаратную платформу. А после переноса UNIX уже и на этой новой платформе можно использовать разнообразные приложения, для которых важно всего лишь наличие среды UNIX.
Другими словами, убожество UNIX обернулось сильными сторонами этой ОС: она стандартна, понятна разработчикам приложений и пользователям, ее можно реализовать при желании заново, ее просто перенести на новую платформу.
А отрицательный эффект этой ОС тоже понятен - развитие технологии операционных систем в университетах и лабораториях компаний практически прекратилось. Печально и странно наблюдать ситуации, когда путем переноса Linux на абсолютно новую платформу пытаются избежать потребности в разработке новой операционной системы, хотя архитектура UNIX для этой платформы абсолютно не годится (я знаю конкретные примеры, но не хочу подробно распространяться по этому поводу).
Что не говори, но как UNIX не переделывай, все равно из него высовывается архитектура PDP-11, для которой эта ОС изначально делалась. А ведь мы ушли от PDP-11 очень далеко.
В свое время компания IBM делала совместимыми на уровне системы команд свои серии мейнфреймов 360 и 370, чтобы можно было использовать на всех моделях этих серий одни и те же операционные системы. В результате в свое время IBM почти упустила наступление клиент-серверных архитектур и с трудом впоследствии завоевала часть этого нового рынка.
Компания Digital Equipment Corporation (DEC) после сверхудачной серии 16-разрядных PDP-11 стала выпускать также удачную серию 32-разрядных VAX-11, в которых на уровне микропрограмм эмулировалась система команд PDP-11, а в ОС VMS для VAX воспроизводилась среда RSX-11 для PDP. В результате на VAX можно было выполнять все приложения, написанные для PDP. Но когда DEC решила перейти от микропрограммной архитектуры своих компьютеров к RISC-архитектуре и выпустила процессор Alpha, ее попытки обеспечить полноценное выполнение VMS на новой платформе за счет бинарной (!) компиляции привели, в конечном счете, к краху компании (хотя, возможно, я и ошибаюсь в истинных причинах этого краха).
Так и UNIX. Живет себе, плодит новых сторонников и закрывает дорогу новым операционным системам. Одна радость, что все-таки не дает существовать только операционным системам от Microsoft (о которых здесь я говорить вообще не хочу). Как бы в результате человечество вообще не разучилось делать операционные системы. Типун мне на язык…