Plan 9 from Bell Labs.

GrAndSE

Тёмный
Модератор
Ответ: Plan 9 from Bell Labs.

Последниее (наконецто):
Обсуждение
Plan 9 имеет относительно традиционное ядро; новизна системы заключается в компонентах вне ядра и в том, как они взаимодействуют. Наилучшим примером этого является протокол 9Р, который централизует наименование, доступ и аутентификацию. 9Р действительно является сердцем системы: можно сказать, что ядром Plan 9 является в первую очередь мультиплексор 9Р.

В Plan 9 основное внимание уделено файлам; предложенный механизм именования является основным фактором ее выразительности. В частности, при распределенных вычислениях принятый для наименования способ оказывает глубокое влияние на систему. Комбинация локального пространства имен и глобальных соглашений о взаимосвязи сетевых ресурсов позволяет избежать трудностей поддержания глобального однородного пространства имен, тогда как наименование всего как файлов делает понимание системы легкой даже для новичков. Рассмотрим файловую систему дампов, которая тривиальна в использовании для каждого, кто знаком с иерархической файловой системой. На более глубоком уровне, построение всех ресурсов над единым однородным интерфейсом делает интероперабельность легкой. Как только ресурс экспортирует интерфейс 9Р, он может прозрачным образом сочетаться с любой другой частью системы для построения необычных приложений; детали при этом остаются скрытыми. Это может звучать подобно объектно-ориентированному подходу, но на самом деле кое в чем от него отличается. Во-первых, 9Р определяет фиксированный набор «методов»; он не является расширяемым протоколом. Более важно то, что файлы хорошо определены и понятны и поступают предварительно скомпонованными со знакомыми методами доступа, защиты, наименования и обращения в сети. Объекты, несмотря на их общность, не поступают с этими определенными атрибутами. Редуцируя «объект» в «файл», Plan 9 без дополнительных усилий получает определенную технологию.

Тем не менее есть опасность развить идею вычислений, основанных на файлах, слишком далеко. Преобразование каждого ресурса в системе в файловую систему является в каком-то смысле метафорой, а метафоры могут приводить к конфузам. Хорошим примером ограничений является /proc, который только внешне выглядит как процесс, но не представляет его. Для исполнения процессов необходимы все еще обычные вызовы fork и exec, а не чего-то, подобное

cp /bin/date /proc/clone/mem

Проблема с такими примерами в том, что для них нужно, чтобы сервер работал не под их управлением. Способность придавать значение командам, подобным указанным, не подразумевает, что это значение естественно выпадет из структуры ответов на запросы 9Р, которые она генерирует. Так, например, Plan 9 не помещает сетевые имена компьютеров в пространство имен файлов. Сетевые интерфейсы обеспечивают совершенно другую модель наименования, поскольку использование команд open, read и write над такими файлами не предоставляет подходящего места для кодирования всех деталей установки вызова для произвольной сети. Это не значит, что сетевой интерфейс не может быть файловоподобным, просто он должен иметь более четко определенную структуру.

Plan 9 имеет только один «официальный» механизм RPC, интегрированный с 9Р. По сравнению с системами с более общим RPC, такой подход имеет недостатки: полный вызов RPC должен быть реализован как write, за которым следует read, то есть требует вдвое больше команд; и некоторые специфичные формы RPC могут быть громоздкими. Например, реализация /dev/bitblt, которая имеет специальный RPC-подобный уровень, встроенный над 9Р, не может совместно использовать ни один из кодов для выстраивания сообщений 9Р и требует наличия сервера для сохранения состояния после некоторых вызовов write для возврата информации последующему вызову клиента read. С другой стороны, устройству Plan 9 присущи простота и общность, и (с некоторыми предосторожностями) ему не требуются компиляторы заглушек или какая-либо поддержка на языковом уровне. Громоздкость, подобная /dev/bitblt, на практике встречается редко и никогда не является ограничением. Более того, /dev/bitblt сама является примером, когда избыточность несущественна, т.к. основная масса вызовов устройств включает write без последующей read. Наконец, возможно наиболее важной является легкость написания сервера 9Р. Код, реализующий протокол, занимает всего 500 строк и обычно адаптируется из существующего сервера, а не пишется заново.

Что бы мы сделали по-другому в следующий раз? Некоторые элементы реализации нас не удовлетворили. Использование потоков для введения сетевых интерфейсов в ядре допускает, чтобы протоколы были связаны динамически, например для привязки одного и того же драйвера TTY к соединениям с TCP, URP и IL, но в Plan 9 такая способность к перестройке конфигурации не используется. (Она эксплуатировалась, однако, в том самом варианте ОС Unix, для которого и были изобретены потоки.) Замена потоков статичными запросами ввода/вывода упрощает код и делает его быстрее.

Хотя основное ядро Plan 9 переносимо на многие машины, файловый сервер реализуется отдельно. Это вызвано несколькими причинами: драйверами, которые должны быть написаны дважды, ошибками, которые тоже должны быть выявлены дважды, и худшей переносимостью кода файловой системы. Решение просто: для реализации файловой службы ядро файлового сервера следует поддерживать как вариант обычной операционной системы, без каких-либо процессов пользователей и специальных скомпилированных внутри процессов ядра.

Хотя Plan 9 поддерживает отдельное пространство имен для каждого процесса, она не имеет никакого механизма для передачи описания пространства имен процесса другому процессу, кроме прямого наследования.

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

Одна из причин успеха Plan 9 заключается в том, что она использовалась в каждодневной работе, а не только в качестве инструмента исследований. Активное использование вынуждало разрешать проблемы по мере их возникновения и адаптировать систему к решению наших задач. Благодаря этому процессу, Plan 9 стала удобной, продуктивной программной средой, а также средством для дальнейших системных исследований.

Литература:
[1] American National Standards for Information Systems - Programming Language С, American National Standards lnstitute, lnc., New York, 1990.
[2] АТ&T Bell Laboratories, UNIX Time-Sharing System Programmer's Manual, Research Version, English Edition, Volume 1, Murray Hill, NX, 1985.
[3] TomDuff, Rc - А Shell for Plan 9 and UNIX systems, Proc. of the Summer 1990 UKUUG Ccmf., London,July, 1990, рр.21-33.
[4] IEEE, Information Technology - Portable Operating System Interface (POSIX) Part 1: System Application Program Interface (API) [С Language], New York, 1990.
[5] T.J. Killian, Processes as Files, USENlX, Summer 1984 Conf. Proc., June 1984, Salt Lake City, UT.
[6] В. Clifford Neuman, The Prospero File System, USENIX File Systems Workshop Proc., Ann Arbor, 1992, рр.13-28.
[7] John Ousterhout, Andrew Cherenson, Fred Douglis, Mike Nelson, and Brent Welch, The Sprite Network Operating Systems Operating System, IEEE Computer, 21(2), 23-38, Feb. 1988.
[8] Rob Pike, 8½, the Plan 9 Window System, USENIX Summer Conf. Proc., Nashville, June, 1991, рр. 257-265.
[9] Rob Pike, Dave Presotto, Ken Thompson, Howard Trickey, and Phil Winterbottom, The Use of Name Spaces in Plan 9, Ор. Sys. Rev., Vol. 27, No. 2, April 1993, рр. 72-76.
[10] Rob Pike, How to use thePlan 9 C Compiler, Plan 9 Programmer's Manual, Volume 2, АТ&Т Bell Laboratories, Murray Hill, N, 1995.
[11] Herman Chung-Hwa Rao, The Jade File System, (Ph D. Dissertation), Dept. of Сомр. Sci, University of Arizona, TR 91-18.
[12] Robert W. Scheifler and Jim Gettys, The Х Window System, АСМ Trans. on Graph, 5(2), рр. 79-109, 1986.
[13] Howard Trikey, АРЕ - The ANSI/POSIX Environment, Plan 9 Programmer's Manual, Volume 2, АТ&Т Bell Laboratories, Murray Hill, NJ, 1991.
[14] Brent Welch, А Comparison of Three Distributed File System Architectures Vnode, Sprite, and Plan 9, Computing Systems, 7(2), рр. 175-199, Spring, 1994.

