`

Schneider Electric - Узнайте все про энергоэффективность ЦОД


СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Что для вас является метрикой простоя серверной инфраструктуры?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Unix — маленькая вселенная

+33
голоса

В рамках публикации архивных материалов предлагаем вашему вниманию статью из № 19 (188) «Компьютерного Обозрения» от 17 мая 1999 г. Одна из базовых и фундаментальных статей про Unix, из числа опубликованных в нашем издании.

Часть первая. История

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

Согласным с этими утверждениями могу настоятельно порекомендовать дальше не углубляться в чтение статьи, а немедленно отправиться на сайт www.research.microsoft.com/~dweise/unix-haters.html, где всего за $30 (с доставкой) вас снабдят настольной книгой всех Юникс-ненавистников — The Unix Haters Handbook...

Если же ваше любопытство все-таки сильнее ненависти, сэкономьте деньги — узнайте немного о легендарной, неоднократно «похороненной» средствами массовой информации и всегда возрождающейся из пепла ОС Unix (к слову, была даже такая реализация Unix — Fenix).

ТЕМНЫЕ ВРЕМЕНА UNIX — БЕЗ МИФОВ И ЛЕГЕНД

В мире компьютинга Unix — самый настоящий динозавр. Наверное, это единственная программная система, дожившая до наших дней с 1969 г. История создания Unix похожа на заунывную песню акына — со времен компьютеров, на которых вообще невозможно работать по сегодняшним меркам (а как, скажите, редактировать тексты на 16-битовом процессоре с 64 КВ ОЗУ?), сохранились только устные предания и эпос. Вероятно поэтому в книгах о Unix истории уделяется одна-две странички (с необязательно совпадающими фактами в разных книгах). Чтобы не вводить читателей в заблуждение еще больше, весь последующий исторический материал основан на «показаниях» людей, имеющих к созданию Unix непосредственное отношение.

В доисторическом 1968 г. исследовательские лаборатории компании Bell (иначе называемые Bell Labs) были заняты интенсивной разработкой операционной системы, которой прочили светлое будущее. Проект назывался Multics, кроме Bell Labs, в нем участвовали Массачусетский Технологический Институт (MIT) и корпорация General Electrics (GE).

Первая «нескладушка» в истории Unix связана именно с Multics; обычно Multics называют ошибкой и вообще считают этот проект абсолютно неудачным. Но с Multics, оказывается, все не так просто — несмотря на выход в апреле 1969 г. Bell Labs из проекта, работы над Multics продолжались в МIT, а первая версия этой ОС стала доступна заказчикам в октябре 1969 г. Больше того, в 1995 г. корпорация Ford еще использовала один компьютер под ОС Multics! Краткий экскурс в Multics позволяет лучше понять исторические предпосылки возникновения Unix.

Во-первых, Multics разрабатывалась на языке высокого уровня (sic!), даже можно сказать «сверхвысокого уровня». Назывался язык PL/1, и многие, знакомые с последними представителями поколения ЭВМ EC-семейства (IBM360/370), обязательно вспомнят этого монстра «незлым, тихим словом»...

Во-вторых, Multics трудно назвать плохой ОС, тем более для своего времени, — она основывалась на самых современных концепциях:

— виртуальной памяти со страничной организацией;

— динамическом связывании на этапе выполнения программы (иначе называется линковкой и позволяет сократить размер исполняемой программы за счет размещения часто используемых подпрограмм в отдельной разделяемой библиотеке);

— иерархической файловой системе, допускающей вложенные директории;

— оконной подсистеме взаимодействия с пользователем в алфавитно-цифровом режиме.

В-третьих, разработчики Multics предусматривали очень интересный вариант развития своей платформы за счет специализированной аппаратной поддержки основных особенностей ОС. Более того, были созданы и спецификации Multics-ориентированных компьютеров, в частности, в 80-е гг. компанией Honeywell (которая приобрела компьютерные подразделения GE в середине 70-х) предполагалось создание машин семейства Flower, построенных на основе программируемой логики и архитектурно соответствующих требованиям Multics.

Несмотря на все достоинства Multics, у нее были и существенные недостатки — большая сложность системы, высокая (естественно, по тем временам) ресурсоемкость и значительная цена. Основной машиной, на которой в 1968 1969 гг. работала Multics, была GE-645 (производства GE). 36-битовая архитектура, неплохой и на сегодняшний день процессор (регистр-аккумулятор, 8 индексных регистров), канальная подсистема ввода/вывода и производительность 435 КОР5 (тысяч операций в секунду) обходились в те времена в очень кругленькую сумму, совершенно непозволительную для универ ситетов и исследовательских центров. А ведь именно там раскручивался маховик компьютерного прогресса...

В 1969 г. в Bell Labs уже отлично понимали эти недостатки Multics, кроме того ~ данная ОС еще была непригодна для реального коммерческого использования. Радикально настроенная группа разработчиков в составе Д. Ричи (D. Ritchie), К. Томпсона (К. Thompson), М. МакИлроя (М. Mcllroy) и Д. Оссанны (J. Ossanna) начала поиски операционной системы, способной заменить Multics. В ходе непродолжительной борьбы с администрацией Bell Labs будущие основатели «поколения U» (от Unix, естественно) так и не смогли убедить руководство в необходимости выделения достаточно больших средств на приобретение дорогостоящего компьютера «среднего» класса и финансирование проекта новой ОС. В это же время облик будущего детища уже вырисовывался на бумаге Томпсон, Ричии Кэнадэй (R. Canaday) постепенно создавали абстрактную модель файловой системы. Основная работа по проектированию была выполнена Томпсоном, а одна из лучших концепций Unix — специальные файлы устройств (device files, о них — ниже), вероятнее всего, принадлежит Ричи.

«Бумагомарательством» этот этап становления Unix не ограничивается — Томпсон разрабатывает детальную программную модель новой файловой системы и использует компьютер под Multics для изучения показателей ее производительности. Оттачивая мастерство и проверяя некоторые идеи относительно новой ОС, Томпсон пишет транслятор с языка ас семблера для GE-645 и примитивное ядро ОС, способной (по воспоминаниям очевидцев) выводить на экран приглашение к работе. Но все это — только присказка.

Unix — маленькая вселенная

Сказка начинается с... компьютерной игры «SpaceTravel» («Космическое Путешествие»), которую Томпсон написал в том же 1969 г. Изначально написанная в Multics, игра была переписана на Fortran для ОС GECOS, с которой поставлялись компьютеры GE. Возмущение первых геймеров не имело предела -GECOS-версия была уродливой и «съедала» слишком много очень дорогого процессорного времени. И, возможно, благодаря этим самым безымянным геймерам, Томпсон обратил внимание на почти неиспользовавшуюся в вычислительном центре «полуигрушечную» машинку DEC PDP-7. С точки зрения игровых возможностей PDP-7 была идеальной ~ она обладала отличным дисплейным процессором. Томпсон и Ричи переписали «Космическое Путешествие» для PDP-7, работа велась с использованием кросс-ассемблера GECOS, позволявшего формировать перфоленты с кодом PDP-7 на машине GE-645. По ходу дела были разработаны необходимые и отсутствующие на PDP-7 библиотеки вычислений с плавающей точкой и формирования символов для вывода на экран, а также отладчик программ. Затем был написан ассемблер непосред ственно для PDP-7, и «игрушка» постепенно стала приобретать свойство самодостаточности.

Тренировки «на кошках» (извините, на «SpaceTravel») не прошли зря — Томпсон реализует для PDP ту самую, существовашую только на бумаге, файловую систему, затем — основы подсистемы управления процессами, и, наконец, ряд первых утилит (копирования, удаления и редактирования файлов) и первый командный интерпретатор.

Где-то в конце 1969 — начале 1970 гг. Б. Керниган придумывает новое имя для всего этого набора ПО — Unix. Первенец еще не был мультизадачным, дисковый ввод/вывод не мог осуществляться одновременно с вычислениями, реализация механизма управления процессами существенно отличалась от современной. Но главное в новой системе было заметно уже тогда — используемые абстракции ОС и их реализации настолько изящны и удобны, что, по воспоминаниям Ричи, модернизация подсистемы управления процессами до уровня, практически полностью соответствующего современному, заняла несколько дней. Основа основ Unix — системный вызов fork (порождение нового процесса) укладывался всего в 27 строк на ассемблере...

В начале 1970 г. Unix была уже работоспособной системой пусть примитивной по сегодняшним меркам, но располагавшей очень мощным инструментарием для программистов (куда более развитым, чем у имеющихся тогда ОС). Однако машина, на которой система могла работать (PDP-7), к тому моменту безоговорочно устарела, и Unix грозила печальная участь уйти вместе с ней в небытие. Корпорация DEC к этому времени выпустила новую модель — PDP-11, более производительную и совершенную. Команде Unix удалось убедить руководство Bell Labs выделить средства ($65000) на приобретение PDP-11 благодаря правильно сформулированному предложению Д. Оссанны. Вместо разработки операционной системы (что не соответствовало специфике Bell Labs) Оссанна предложил руководству проект системы подготовки и обработки текстов (сам Оссанна остался верен этой тематике до конца своих дней).

В мае 1970 г. PDP-11 поступила в распоряжение команды разработчиков. Модель была настолько новой, что до декабря 1970 г. для нее не существовало накопителей на магнитных дисках, поэтому первая версия ядра Unix для PDP-11 была написана с помощью кросс-ассемблера, выполняющегося на PDP-7. Когда в декабре 1970 г. для PDP-11 появился недостающий накопитель, создание первой версии Unix PDP-11 завершилось очень быстро — ведь изменения по сравнению с версией PDP-7 были минимальными.

Для того чтобы оценить возможности тогда современ нейшей PDP-11, следует вспомнить, что объем ОЗУ составлял 24 КВ, емкость диска — 512 КВ, максимальный размер файла ограничивался 64 КВ. Для подготовки текстов с PDP-7 был портирован формати-затор текстов roff (присутствующий в любой современной версии Unix!) — детище МакИлроя, идея же этого форматизатора и первая реализация в системе CTSS принадлежат Дж. Сальтцеру (J. Saltzer). Успехами команды Unix заинтересовалось патентное подразделение Bell Labs, в котором для обработки текстов использовалась коммерческая программная система, обладавшая рядом недостатков.

Во второй половине 1971 г. Unix была уже пригодна к использованию патентным бюро, и несколько сотрудников этого подразделения полностью перешли на работу в Unix. Разработчики же сосредоточили усилия на совершенствовании ОС...

Самыми важными событиями этого времени стали реализации концепций управления процессами и каналов (pipe, иногда называемых трубами), заимствованные из ОС DTSS (Darttmouth Time-Sharing System). Инициатором включения каналов в основные механизмы Unix был МакИлрой, он же написал и первую достаточно несложную их реализацию. Преимущества новой возможности не остались незамеченными, и в кратчайшие сроки основные системные утилиты были переписаны для поддержки работы с каналами. Не вдаваясь пока в подробности механизма каналов, можно констатировать один факт — Unix получила очень мощное средство взаимодействия выполняющихся программ...

ТАК UNICS ИЛИ UNIX?

Если забраться в «дебри истории», то первоначальное название ОС писалось как Unics. И даже было вполне понятной аббревиатурой, противопоставляющей новую систему ее предшественнице — Multics. Итак, Multics означает Multiplexed Information and Computing Service, a Unics — Uniplexed Information and Computing Service. История не сохранила причину трансформации Unics -> Unix, но, учитывая принятую в команде разработчиков систему взглядов и стремление к компактности, более краткая и созвучная замена «ics» на «ix» вполне объяснима.

Переход с PDP-7 на PDP-11, несмотря на относительную «безболезненность», заставил разработчиков серьезно задуматься о перпективах ОС, написанной на языке ассемблера конкретного компьютера. Выбор в то время был небольшой — существовал абсолютно забытый сегодня язык программирования TNG, реализация которого создана МакИлроем, был написанный на TNG компилятор с Fortran (автор — Ричи), и созревал «новый» язык программирования с кратким названием В -последователь также сегодня забытого BCPL. Основное влияние на выбор языка программирования оказывал Томпсон; он ненавидел языки с вычурным синтаксисом, заставляющие слишком много печатать на клавиатуре. Однако все разработчики уже понимали, что следующую версию ОС лучше писать даже на PL/1, чем на ассемблере... Минимализм Томпсона, подкрепленный опытом всей команды, привел к тому, что в 1971 г. Ричи приступает к проектированию нового языка программирования, которому суждено стать в будущем основным рабочим инструментом сотен тысяч программистов... К 1973 г. новый язык программирования «созрел» настолько, что стало возможным полное перекодирование всей ОС Unix на «не зависящем от платформы ассемблере» (именно так называют сегодня язык С его ярые противники). Темные времена машинно-зависимой Unix подошли к концу...

ДАВИД ИЛИ ГОЛИАФ — МОВИЛЬНОСТЬ ПРОТИВ ПРОИЗВОДИТЕЛЬНОСТИ

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

Во-первых, это было время дорогих вычислений — например, анонсированная в 1973 г. компанией Honeywell мультипроцессорная машина очень высокой (тогда) производительности (порядка 1 MIPS на процессор) в конфигурации с двумя процессорами, 768 КВ ОЗУ и дисковыми накопителями емкостью 1,6 GB стоила порядка 7 млн. долл. Естественно, разработчики операционных систем и системного ПО старались «выжать из железа» максимум возможной производительности; IBM OS/360 и 370 — лучшие тому примеры. Чудовищных размеров программные комплексы были написаны на ассемблере, т. е. результат работы продолжительностью в сотни тысяч человеко-лет заведомо обрекался на роль заложника неумолимого процесса устаревания аппаратных средств. С коммерческой же точки зрения здесь все объяснимо — покупатели компьютеров платили деньги за скорость, производители старались добиться максимальной скорости (чтобы, естественно, получить максимальную прибыль) любой ценой... Расплата за коммерческие игры наступила достаточно быстро — буквально через 15 лет большинство устаревших мэйнфреймов отправились в утиль, утащив за собой бесценные разработки прикладных программных систем (возможность портирования ПО с мэйнфреймов на более «мелкие» архитектуры оказалась очень ограниченной, а астрономическая стоимость портирования и вовсе ее исключила, если вы со мной не согласны, то покажите хоть один реально работающий и мощный компилятор с PL/1 на машинах не-мэйнфрейм-класса).

Unix — маленькая вселенная

Во-вторых, потребность в вычислениях росла. Они были нужны в первую очередь военным — сказались и реваншистские настроения после закончившейся бесславно войны во Вьетнаме, и эскалация нового витка холодной войны с мощным противником — СССР. Вторым потребителем вычислений стали ученые и инженеры; «великое противостояние» США СССР американцы начали трансформировать в технологическое соревнование. В 1973 г. был организован IEEE (Институт Инженеров Электротехники и Электроники) — сегодняшний законодатель стандартов. В этом же году Reuter ввела в действие компьютерную службу Monitor, поставляющую информацию с международных валютных бирж, был опубликован документ RFC #454 (спецификации FTP — протокола передачи файлов), компьютерная сеть ARPAnet (проект Министерства обороны США) насчитывала 23 хоста ведущих университетов, исследовательских центров и корпораций.

Обобщая эти факты, можно прийти к выводу, что команда разработчиков Unix либо слишком рисковала, создавая невостребованную временем систему (очевидно, мобильная ОС ощутимо проигрывает в быстродействии машинно-зависимым реализациям), либо просто не преследовала никаких коммерческих интересов. Второе предположение наиболее точно согласуется с действительностью — никто из разработчиков Unix богатым не стал и по сей день.

Итак, процесс портирования Unix из архитектуры DEC PDP в архитектуру виртуальной машины С (простонародно переписывание) завершился к 1974 г. Исторически это была четвертая версия Unix, с которой начинается период коммерциализации, междуусобных войн и непрерывного совершенствования.

РОЖДЕННЫЙ В СССР

В отличие от западной модели развития и распространения Unix, в СССР «университетская схема» не сработала. Более того, ведущие производители ЭВМ также к становлению и распространению Unix практически не имеют отношения. В Unix были заинтересованы прежде всего ведущие отрасли промышленности — автомобильная, авиационная и «загадочного» среднего машиностроения (что на деле означает оборонную промышленность). Здесь была сконцентрирована потребность в наунно-ин-женерных вычислениях, в решении задач управления производством. Здесь требовались надежность вычисли тельных средств и ОС, гарантированная долговечность и преемственность информационных систем.

Приблизительно в 1983 г. AT&T Unix v.6 и фра1 менты BSD 3.2 «проникли» в СССР. В отличие от батальношпионских историй с ОС IBM360 и СУБД Adabas, все произошло куда более прозаично — Unix буквально «расползалась» в университетской среде США. где проходили стажировку многие аспиранты и молодые ученые из СССР...

В последующем «советская Unix» развивается «под крылышком» Минавтопрома СССР (причем именно в этой, казалось бы далекой от производства компьютеров отрасли, были сделаны, наверное, первые советские рабочие станции «Беста» на микропроцессорах Motorola 680×0). У нас тоже есть ставшие уже легендарными имена «почетных юниксоидов»: В. Бардин, А. Руднев, братья Антоновы, И. Мазепа. Появились и новые звезды, такие, как А. Чернов.

Академическая наука в постперестроечные времена наконец обратила внимание на Unix, в ведущих вузах начали читать курсы по Unix, вышли очень неплохие учебники (например, А. Робачевского «Операционная система Unix»).

СИСТЕМА UNIX СИЛЬНА РАЗДОРАМИ...

Первое «мобильное» ядро Unix было очень небольшим порядка 11 тыс. строк кода на С (слово «мобильное» не случайно приведено в кавычках: до настоящей мобильности Unix -еще почти 8 лет). Томпсон писал, что «ядро... это единственная подсистема Unix, которая не может быть расширена пользователем собственными разработками, поэтому ядро должно включать минимально необходимое количество аб стракций» (курсив автора статьи). Также, предвидя сформулированный значительно позже (точнее — в 1978 г.) закон Мура об удвоении соотношения производительность/цена микропроцессоров каждые полтора года, Томпсон еще в 1973 г. выделил одно из главных отличий Unix-идеологии: «простота вместо эффективности» (для большей достоверности привожу оригинал фразы; «...simplicity has been substituted for efficiency»). В 1974 г. Томпсон окончательно определяется с идеологией Unix: «ядро в Unix в большей степени является мультиплексором (т. е. переключателем) операций ввода/вывода, чем сложной операционной системой. И оно должно быть таким». Высказывания Томпсона не случайно помещены в начало именно этого раздела статьи — все явления в истории Unix с 1974 г. будут оцениваться по принципу соответствия изначальным концепциям данной ОС.

Итак, Unix 1974 г. была уже написана на языке высокого уровня, включала механизмы порождения новых процессов (системный вызов fork) и взаимодействия процессов (каналы, pipe), перенаправление ввода/вывода (в файл или на вход нового процесса) и ряд утилит общего назначения (форматизатор текстов roff, редактор ed и пр.). Однако платформа, на которой система разрабатывалась, не давала возможности реализовать виртуальную память (первые версии PDP-11 не оснащались устройствами управления памятью MMU — Memory Management Unit), динамическое (в ходе загрузки) связывание программ, в системе напрочь отсутствовали невостребованные в те времена сетевые возможности. Несмотря на все недостатки, Unix оказалась очень полезной в Bell Labs и даже получила официальный внутренний статус основной ОС для применения в телефонии (в частности — для управления работой электронных АТС). Простота и надежность системы, успешная ее эксплуатация в патентных подразделениях Bell гарантировали новой ОС и весьма перспективное коммерческое будущее. Но... тогда антимонопольное законодательство в США еще работало и было более чем строгим — корпорации AT&T (и Bell Labs, естественно) запрещалось законом заниматься бизнесом, не имеющим непосредственного отношения к телефонии и телеграфии, поэтому о серьезном коммерческом распространении Unix речь не шла.

Но уже успевшая «проникнуть» за пределы AT&T Unix начинала завоевывать заслуженную популярность — благодаря лестным отзывам, например, компании New York Telephone, в которой Нил Граундвотер (Neil Groundwater) осуществил одну из первых «сторонних» инсталляций Unix. На AT&T обрушился поток запросов на приобретение новой ОС.

Надо отдать должное руководству AT&T — они нашли самый лучший выход из сложившейся ситуации, распространение Unix началось в исходных текстах за номинальную стоимость носителя и печатной документации для университетских центров без обеспечения рекламы и поддержки. К примеру, в декабре 1974 г. факультетом вычислительной техники университета Нового Южного Уэльса (Австралия) была всего за $150 приобретена полная исследовательская версия Unix пятой редакции (v.5) с комплектом руководств — согласитесь, весьма доступная цена и на сегодняшний день.

К слову, о подобной модели распространения ПО забыли очень надолго — и вернулись только в прошлом (1998) году по отнюдь не альтруистским причинам. Реализация первой «freeware для студентов» вызвала настоящий взрыв — события, связанные с Unix, мелькают с реактивной скоростью: за два месяца до появления первой журнальной публикации о Unix (!) уже прошла встреча пользователей ОС (май 1974 г., около двух десятков человек из нескольких организаций), количество инсталляций растет ежедневно, простота и открытость системы, дополненные отсутствием поддержки со стороны AT&T, просто подталкивают разработчиков к реализации всевозможных усовершенствований. Исследовательский период продолжается до конца 1979 г., и к AT&T — основному игроку на Unix-поле — в этот период присоединяется Калифорнийский университет в Беркли (UCB).

Побывавший на презентации Unix в октябре 1973 г. (симпозиум ACM — Ассоциации Вычислительной Техники) профессор этого университета Р. Фабри (R. Fabry) настолько был поражен докладом Томпсона, что немедленно нашел средства на приобретение машины PDP-11/45 специально для установки Unix. С января 1974 г. Unix в Беркли заработала, а в 1975 г. к ставшим впоследствии легендарным именам прибавились еще два: недавние выпускники UCB Чак Хейли (Chuck Haley) и Билл Джой (Bill Joy), также попавшие под влияние харизмы Томпсона и Unix, буквально набросились на программирование в новой системе. Джой впоследствии прославился успешной победой над многообразием алфавитно-цифровых терминалов (termcap, написанный Джоем, практически полностью исключает необходимость внесения особенностей управления конкретными терминалами в ПО и тем самым увеличивает мобильность прикладных и системных программ) и неувядающим текстовым редактором vi, породившим массу клоновых реализаций и неисчислимое количество фанатичных приверженцев всех возрастов и поколений.

UCB-история Unix ~ одна из самых легендарных страниц Unix-эпоса, в ней больше полных сарказма, злых и зачастую неумных шуток, чем реальных исторических фактов. А вот факты говорят сами за себя ~ именно в Беркли Unix обрела виртуальную память с замещением страниц, мощную и значительно улучшенную по сравнению с AT&T Unix файловую систему, сетевую подсистему на основе TCP/IP-стека, безукоризненно соответствующий концепции Томпсона (см. начало раздела) механизм взаимодействия между процессами _ сокеты, усовершенствованную абстракцию сетевого соединения ~ порталы (обо всех специфических понятиях читайте в следующем номере «Компьютерного Обозрения»). Но самое главное, в UCB впервые в истории компьютинга успешно сработала представляемая сегодня «феноменом Linux» принципиально новая концепция создания ПО — так называемый «базар». Проектирование Unix в Беркли не подчинялось никаким корпоративным правилам (не в пример AT&T) и осуществлялось большим количеством энтузиастов. В отличие от схемы развития Linux, «берклеевский базар» обладал очень важным преимуществом — он базировался на единой научной школе, а значит, на единстве концепций, технологий и взглядов. Здесь следует учесть и очень серьезную академическую школу операционных систем UCB (например, проект Atlas в конце 60-х гг.) — за разработку Unix брались люди, прошедшие серьезный теоретический курс ОС (сам Кен Томпсон — воспитанник научной школы UCB). Это утверждение не голословно, достаточно проанализировать разительные отличия реализаций файловых систем — «одногодок» от AT&T и UCB. когда «штатная» файловая система Unix могла при интенсивной работе допускать потерю до 60% дискового пространства за счет фрагментации и позволяла использовать имена файлов с длиной не более 14 символов, берклеевский вариант под названием FFS практически исключал потребность в дефрагментации, сохраняя высокие показатели производительности при заполнении дискового пространства до 90%, а длина имен файлов составляла 255 символов.

Эффективность «базарного» подхода к проектированию открытого ПО можно было оценить уже в 1989 г. — именно тогда в UCB-версии Unix оставалось всего 5–10% исходного кода от AT&T. При этом качество берклеевских Unix’oe очень высоко и ничем не уступает корпоративным детищам семейств System III и V, что подтверждается как практикой использования Unix, так и фактом судебного процесса, возбужденного в 1992 г. AT&T против UCB и компании BSDI (коммерческий продолжатель ветки UCB Unix). Номинально в ходе разбирательства отстаивались права на интеллектуальную собственность AT&T, а на деле — оно было направлено на устранение серьезного конкурента.

Естественно, AT&T тоже не стояла на месте, но здесь разработки подкреплялись интенсивным промышленным использованием Unix. Bell создала одну из самых крупных глобальных информационных систем на основе Unix, от функционирования которой фактически зависела работа телефонной и телеграфной связи в масштабах США — свыше 1 тыс. мини-компьютеров под управлением Unix обеспечили не только высокие показатели надежности связи, но и позволили разработчикам на этапе проектирования избежать крайне неприятного явления ~ неоднородности системного программного обеспечения (гетерогенности). Накопленный в ходе эксплуатации опыт выявлял недостатки и стимулировал изменения в архитектурных решениях ОС, которые немедленно отражались в новых версиях. Революционными релизами исследовательских версий AT&T можно считать шестой (v.6) и седьмой (v.7), которые дали старт большинству реализаций ОС.

С седьмой версии начинается коммерческий расцвет Unix -множество ответвлений от релизов AT&T интенсивно порти-руются на современные, резко снижающиеся в цене платформы. Прирост количества инсталляций не поддается описанию в процентах — с 1983 по 1986 гг. число Unix-машин среднего класса выросло в 7,5 раза.

К «аппетитному» рынку Unix присматривались многие, например Microsoft, выпустившая в 1980 г. собственную версию Xenix 1, основанную на лицензированном коде AT&T v.6, затем — Xenix 2 совместно с тогда еще молодой Santa Cruz Operation. Xenix 2 базировалась на коде v.7 и была первой реализацией Unix для микропроцессоров Intel 8086.

Однако далеко не многим удалось выстоять в жесткой конку-рзчтной борьбе, и уж совсем «по пальцам» можно пересчитать те коммерческие компании, которые действительно внесли вклад в развитие Unix. Здесь сразу следует указать Sun, благодаря которой Unix приобрела сетевую файловую систему NFS, ставшую стандартом де-факто, много мощных внутренних меха низмов, например виртуальную файловую систему. Hewlett-Packard — второй несомненный лидер в Unix-мире, серьезно упрочивший позиции Unix в корпоративном мире. Без почившей в бозе DEC Unix также лишилась бы очень многих замечательных программных подсистем и систем программирования.

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

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

К сожалению, POSIX, концентрирующий в себе практически весь 30-летний опыт Unix, не является «указом» для разработчиков массовых ОС настольных компьютеров (опять же по очевидным коммерческим причинам). Это, с одной точки зрения, абсолютно не страшно (ну кто сказал, что все ОС должны быть Unix-совместимыми), но в то же время очень неприятно в реальной жизни как для программистов, так для сетевых и системных администраторов (гетерогенность — это крайне неудобная штука), и наконец — для пользователей. Последнее утверждение поясню — сложность и «тесная интеграция» ПО настольных ОС неизбежно приводит к такой ситуации: программистам очень трудно изучить систему, а следовательно, прикладные программы будут изобиловать ошибками и отличаться низкой надежностью. Спасением от этого явления считается объектно-ориентированная технология разработки ПО, но... в результате размеры программ увеличиваются экспоненциально, а количество ошибок в лучшем случае не уменьшается.

Завершить такой краткий экскурс в историю Unix хочется словами МакИлроя: «Unix — это экстракт лучшего в операционных системах, созданный исключительно в целях полезности. Fie для маркетинговых или рыночных целей. Fie для совместимости. Fie как способ утилизации аппаратных средств. Компьютер под управлением Unix полезен в том смысле, что он представляет собой программируемый компьютер, а не «платформу» для каких-либо «решений». И это свойство программируемости кумулятивно — действия программиста в принципе не отличаются от действий пользователя, и все, что может делать пользователь, может быть выполнено программой...».


Вы можете подписаться на наш Telegram-канал для получения наиболее интересной информации

+33
голоса

Напечатать Отправить другу

Читайте также

RIP UNIX :-/

 
 
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT