Изначально OS Inferno меня заинтересовала лет 5 назад, когда я где-то прочитал фразу "Новая ОС от авторов C и UNIX, результат 30-летних исследований!".
В процессе изучения этого вопроса выяснилось, что до Inferno они выпустили ещё одну ОС - Plan9. Я попытался его себе установить, но неудачно - моё железо он не поддерживал. У Plan9 вообще в плане поддержки более-менее современного железа очень плохо (по крайней мере - было плохо в те времена, как сейчас я не знаю).
Что касается самой Inferno, то первым впечатлением был полный восторг: она может работать как native (т.е. прямо на железе), так и hosted (т.е. под управлением другой ОС). Native Inferno я запустить не смог по той же причине (поддержка железа), но по большому счёту я даже не особо пытался - hosted вариант меня вполне устроил для изучения системы. А в hosted режиме Inferno может работать и под виндой, и под линухом, и под другими юниксами, и даже под Internet Explorer (с помощью специального плагина, внутри html-странички появляется окошко а-ля java или flash только с юникс-подобной командной строкой)!
Изучение внутренней архитектуры и документации восторг только усилило - такой элегантной системы я никогда не видел… изучение этой системы буквально открыло мне глаза на то, насколько всё-таки POSIX это уродливая и переусложнённая вещь.
Весит Inferno по нынешним временам копейки, работает не просто быстро, она летает (и это при том, что работа идёт в hosted режиме под, например, виндой, и используется не командная строка а графическая среда а-ля X-Window.
Но, постепенно, восторг начал сменяться недоумением: зачем всё это нужно, какая лично мне от этого может быть практическая польза? Ну, работает оно в окошке под IE - и что, я теперь CGIшки буду ваять под Inferno и для работы они будут требовать этот плагин и работать будут только в IE? Врядли это прокатит в нынешнем коммерческом программировании…
Да, архитектура у Inferno обалденная, но пользоваться им - ой, мама… sh тамошний не поддерживает автодополнение имён команд и путей к файлам… более того, он даже историю команд не поддерживает… графическая система использует исключительно Tk для графики, который хотя и довольно удобен в программировании но выглядит при этом весьма уродливо (кстати, любопытно почему для Tk в принципе нет шкурок?)… проигрыватели видео, графики, музыки - есть, но поддержка всяких кодеков и форматов не ахти… браузер есть, даже с поддержкой javascript и css, но ему до современных браузеров ещё расти и расти…
Есть даже IDE для разработки - ACME. Это текстовая оконная среда, ориентированная на работу с помощью полноценной трёх-кнопочной мыши. У меня мышь обычная (т.е. третья кнопка - это нажимающееся колесо), и полноценных трех-кнопочных мышей в продаже я не видел много лет. Я пытался неделю работать в ACME, но я эту среду так и не понял - мне дико не хватало родного Vim!
В общем, закончилось знакомство удалением Inferno "до лучших времён": когда в Inferno сделают нормальный sh, портируют Vim, Mplayer, etc.
Кстати, с портированием юниксового софта в Inferno всё не просто - дело в том, что во-первых Inferno несовместим с POSIX, а во-вторых в Inferno нет языка C. Вместо C там язык Limbo, работающий под управлением виртуальной машины (а-ля Java). В Limbo есть автоматический сборщик мусора и нет свободной работы с указателями в стиле C. Так что портировать Vim или Mplayer под Inferno будет очень и очень непросто.
Единственная польза, которую я для себя вынес из первого знакомства с Inferno было несколько очень удачных архитектурных идей, которые я в последующие годы использовал в своих проектах. Но помимо пользы был и вред - меня начало тошнить от POSIX.
Несколько месяцев назад я познакомился с Inferno второй раз, и на этот раз всё прошло гораздо более удачно. Даже не смотря на то, что никаких улучшений в плане интерфейса sh или доступности под Inferno Vim и Mplayer не произошло.