Как стать автором
Обновить

Комментарии 28

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

Кстати, у компилятора есть две версии, одна на C, а другая на самом Limbo т.е. в байт-коде. C-версию можно запускать как обычное линуховое/виндовое приложение без Inferno, а Limbo-версией можно пользоваться внутри Inferno.
Угу. Ну, как я и думал. Прикольно. Кстати, в Plan9 тоже попрали идею тредов - они там типа просто навороченный fork() сделали, но без тредов.
Возможно, я не прав, но на мой взгляд основных отличий между Plan9 и Inferno два:

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

    Из этих соображений я бы скорее агитировал наоборот - лучше уж вы мигрируйте с теоретической OS Plan9 в практическую OS Inferno. :)
Я не предлагаю вливаться в plan9 :) Я предлагаю считать plan9 сборным термином и вливаться в коммьюнити не дробя его ;)
Поддерживаю. Идеология у Plan9 и Inferno по сути - одна и та же, и есть смысл рассматривать их как две различных реализации общих идей с некоторыми особенностями. Plan9 была немного раньше, а Inferno сильнее отличается от "ортодоксальных" систем, поэтому термин plan9 сейчас в большинстве случаев используется как сборный.
В Plan9 больше практики. Она эффективнее, и она реально используется. Скорее уж Inferno - это некая теория насчёт того, как можно сделать нечто легковесное, переносимое и надёжное. Но они жертвуют производительностью, значительно. Сервер на Inferno я бы поднимать не стал.
Я в основном занимаюсь э... как это по-русски... в общем, advanced I/O: epoll, клиенты/сервера на тысячи и десятки тысяч одновременных соединений, выкачка вебсайтов в "промышленных" :) масштабах (несколько сотен url/sec), etc. Причём - не поверите - я всё это делаю на Perl. И производительности его вполне хватает - здесь bottleneck не скорость работы Perl, а скорость работы I/O в линухе.

Так вот, я первым делом потестировал скорость аналогичных операций в Inferno (в одном из предыдущих хабратопиков я даже ссылки на тесты приводил), и выяснилось что скорость работы Inferno и Perl сравнима - где-то немного опережает один, где-то другой.

А это говорит о том, что высокопроизводительные серверные приложения на Inferno, скорее всего, писать вполне возможно.

Ну и самое главное - IMHO мы сейчас вплотную подошли к пределу, когда производительность проще, эффективнее и выгоднее достигать через распараллеливание и кластеризацию, а не через выжимание лишней 1000 клиентов/сек через покупку мощного сервера и переписывание кода на ассемблере.
Ну. Согласен с высокой производительностью I/0, она действительно не зависит, обычно, от способа исполнения программы, но иногда данные обсчитывать приходится, и тут уже Perl не поможет, как ни распараллеливай. Потому что, чем больше параллельности, с той целью, чтобы каждый процесс работал с небольшим объёмом работ, тем больше времени будет растрачиваться на обмен данными между узлами, что тоже занимает время. Иногда весьма значительное. Поэтому язык с 'толстыми' указателями и постоянной проверкой доступа к памяти, для таких задачек может и не подойти. А задачки есть такие. У меня по крайней мере, поэтому plan9.
Вот сейчас ну никак не время для подобных споров. Комьюнити и так по пальцам пересчитать можно, а вы уже начинаете разжигание идеологических конфликтов.
Возможно (надеюсь), мне всего лишь показалось.
Тык, чтобы коммьюнити была стойкой, она должна быть честной с самой собой. И не говорить, что plan9 - больше теоретическая, а Inferno - больше практическая. Видите, какая у меня, части community, ибо неравнодушен к 9p, реакция. И никакой идеологии в моих словах нет, скорее уж желание восстановить справедливость. Но, признаю свою ошибку, я не корректно выразился. Inferno и Plan9 одинаковые по интерфейсу к функциональности, по философии их использования, но созданы с разными целями. Поэтому говорить, что одно теоретическое, а другое практическое у нас нет оснований, они просто разные.
Ok, я тоже не корректно выразился. Под терминами "теоретический" и "практический" я подразумевал что-то вроде простоты их внедрения.

Мне кажется, что начать использовать в реальных проектах Inferno значительно проще, чем Plan9. Безусловно, я имею в виду обычные проекты под Linux/Windows, которых основная масса.
Спасибо, чудесная статья.
Есть один вопрос, я его задавал в ru_plan9, существуют ли не-лимбо компиляторы для Inferno?
Есть мысль собрать реальный "недокоммерческий" кластер на inferno. Стоит проблема, код заказчика чаще всего написан на c/c++/java/erlang/scheme. Хрен с ней с джавой, да даже с ц++ тоже хрен, но вот Эрланг и схему очень, очень хочется.
Не знаю. Но я знаю, кто знает. :) Спросите в инферновском maillist-е, тамошний народ крайне компетентен в этих вопросах.
В комментариях появились любители плана :) Я предлагаю им, тоже статей написать, как и автору, которому респект за труды.
Спасибо за статью.

Помнится я в университете писал диплом по системе с похожей идеологией (модули с интерфейсами, нити, которые туда-сюда по ним переходят, безопасность на capability-модели ещё у меня была). Придумал даже как это всё сделать на интеловском железе. Потом правда диплом написал и до работающей ОС дело не дошло, даже прототип не дописал. Очень радует что люди сделали что-то похожее.
И как ни странно, они это сделали еще до вашего диплома =)
А я не понял, Inferno - это операционная система, или это прога которая запускается из-под Linux, или Windowz ??
Это одновременно и то, и другое. Inferno может запускаться как в hosted-режиме (под управлением какой-либо ОС), так и natively (как обычная ОС, на железе).
Ээээ... "аналога всего семейства сисколов POSIX exec*() в Inferno вообще нет" - т.е. с POSIX ось не то чтобы дружит? Жалко...
Plan9 и Inferno изначально задумывались как новаторские решения без груза обратной совместимости. POSIX бы просто сделал из них очередной клон существующих решений, пусть и немного более навороченный.
Раньше не видел, а может быть, просто не обращал внимания. Ну что ж, есть возможность - хорошо. В любом случае APE это только слой поверх основной системы. Кстати говоря, Plan9 в любом случае ближе к "обычным" ОС, хотя бы даже из-за использования C в качестве основного языка. Inferno в этом плане ушел дальше.
Не так уж и далеко, если честно. До Inferno была Ada, был Oberon, была Lisp Machine, с точно такими же идеями. Сейчас есть JavaOS и Erlang. Они не новички в этом.

Inferno и Plan9 далеко ушли в другом: в эффективной и в простой для использования распределённости и в очень простом для программиста и пользователя API. Это действительно уникально и даёт много интересных возможностей.

Совсем не важно, на каком языке система написана, важно, что она позволяет делать.
НЛО прилетело и опубликовало эту надпись здесь
И все же... вначале было яйца - Plan 9, а потом уже курица - Inferno =)

Однако, я немного отстал от темы и инферно каким-то образом пропустил. Мне не очень понятно, зачем ее вообще создали. Фраза из вики "Inferno was first made in 1995 by members of Bell Labs' Computer Science Research division to bring some principles of Plan 9 from Bell Labs over to other systems." наводит меня на мысль, что inferno создали как некую виртуальную машину на принципах Plan'а, что бы внедрять свои наработки и в других системах, где запуск самой Plan в нативном режиме не возможен. Думается, что в дальнейшем, когда стало ясно, что Plan 9 уже никогда не станет реально используемой операционной системой, было принято решение, что лучше продолжать работы в области виртуальной машины - т.е. Inferno, т. к. это намного перспективнее и имеет право на жизнь.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации