Pull to refresh
363
1.9
Alex Efros @powerman

Software Architect, Team Lead, Lead Go Developer

Send message
К сожалению, по Inferno очень мало информации, даже на английском. Так что приходится всё самому писать. Надеюсь, все понимают что это не официальная документация и что я наверняка где-то что-то недопонял, что-то некорректно описал, etc. Воспринимайте эти статьи просто как наблюдения новичка, ковыряющего несколько месяцев систему.

Естественно, если кто-то будет сообщать о неточностях - я буду только рад их обсудить и поправить статьи!
Значительно больше. Если не ошибаюсь, Inferno появилась в 1995 году.
Возможно, я не прав, но на мой взгляд основных отличий между Plan9 и Inferno два:

  1. Plan9 система таки "игрушечная", в реальных проектах никто его использовать не будет, увы. Inferno же можно использовать просто как удобную VM, "нося с собой" - в смысле, включая несколько файлов Inferno в свой проект (который будет запускаться как бы под виндой/линухом) и даже не обязательно ставя заказчика в известность что часть проекта написана под OS Inferno (если это допустимо, конечно, по договору) - ибо для него в использовании этого проекта никакой разницы заметно не будет.
  2. У Plan9 больше коммьюнити.

    Из этих соображений я бы скорее агитировал наоборот - лучше уж вы мигрируйте с теоретической OS Plan9 в практическую OS Inferno. :)
:D Скачайте, запустите и увидите.
Лично для меня ключевое отличие в том, что сложность Inferno как системы значительно меньше сложности Java. И это при том, что возможностей у Inferno больше.

Есть два разных подхода - когда нужна фича можно написать кучу сложного кода, а можно немного изменить архитектуру системы и получить эту фичу (и несколько дополнительных как бонус) за счёт элегантной архитектуры, а не усложнения кода.

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

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

Все ссылки на доки я уже указывал - вот практически вся известная мне документация:
В Inferno на C написано ядро, драйвера и виртуальная машина Dis. Всё остальное написано в байт-коде, включая sh, wm (аналог X-Window) и компилятор Limbo.

Кстати, у компилятора есть две версии, одна на C, а другая на самом Limbo т.е. в байт-коде. C-версию можно запускать как обычное линуховое/виндовое приложение без Inferno, а Limbo-версией можно пользоваться внутри Inferno.
Я с аналогичным отношением провёл несколько лет. А потом с удивлением обнаружил, что проблема не в Inferno, а во мне - я просто не понимал как им нужно пользоваться. Как только у меня в голове все стало на свои места, сразу выяснилось что с Inferno всё в порядке, проект живёт и активно развивается - просто не в том направлении, в котором я раньше ожидал - именно поэтому и создавалось впечатление что ничего не происходит.

P.S. А момент я не забыл. Я его отложил - потому что такие вещи будут понятны только когда базовое представление о системе уже есть. И таких вкусных моментов там много.
Честно говоря, даже немного теряюсь. :) Проще описать что у них общего — собственно, кроме VM и своего языка программирования большие ничего общего нет, наверное.

Я провёл параллель между Inferno/Limbo и Java только для того, чтобы показать что Inferno можно использовать не только для распределённых вычислений, grid и встроенных устройств, но и для программирования обычных приложений.

Впрочем, я попробую:
  • Inferno это всё таки OS. Внутри Java VM вам врядли удастся зайти в коммандную строку (удалённо, по сети) и посмотреть какие выполняются процессы, прибить пару нитей… :)
  • Благодаря каналам (см. в хабратопике про CSP) в Limbo синхронизация и передача данных между нитями очень сильно упростила написание многопоточных приложений по сравнению с C или Java.
  • Среда. В Inferno есть такие штуки как Styx, которые очень упрощают жизнь. Впрочем существует реализация Styx для Java: JStyx.
  • Inferno обычно работает как сетевой сервис, который расшаривает ресурсы этой машины по сети.
  • … в общем, перечислять можно бесконечно. Это совершенно разные системы.
Судя по оценке -2 балла и понижению кармы - три хабратопика в день по Inferno это слишком много. :) К сожалению, минусующие не отметились в комментариях, так что возможно я их не так понял и дело не в этом.

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

Дальнейшая информация будет менее общая, поэтому постить я её буду не в Операционные системы а в OS Inferno.
Насколько я понимаю, у них в клиентах в основном компании, у которых используются достаточно крупные кластера а так же разные университеты.

Кстати, если есть сомнения в востребованности продукта вот список стран куда была продана OS Inferno.
Обязательно. Но боюсь, за сегодня я всё не успею. Надеюсь на ваше терпение. :)
Если очень коротко - предоставит гомогенную среду на существующих linux/windows/macosx/bsd серверах (а-ля java). Причём эта среда будет намного элегантнее, комфортнее и проще java. Плюс кучку дополнительных фич специфичных для Inferno (напр. для распределённых вычислений). А это означает большой класс задач для которых Inferno становится "инструментом N1".
Да, насчёт утилит я уже согласен. А колесо прекрасно работает пока не запускается ACME, и не возникает необходимость использовать "аккорды" кнопок 1+2, 2+3 - ибо нажимать колесо одновременно с обычной кнопкой очень не удобно.
Нее, господа, всё гораздо интереснее! :) Я просто информацию начал публиковать в хронологическом порядке, отражающую моё видение ситуации на тот момент.

Обычно все обзорные статьи по Inferno описывают всякие странные штуки типа namespaces, не объясняя зачем всё это нужно и как это применить в реальных условиях. А у меня взгляд чисто прагматический - как Inferno может облегчить мою текущую работу. Чем Inferno может быть мне полезна, на реальных коммерческих проектах?

В общем, надеюсь что следующие мои хабратопики снимут вопрос есть ли потребность в этой системе и как быть с уже заполненным рынком ОС.
Как только мне карму подняли я создал коллективный блог OS Inferno, и попытался из личного блога переместить этот хабратопик (и следующий за ним) в блог "OS Inferno". Не вышло - его не было в списке блогов, в которые я могу публиковать. Я очень удивился, проверил что я числюсь в пользователях созданного мной блога, на всякий случай поднял ему карму, :) перечитал хелп по хабру... должно вроде работать, но не работает.

В общем, я решил перебросить эти топики в блог "Операционные системы".

А через минут 15 после этого у меня вдруг появилась возможность писать в блог "OS Inferno". Судя по всему движок хабра такие вещи обрабатывает не сразу.

В связи с этим вопрос - я дальше планирую писать не только про OS Inferno, но и про связанные с ней вещи - язык Limbo, протокол Styx, etc. Это выходит за рамки тематики блога "Операционные системы". Как лучше поступить - переместить ещё раз, или оставить эти хабратопики здесь, а следующие писать в "OS Inferno"?
Я только что проверил - со страницы http://www.vitanuova.com/inferno/net_dow… файлы inferno.tgz и Nt.tgz качаются без проблем.

Ещё можете попробовать svn: http://code.google.com/p/inferno-os/sour…
Переход на IPv6 никак не состоится по одной простой причине - из тех, кто его должен внедрять он никому не нужен, и от внедрения ничего кроме дополнительной головной боли они не получат.

Ведь отказаться от IPv4 при добавлении поддержки IPv6 всё равно не получится, и в результате придётся поддерживать двойную адресацию, двойную настройку файрволов, etc.
12 ...
246

Information

Rating
1,355-th
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
From 10,000 $
Designing application architecture
Golang
Linux
Docker
Network security
Modular testing
Mentoring
Development of tech specifications
Software development
High-loaded systems