Copyright © 2001 Lucent Technologies Inc. All rights reserved.
От себя хочу добавить, что для некоего "представления", достаточно почитать самое начало сей "статейки" (тянущей больше на очеь-очень многое), но вот полное прочтение не даёт полного понимания, что и к чему. Но как мне кажется даёт возможность прочитав иструкции по инсталяции, подготовившись к работе путём прочтения пары руководств, смело ставить систему... Так сказать, с договором Вы ознакомлены. Кстати, авторы сами не ознакомившись с этим всем не рекомендуют браться за работу.
П.С.: прошу простить админов за столь бесстыжее загаживание цитированием статьи.
 
Насколько я знаю, Plan давненько уже не обновлялся. А выложенная статья явно застарела. Unix явно не является застарелой ОС, как описывается в статье. И развивается оч. быстрыми темпами.
 

GrAndSE

Тёмный
Модератор
Ответ: Plan 9 from Bell Labs.

GmPF сказав(ла):
Насколько я знаю, Plan давненько уже не обновлялся. А выложенная статья явно застарела. Unix явно не является застарелой ОС, как описывается в статье. И развивается оч. быстрыми темпами.
Что ты подразумеваешь под развитием?
КАкие нибудь новые концептуальные идеи? Изменение внутренних команд системы? Или очередная сборка ядра и подборка программ? Вот в чем вопрос то и состоит. Сколько лет Юникс, а всё осталось в принцыпе таким же. Если не согласны, то напишите парочку концептуальных изменений...
 
Ответ: Plan 9 from Bell Labs.

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

Насчет новых идей: они обычно появляются в ранние моменты написания новой ОС, а в течении своей последующей эволюции ОС не перетерпевает революционных изменений, а лишь различные улучшения, исправления багов, добавления новых возможностей, и, что немаловажно, расширение списка поддерживаемых аппаратных средств путем написания под данную ОС драйверов, что позволяет ОС получить большее распространение и преимущество при всех остальных равных условиях. Кроме того, ОС типа *nix имеют очень много альтернативных возможностей: GUI, различные пакеты прикладных программ с одинаковой функциональностью, и т.д., и т.п. Это ПО разрабатывается параллельно развитию самой ОС, и, естественно, при создании дистрибутивов проводится обновление этого ПО до какой-то, как правило, последней стабильной версии, учитывая зависимости пакетов. Я считаю, что это закономерный и логичный путь развития ОС. Хотя, *nix системы, на мой взгляд, стали не намного дружественнее к пользователю, поскольку desktop-дистрибутивы не намного "отдалились" от аналогичных серверных вариантов. Были "обрезаны" только серверные "фичи", и добавлены пакеты, которые были бы полезны конечному пользователю.

Основные идеи Plan-а тоже появились на раннем этапе ее развития. Так же, как и многие основные идеи функционирования ОС *nix.

Насчет ОС, новые версии дистрибутива которой больше не создаются: я считаю, что такая ОС обречена на медленную смерть, поскольку ее баги уже никто не исправит, на новом "железе" она может просто не работать или работать неправильно, не сможет задействовать новых режимов работы аппаратных средств, в результате чего ее использование будет малоэффективно. Как пример: пускай некоторая ОС сможет задействовать только UDMA 33, поскольку на момент ее выпуска существовали только винчестеры, поддерживающие этот стандарт как самый новый. В составе ОС пускай есть ФТП-сервер, позволяющий объединять несколько машин с установленной данной ОС по сети, и представлять их корневые директории в виде единого дерева каталогов. Так вот. Пусть новые релизы ОС не выходили. Но вышли новые винчестеры, которые, кроме всего прочего, поддерживали новый стандарт UDMA 133. Но рассматриваемая ОС не могла использовать этот режим. Драйвера под нее тоже новые не вышли. Пусть существует 2-я ОС, которая поддерживает UDMA 133, но не имеет описанной возможности объединения нескольких машин. Зато она поддерживает массивы данных большого объема, и можно, как решение, прото раздельно использовать такие машины, каждая со своим ФТП-сервером. Причем производительность при этом будет значительно выше за счет использования более скоростных режимов, но интеграция меньше. И следует будет признать, что отсутствие описанной возможности на 2-ой ОС - это недостаток, по сравнению с 1-ой, только если при этом на 1-ой ОС не было "глюков" в использовании этого "продвинутого" протокола, и он действительно был защищен от ошибок, сам мог восстанавливаться после сбоев в работе кабельной системы, и т.п., т.е., обеспечивал высокую надежность. ИМХО, лучше по отдельности, но безглючно, чем все вместе, но при "любом дуновении ветра" - глюки, и вся эта файловая система "вылетает в трубу". Смысл этого примера: применение 1-ой ОС уже будет нецелесообразно, поскольку главное для файлового сервера - надежность и высокая скорость передачи данных. Вот, в принципе, все, что я имел в виду.
 
