Возвращение в ад
АрхивКолонка ЗолотоваПочти десять лет назад в недрах Bell Labs создатели UNIX и С начали работу над очередным концептуальным проектом. Сегодня их детище - операционная система Inferno - насчитывает в своем генеалогическом древе четыре колена, поражая воображение совершенством и чистотой воплощения концепций.
На днях по специализирующимся на софтверной альтернативе сайтам пролетела незаметная новость: выпущена четвёртая версия операционной системы под названием Inferno. То там, то здесь упоминания о ней встречаются на протяжении вот уже восьми лет и в остальной компьютерной прессе (КТ писала про Inferno последний раз аж в 1998 году), но чем дальше, тем реже. Между тем, Inferno - совершенно уникальный, удивительный по своему устройству мир. Новичков он пугает своей адской символикой: все названия программ и механизмов здесь заимствованы из "Божественной комедии" Данте. Знакомство ближе открывает беспрецедентное постоянство и простоту: идут годы, в мире десктопов и серверов сменяют друг друга технологии, а в Inferno - одна и та же рабочая среда и по-прежнему один протокол для связи с внешним миром. И, поверьте, сделано это не от недостатка фантазии.
Строго говоря, Inferno - микроядерная операционная система для построения распределённых сетевых сервисов. Родилась она в знаменитой Bell Labs, входящей в состав компании Lucent Technologies, в середине девяностых годов прошлого века. В компьютерном мире вряд ли найдётся хоть одна разработка, сравнимая с Inferno по концептуальности, и это легко объясняется, когда узнаёшь о коллективе авторов, работавших над уникальной ОС: среди них немало тех, кто лично приложил руку к созданию ОС UNIX и языка С (в частности, легендарные Керниган и Ричи). При этом Inferno - несомненный результат эволюции: корни её уходят к оставшейся научным экспериментом Plan 9, созданной в той же Bell Labs, а Plan 9, в свою очередь, восходит к UNIX. Таким образом, справедливо утверждение, что Inferno - доведённая до идеала UNIX-система.
Впрочем, довольно общих слов. Представьте себе рабочую среду, которая одинакова, на какой бы платформе она ни запускалась. Одинакова не так, как одинакова Windows, а с математической точностью: она обеспечивает идентичные интерфейс пользователя, интерфейс программный, принципы исполнения программ и работу с внешними устройствами. Такова Inferno. Работать она может как непосредственно управляя "железом", так и в качестве надстройки над уже запущенной операционной системой: на сегодняшний день существуют версии Inferno для Linux, Windows и некоторых других ОС. В крайнем случае, запустить Inferno можно даже в качестве плагина для браузера Microsoft Internet Explorer: это никак не скажется на внешнем виде и работоспособности тех инструментов, что запускаются внутри этой уникальной ОС.
Основным языком программирования в Inferno служит Limbo, разработанный отцами С. По своему устройству и принципам он близок к C и Java, но лишён сложности и громоздкости своих прототипов (максимум внимания уделено сетевому взаимодействию и связям между отдельными процессами). Синтаксис очень напоминает С, но программы, как в Java, транслируются в платформонезависимый байт-код, который позже исполняется (компилируется в реальном времени в инструкции процессора и системные вызовы системы-хозяйки, если выполнение происходит, к примеру, под Linux) виртуальной машиной, встроенной в Inferno. Ядро Inferno крохотное, компиляция байт-кода быстра, поэтому и требования к аппаратному обеспечению сравнительно низкие: система способна работать на компьютере с мегабайтом оперативной памяти, предоставляя полноценную среду для разработки приложений, графическую оболочку и набор команд, во многом схожий с UNIX.
UNIX славится простотой "строительных блоков", но лишь в Inferno эта идея доведена до совершенства. Здесь все ресурсы (сети, устройства, файлы), как локальные, так и удалённые, предстают для прикладных программ в виде файлов, объединённых единой иерархической файловой системой. Взаимодействие со всеми без исключения ресурсами ведётся посредством единственного протокола: Styx способен работать поверх популярных TCP/IP, PPP и др., обеспечивая также надёжную защиту соединения от посторонних.
Абсолютная унификация системы необычайно упрощает обеспечение информационной безопасности: поскольку в Inferno есть один и только один способ общения с внешним миром, разработчики имеют возможность сконцентрировать своё внимание на одной точке, обеспечив надёжность защиты от несанкционированного проникновения, недостижимую для операционных систем общего назначения.
За восемь лет развития в Inferno появились и мощные компиляторы, и средства для работы с Веб, и игры, и прочая, и прочая - всё как у нормальной ОС. Но, к сожалению, продукт, которому в конце 90-ых гг. прочили большое будущее (предвидя едва ли не затмение Java), так и остаётся экспериментом в области высоких технологий. Возможная причина этого - неудачная для избранного момента выпуска первой версии маркетинговая политика. Inferno родилась год спустя после выхода Java и долгое время существовала как коммерческий продукт, за который требовали деньги. Вероятно, поэтому её успехи на рынке оказались достаточно скромны. В прошлом году, очевидно, поняв бесперспективность ситуации, разработчики сменили стратегию и опубликовали исходные тексты Inferno под свободной лицензией, близкой по положениям к знаменитой GNU/GPL. Сегодня попробовать и начать работать с Inferno может каждый желающий, скачав продукт с сайта британской компании Vita Nuova, которая занимается развитием и рыночным позиционированием системы в тесном контакте с Lucent. Вот только сможет ли теперь Inferno выйти за рамки удивительной компьютерной игрушки?