Останнє редагування:

GrAndSE

Тёмный
Модератор
Ответ: Plan 9 from Bell Labs.

Ну касательно Plan 9 - я не знаю от какого числа последний релиз, четвёртый который, но новые сборки (включающие в себи о поддержку нового оборудования, новый софт и т.д.), насколкьо мне известно продожают появлятся. Так что поддерживается довольно большой список оборудования.
КАсательно отсталости Unix - то, что можно счиать недостатками авторы Plan9, кстати и авторы самой Unix, а также C :), высказали в статье. И со многим нельзя не согласится. Например, сложность работы с графикой, добавлением драйверов устройств в систему.
Кстати, как можно заметить сама лаболатория-производитель сама сипользует данну систему. Plan9 развивается 20 лет. И как мне кажется 4 релиза за это время, это не показатель бездействия, а показатель неспешной, но продуманой работы над развитием системы. Честно сказать, я не улавливаю удовольствия обновлять операционку каждые пол года, что происходит в данный момент с *nix системами. Причем, не переходить тоже неудобно, репозитории перестают обновлятся и волею-неволею нужно меня ОС. Это же не Виндовз, что ставится час, а в два перезапуска ставятся все дрова и программы. Эи системы должны славится надёжностью, а не новыми релихзами в краткие сроки, с новым набором багов.
Касательно, Plan9 и инструментов под неё. Насколько я посмотрел, то при дсотаточно высоком уровне знания системы и навыков програмирования, написать, что либо новенькое не сложно, причем код получается компактным. При этом, насколько мне известно, многое может быть портировано из *nix, т.е. получаем довольно большой инструментарий.
Ваш пример, не является полностью корресктым, поскольку ОС всё таки обновляется. По-крайней мере, в списке поддерживаем устройств были устрйства 2006-ого года. :) Хотя вынужен признать, что с устройствами в Plan9 ест ьряд проблем, но опять же, если руки не кривые, то можно либо найти написанный кем-то драйвер, либо написать самому.
А касательно, Unix. Я на них не наезжаю. Я сам сейчас вот проверяю форму, записываю пару дисков, и буду ставить FreeBSD. А с зарплаты уже буду думать куда о Plan9 :) - нужен винт, потому-что рисковать информацией и системой уже натсроеной не хочу, а работа с новой ОС, даже при наличии информации предполагает эксперементирвоание, некоторые ошибки и т.д.
P.S.: Что Юниксы, что План9 - далеко не десктоп системы. План9 вообще для конечныфх пользователей ну никак не годится - графика то есть, но без консоли никуда, пока сам себе не напишешь; да и идеология запутана и непривычна для пользователей Виндовс; да и авторы не дали возможности привести системук виду подобному Виндовс :)
 
Ответ: Plan 9 from Bell Labs.

Насчет того, что Plan - это не десктоп-система, я в курсе. Desktop-система упоминалась в контексте *nix. Насчет списка поддерживаемого оборудования - я человек простой, смертный, и если автор поста имеет достаточную квалификацию, чтобы написать драйвер, скажем, для винчестера под SATA II, SCSI или поддержки массивов RAID, то куда уж мне тягаться с такими монстрами :) Для меня написание драйверов - это не дело, которое можно провернуть за день, два, или, скажем, месяц. Если драйвер не "игрушечный", то написать его самостоятельно для меня не представляется никакой возможности. Если автор такой "продвинутый" человек, то куда уж мне вступать в обсуждение :) Все равно "буду пасти задніх" ;)

P.S> Прежде, чем что-то пытаться изменить в новой ОС или сделать для нее, я бы посоветовал проверить ее на отсутствие "глюков" в ее базовых функциях. Т.е., потестить то, что выпустили "в свет" сами разработчики. И что они считают, что работает так, как надо. А затем уже думать, что бы такое изменить. Это мое ИМХО.
 

UFO.cz

Far away from home
Ответ: Plan 9 from Bell Labs.

GrAndSE смотрю, имеет серьезные намерения испытать в работе Plan9. Я ту самую статью перечитывал несколько раз. Попробовать хотелось. Но на тот момент не было возможности. Теперь нет времени...

Если у Вас будет положительный результат с установкой - с удовольствием почитаю личные впечатления от самой ОС =) И на скрины бы взглянул с охотой.

Со своей стороны могу помочь с закачкой любого релиза этой ОС и сопутствующим софтом. Если понадобится, конечно.
 
Ответ: Plan 9 from Bell Labs.

В свою очередь тоже дам ответ. Я пессимист в отношении Plan. Но это только мое мнение. Хорошо, когда человек решительно берется за какое-то дело. Помочь, к сожалению, не смогу. Но было бы интересно узнать о результатах, если таковые будут.

И пожелаю удачи.
 

GrAndSE

Тёмный
Модератор
Ответ: Plan 9 from Bell Labs.

Как выяснилось, список поддерживаемого оборудования очень важная вещь.
Мои впервые впечатления от свободного вечерка наедине с инсталятором.
Скажу сразу, что моё впечатление основывается на попытке инсталяции с CD.
1. Ничего страшного, запутанного в первых шагах инсталяции нет. Любой, поработавший с консолью напугаться не сможет, даже при большом желании. Ну вопросы по поводу как ставить систему (новый файловый сервер, или файловый сервер с дампом - ну поскольку Plan9 всё представляет как файловый сервер, то можно сказать, что всё просто замечательно :) ), о конфигурации системы (тип мышки, монитор и т.д.) Так что повторюсь ещё раз - пугаться нечему.
2. Разве, что когда начинает запускаться Rio :) Немного неожиданный поворот. Сама графическая система, каковой она показала себя в инсталяции оказалась во многом похожей на X Window. Тут враз начинаешь понимать, почему требуется трёхкнопочная мышь. Хотя для инсталяции она не является необходимой.
3. И вот тут то наступил уменя облом в который я упёрся и придумать с ходу ничего не смог: из накопителей определился только CD. Два самсунговских винта определятся не захотели, при всём моём желании. :(
4. Но как оказалось диск предоставляет поганять систему от пользователя glenda (нечто на подобие пользователя для обучаения системе, аналогов не встречал) с CD. Ответив на пару вопросов касательно конфигурации и система в "припрыжку несётся"(ну требования у неё весьма скромны - что-то типа 32 Мгб памяти, и 300 Мгб на жёстком диске, который у меня так и не определился, а с учётом приятных мелочей это место может разростись до 1Ггб - современным рамкам это уже звучиит даже смешно).
5. От нескольких минуток под сим режимом получил информацию о том, что синтаксис командного интерпретатора rc многое перенял у Unix систем. КАк и гвоорили разработчики, часть команд унаследована оттуда. По крайней мере, побегать по файловой системе пришедшему из *nix систем пользователю проблемм не состовит.
6. Касательно "режима-обучения", настоящей обучающей системой это нзвать язык не поворачивается. Приятно что сразу дают первоначальные сведения о том, как работать мышкой, как этой самой мышкой взаимодействовать с текстом. Ну правда с этим можно разобраться даже без этого методом "научного клика всеми тремя кнопками по очереди в разных местах". Ну от работы с мышью впечатления весьма приятные - гораздо удобнее в чем обыкновенном X. А вот до остальных справочных материалов и подсказок руки не дошли.
Ну вот буду зарываться в инет и мануалы в попытке найти решение возникшей проблеммы, а тем времен гонять систему под glenda'ой. Ну а также высказываться по поводу системы.
P.S.: скрины по понятным причинам предоставить не могу :)
 
Зверху