Jump to content

План 9 от Bell Labs

Это хорошая статья. Нажмите здесь для получения дополнительной информации.
(Перенаправлено с Гленды, кролика из Плана 9 )

План 9 от Bell Labs
Гленда, талисман Плана 9 в скафандре, нарисованный Рене Френч. [ 1 ] [ 2 ]
rio , пользовательский интерфейс Plan 9 по умолчанию от Bell Labs
Разработчик Фонд Plan 9, преемник Bell Labs
Написано в Диалект ANSI C
Рабочее состояние Текущий [ 3 ] [ 4 ]
Исходная модель Открытый исходный код
Первоначальный выпуск 1992 год ; 32 года назад ( 1992 ) (университеты) / 1995 ; 29 лет назад ( 1995 ) (широкая публика)
Финальный выпуск Издание четвертое / 10 января 2015 г .; 9 лет назад ( 10.01.2015 ) [ 5 ]
Репозиторий .что /источники /план9 /система [ 6 ]
Маркетинговая цель Исследование операционных систем, сетевых сред, общего использования.
Доступно в Английский
Платформы x86 / Vx32 , x86-64 , MIPS , DEC Alpha , SPARC , PowerPC , ARM
ядра Тип Монолитный [ 7 ]
Под влиянием Исследование Unix , Кембриджская распределенная вычислительная система [ 8 ]
По умолчанию
пользовательский интерфейс
река / RC
Лицензия 2021: С [ 9 ] [ 10 ]
2014: только GPL-2.0 [ 11 ]
2002: ЛПЛ-1.02 [ 12 ]
2000: План 9 ОСЛ [ 13 ] [ 14 ] [ 15 ] [ 16 ]
Преемник Инферно
Другие производные и форки
Официальный сайт p9f .org

Plan 9 от Bell Labs — это распределенная операционная система , созданная в Центре компьютерных исследований (CSRC) Bell Labs в середине 1980-х годов и построенная на концепциях UNIX, впервые разработанных там в конце 1960-х годов. С 2000 года Plan 9 является бесплатным и имеет открытый исходный код . Последний официальный релиз состоялся в начале 2015 года.

В Plan 9 метафора UNIX « все есть файл» расширяется за счет повсеместной сетецентрической файловой системы , а -вывод с адресацией курсора лежащий терминальный , ввод в основе UNIX-подобных операционных систем, заменяется оконной системой и графическим пользовательским интерфейсом. интерфейс без адресации курсора, хотя rc Plan 9 , оболочка , является текстовой.

Название «План 9» от Bell Labs является отсылкой к Эда Вуда 1957 года культовому научно-фантастическому Z-фильму «План 9 из космоса» . [ 17 ] Система продолжает использоваться и разрабатываться исследователями операционных систем и любителями. [ 18 ] [ 19 ]

Скриншот установки Plan 9

План 9 от Bell Labs первоначально разрабатывался в конце 1980-х годов. [ 19 ] членами Исследовательского центра компьютерных наук в Bell Labs, той же группы, которая первоначально разработала Unix и язык программирования C. [ 20 ] Команду Plan 9 первоначально возглавляли Роб Пайк , Кен Томпсон , Дэйв Пресотто и Фил Уинтерботтом при поддержке Денниса Ритчи в качестве главы отдела исследований вычислительных технологий. На протяжении многих лет в проект вносили свой вклад многие известные разработчики, в том числе Брайан Керниган , Том Дафф , Дуг Макилрой , Бьерн Страуструп и Брюс Эллис. [ 21 ]

Plan 9 заменил Unix в качестве основной платформы Bell Labs для исследования операционных систем. [ 22 ] Он исследовал несколько изменений в исходной модели Unix, которые облегчают использование и программирование системы, особенно в распределенных многопользовательских средах. После нескольких лет разработки и внутреннего использования Bell Labs отправила операционную систему университетам в 1992 году. Три года спустя Plan 9 был предоставлен коммерческим сторонам компанией AT&T через книжное издательство Harcourt Brace . Поскольку исходные лицензии стоили 350 долларов, AT&T ориентировалась на рынок встраиваемых систем, а не на рынок компьютеров в целом. Ричи отметил, что разработчики не ожидали «большого смещения», учитывая, насколько прочными стали другие операционные системы. [ 23 ]

К началу 1996 года проект Plan 9 был «отложен на второй план» AT&T в пользу Inferno , призванного стать конкурентом Microsystems Sun Java-платформы . [ 24 ] В конце 1990-х годов новый владелец Bell Labs Lucent Technologies прекратил коммерческую поддержку проекта, и в 2000 году третий выпуск был распространен под лицензией с открытым исходным кодом . [ 25 ] Четвертый выпуск по новой лицензии свободного программного обеспечения произошел в 2002 году. [ 26 ] В начале 2015 года состоялся финальный официальный релиз Plan 9. [ 25 ]

Сообщество пользователей и разработчиков, включая нынешних и бывших сотрудников Bell Labs , выпускало небольшие ежедневные выпуски в виде ISO-образов . Bell Labs принимала разработку. [ 27 ] Дерево исходного кода разработки доступно по протоколам 9P и HTTP и используется для обновления существующих установок. [ 28 ] Помимо официальных компонентов ОС, включенных в ISO, Bell Labs также размещает репозиторий приложений и инструментов, разработанных сторонними организациями. [ 29 ]

Поскольку в последние годы Bell Labs перешла к более поздним проектам, разработка официальной системы Plan 9 остановилась. 23 марта 2021 года разработка возобновилась после передачи авторских прав от Bell Labs Plan 9 Foundation. [ 10 ] [ 30 ] [ 31 ] Неофициальная разработка системы также продолжается в форке 9front, где активные участники предоставляют ежемесячные сборки и новые функциональные возможности. На данный момент вилка 9front предоставляет системные драйверы Wi-Fi , аудиодрайверы, поддержку USB и встроенный игровой эмулятор, а также другие функции. [ 32 ] [ 33 ] Другие недавние операционные системы, вдохновленные Plan 9, включают Harvey OS. [ 34 ] и Адская ОС. [ 35 ]

Дата Выпускать Комментарий
1992 План 9, 1-е издание Выпущено Bell Labs для университетов
1995 План 9, 2-е издание Выпущено Bell Labs для некоммерческих целей. [ 36 ]
2000 План 9 3-е изд. ( Бразилия ) Выпущено Lucent Technologies под лицензией с открытым исходным кодом.
2002 План 9, 4-е издание Выпущено Lucent Technologies под новой лицензией бесплатного программного обеспечения.

Концепции дизайна

[ редактировать ]

План 9 от Bell Labs похож на квакеров : отличается упором на «Внутренний свет», отличается простотой жизни, в частности ясностью речи. Как и квакеры, «План 9» не занимается прозелитизмом.

—Сапе Дж. Мюлендер, Пьер Дж. Янсен.
Реальное время в реальной операционной системе [ 37 ]

Plan 9 — это распределенная операционная система , созданная для того, чтобы сеть разнородных и географически разделенных компьютеров функционировала как единая система. [ 38 ] В типичной установке Plan 9 пользователи работают на терминалах под управлением оконной системы rio и получают доступ к серверам ЦП, которые обрабатывают процессы, требующие больших вычислений. Постоянное хранение данных обеспечивается дополнительными сетевыми узлами, выступающими в роли файловых серверов и архивного хранилища. [ 39 ]

Его дизайнеры заявляют, что

[t]Основа системы построена на двух идеях: пространстве имен для каждого процесса и простом протоколе файловой системы, ориентированном на сообщения.

- Пайк и др. [ 40 ]

Первая идея (пространство имен для каждого процесса) означает, что, в отличие от большинства операционных систем, каждый процесс (запущенные программы) имеет свое собственное представление пространства имен , соответствующее тому, что другие операционные системы называют файловой системой; одно имя пути может относиться к разным ресурсам для разных процессов. Потенциальная сложность этой установки контролируется набором обычных мест размещения общих ресурсов. [ 41 ] [ 42 ]

Вторая идея (файловая система, ориентированная на сообщения) означает, что процессы могут предлагать свои услуги другим процессам, предоставляя виртуальные файлы, которые появляются в пространстве имен других процессов. Ввод/вывод клиентского процесса в таком файле становится межпроцессным взаимодействием между двумя процессами. Таким образом, Plan 9 обобщает представление Unix о файловой системе как центральной точке доступа к вычислительным ресурсам. Он переносит идею Unix о файлах устройств для обеспечения доступа к периферийным устройствам ( мышям , съемным носителям и т. д.) и возможность монтировать файловые системы, находящиеся в физически различных файловых системах, в иерархическое пространство имен, но добавляет возможность монтировать соединение с сервером. программа, которая использует стандартизированный протокол и рассматривает свои службы как часть пространства имен.

Например, первоначальная оконная система под названием 8½ использовала эти возможности следующим образом. Plan 9 представляет пользовательский интерфейс терминала посредством трёх псевдофайлов: mouse , который может быть прочитан программой для получения уведомлений о движениях мыши и нажатиях кнопок, cons , который можно использовать для текстового ввода/вывода, и bitblt , запись в который выполняет графические операции (см. бит blit ). Оконная система мультиплексирует эти устройства: при создании нового окна для запуска какой-либо программы она сначала устанавливает новое пространство имен, в котором мышь , минусы и bitblt подключаются сами к себе, скрывая фактические файлы устройства, к которым он сам имеет доступ. Таким образом, оконная система получает все команды ввода и вывода из программы и обрабатывает их соответствующим образом, отправляя вывод на фактическое экранное устройство и предоставляя текущей программе ввод с клавиатуры и мыши. [ 39 ] Программе не обязательно знать, взаимодействует ли она напрямую с драйверами устройств операционной системы или с оконной системой; ему нужно только предположить, что его пространство имен настроено так, чтобы эти специальные файлы предоставляли тот тип входных данных и принимали тот тип сообщений, который он ожидает.

Распределенная работа Plan 9 также опирается на пространства имен каждого процесса, позволяя процессам клиента и сервера взаимодействовать между машинами только что описанным способом. Например, Команда cpu запускает удаленный сеанс на вычислительном сервере. Команда экспортирует часть своего локального пространства имен, включая устройства пользовательского терминала ( мышь , минусы , bitblt ), на сервер, чтобы удаленные программы могли выполнять ввод/вывод с помощью мыши, клавиатуры и дисплея терминала, сочетая в себе эффекты удаленного входа и общей сетевой файловой системы. [ 39 ] [ 40 ]

протокол 9P

[ редактировать ]

Все программы, которые хотят предоставлять услуги в виде файлов другим программам, используют единый протокол, называемый 9P. По сравнению с другими системами это уменьшает количество пользовательских интерфейсов программирования . 9P — это универсальный, независимый от среды, байт-ориентированный протокол, который обеспечивает доставку сообщений между сервером и клиентом. [ 43 ] Протокол используется для обращения к процессам, программам и данным и связи с ними, включая как пользовательский интерфейс, так и сеть. [ 44 ] С выходом 4-й редакции он был модифицирован и переименован в 9П2000. [ 26 ]

В отличие от большинства других операционных систем, Plan 9 не предоставляет специальных интерфейсов прикладного программирования (таких как сокеты Беркли , ресурсы X или системные вызовы ioctl ) для доступа к устройствам. [ 43 ] Вместо этого драйверы устройств Plan 9 реализуют свой интерфейс управления в виде файловой системы, так что к оборудованию можно получить доступ с помощью обычных ввода-вывода операций файлов, чтения и записи . Следовательно, совместное использование устройства в сети можно выполнить путем монтирования соответствующего дерева каталогов на целевой компьютер. [ 17 ]

Каталоги объединения и пространства имен

[ редактировать ]

Plan 9 позволяет пользователю собирать файлы (называемые именами ) из разных деревьев каталогов в одном месте. Результирующий объединенный каталог ведет себя как объединение базовых каталогов (порядком объединения можно управлять); если составляющие каталоги содержат файлы с одинаковым именем, список объединенного каталога ( лс или lc ) просто сообщит о повторяющихся именах. [ 45 ] Разрешение одного пути выполняется сверху вниз: если каталоги верх и дно объединено в ты с сначала верх , потом u/имя означает топ/имя, если оно существует, дно/имя, только если оно существует и top/name не существует и файл отсутствует, если он не существует. Рекурсивное объединение подкаталогов не выполняется, поэтому, если верхний/подкаталог существует, файлы в нижний/подкаталог недоступен через объединение. [ 46 ]

Каталог объединения можно создать с помощью последовательности привязки команды :

bind /arm/bin /bin
bind -a /acme/bin/arm /bin
bind -b /usr/alice/bin /bin

В приведенном выше примере /arm/bin монтируется по адресу /bin , содержимое /arm/bin заменяет предыдущее содержимое /бин . Акме Каталог bin затем монтируется в объединение после /bin и личный кабинет Алисы Каталог bin уже смонтирован в объединении. Когда файл запрашивается из /bin , сначала он ищется в /usr/alice/bin , затем в /arm/bin , а затем, наконец, в /acme/bin/arm .

Таким образом, отдельные пространства имен процессов обычно заменяют понятие пути поиска в оболочке. Переменная среды пути ( $path) все еще существует в оболочке rc (оболочка, в основном используемая в Plan 9); однако переменная среды пути rc обычно содержит только /bin и . каталоги и изменять переменную не рекомендуется, вместо этого добавление дополнительных команд следует выполнять путем связывания нескольких каталогов в один /bin. [ 47 ] [ 39 ] В отличие от Plan 9, переменная среды path оболочек Unix должна быть установлена ​​так, чтобы включать дополнительные каталоги, исполняемые файлы которых необходимо добавлять в качестве команд.

Более того, ядро ​​может хранить отдельные таблицы монтирования для каждого процесса. [ 37 ] и, таким образом, может предоставить каждому процессу собственное пространство имен файловой системы . Пространства имен процессов могут создаваться независимо, и пользователь может одновременно работать с программами, имеющими разнородные пространства имен. [ 40 ] Пространства имен можно использовать для создания изолированной среды, аналогичной chroot , но более безопасным способом. [ 43 ]

Архитектура объединенных каталогов Plan 9 вдохновила 4.4BSD и Linux реализации объединенных файловых систем . [ 45 ] хотя разработчики средства монтирования объединения BSD сочли нерекурсивное слияние каталогов в Plan 9 «слишком ограничительным для общего использования». [ 46 ]

Специальная виртуальная файловая система

[ редактировать ]
Вывод списка процессов со списком содержимого каталога (ls, lc) командой [ 48 ] в /проц

Вместо системных вызовов, предназначенных специально для управления процессами , Plan 9 предоставляет /proc Файловая система . Каждый процесс выглядит как каталог, содержащий файлы информации и управления, которыми можно манипулировать с помощью обычных системных вызовов файлового ввода-вывода. [ 8 ]

Подход к файловой системе позволяет управлять процессами Plan 9 с помощью простых инструментов управления файлами, таких как ls и cat ; однако процессы нельзя копировать и перемещать как файлы. [ 8 ]

В Plan 9 нет специализированных системных вызовов или ioctls для доступа к сетевому стеку или сетевому оборудованию. Вместо этого /net используется файловая система . Сетевые соединения контролируются путем чтения и записи управляющих сообщений в управляющие файлы. Подкаталоги, такие как /net/tcp и /net/udp используются как интерфейс к соответствующим протоколам. [ 8 ]

Чтобы упростить управление кодировками символов , Plan 9 использует Unicode во всей системе. Первоначальной реализацией Unicode был ISO/IEC 10646-1:1993 . Кен Томпсон изобрел UTF-8, который стал родной кодировкой в ​​Plan 9. Вся система была преобразована для общего использования в 1992 году. [ 49 ] UTF-8 сохраняет обратную совместимость с традиционными строками с нулевым завершением , обеспечивая более надежную обработку информации и связывание многоязычных строковых данных с помощью каналов Unix между несколькими процессами. Использование единой кодировки UTF-8 с символами для всех культур и регионов устраняет необходимость переключения между наборами кодов. [ 50 ]

Объединение концепций дизайна

[ редактировать ]

Хотя концепции дизайна «Плана 9» интересны сами по себе, они должны были быть наиболее полезными в сочетании. Например, для реализации сервера трансляции сетевых адресов (NAT) можно создать объединенный каталог, перекрывающий . каталог маршрутизатора /net дерево каталогов со своим собственным /сеть . Аналогично, виртуальную частную сеть (VPN) можно реализовать путем наложения в объединенном каталоге /net иерархия с удаленного шлюза , используя защищенный 9P через общедоступный Интернет. Каталог объединения с Иерархию и фильтры /net можно использовать для изолирования ненадежных приложений или для реализации брандмауэра . [ 43 ] Таким же образом распределенная вычислительная сеть может быть составлена ​​с объединенным каталогом /proc иерархии с удаленных хостов, что позволяет взаимодействовать с ними так, как если бы они были локальными.

При совместном использовании эти функции позволяют собрать сложную распределенную вычислительную среду путем повторного использования существующей иерархической системы имен. [ 8 ]

Программное обеспечение для Плана 9

[ редактировать ]

Благодаря конструкции системы большинство задач в Plan 9 можно выполнить с помощью утилит ls , cat , grep , cp и rm в сочетании с оболочкой rc (оболочкой Plan 9 по умолчанию).

Factotum — это сервер аутентификации и управления ключами для Plan 9. Он обрабатывает аутентификацию от имени других программ, поэтому как секретные ключи , так и детали реализации должны быть известны только Factotum. [ 51 ]

Графические программы

[ редактировать ]
План 9: бег acme и rc

В отличие от Unix , Plan 9 был разработан с учетом графики. [ 44 ] После загрузки терминал Plan 9 запустит оконную систему rio , в которой пользователь может создавать новые окна, отображающие rc . [ 52 ] Графические программы, вызываемые из этой оболочки, заменяют ее в ее окне.

Сантехник , обеспечивает механизм межпроцессного взаимодействия который обеспечивает общесистемные гиперссылки.

Sam и acme — текстовые редакторы Plan 9. [ 53 ]

Система хранения

[ редактировать ]

Plan 9 поддерживает файловые системы Kfs, Paq, Cwfs, FAT и Fossil . Последний был разработан в Bell Labs специально для Plan 9 и обеспечивает возможность хранения снимков. Его можно использовать непосредственно с жестким диском или использовать Venti , архивную файловую систему и систему постоянного хранения данных.

Разработка программного обеспечения

[ редактировать ]

Пакет распространения Plan 9 включает в себя специальные варианты компилятора и языки программирования, а также предоставляет адаптированный набор библиотек вместе с системой оконного пользовательского интерфейса, специфичной для Plan 9. [ 54 ] Основная часть системы написана на диалекте C ( ANSI C с некоторыми расширениями и некоторыми другими функциями). Компиляторы этого языка были созданы специально с учетом переносимости; по словам их автора, они «быстро компилируются, медленно загружаются и создают объектный код среднего качества». [ 55 ]

Язык параллельного программирования под названием Alef был доступен в первых двух редакциях, но затем был исключен из соображений обслуживания и заменен библиотекой потоков для C. [ 56 ] [ 57 ]

Совместимость с Unix

[ редактировать ]

Хотя Plan 9 должен был стать дальнейшим развитием концепций Unix, совместимость с ранее существовавшим программным обеспечением Unix никогда не была целью проекта. Многие утилиты командной строки Plan 9 имеют те же имена, что и аналоги Unix, но работают по-другому. [ 48 ]

Plan 9 может поддерживать приложения POSIX и может эмулировать интерфейс сокетов Berkeley через среду ANSI/POSIX (APE), которая реализует интерфейс, близкий к ANSI C и POSIX , с некоторыми общими расширениями (собственные интерфейсы Plan 9 C не соответствуют ни одному стандарту). Он также включает POSIX-совместимую оболочку. Авторы APE утверждают, что использовали его для портирования X Window System (X11) на Plan 9, хотя они не выпускают X11, «потому что его правильная поддержка — слишком большая работа». [ 58 ] Некоторые двоичные файлы Linux можно использовать с помощью приложения «linuxemu» (эмулятор Linux); однако работа над этим все еще продолжается. [ 59 ] И наоборот, виртуальная машина Vx32 позволяет слегка модифицированному ядру Plan 9 работать в качестве пользовательского процесса в Linux, поддерживая немодифицированные программы Plan 9. [ 60 ]

Сравнение с современными операционными системами

[ редактировать ]

В 1991 году разработчики Plan 9 сравнили свою систему с другими операционными системами начала девяностых годов по размеру, показав, что исходный код минимальной («работающей, хотя и не очень полезной») версии был менее чем в пять раз меньше размера Mach . микроядро без каких-либо драйверов устройств (5899 или 4622 строки кода для Plan 9, в зависимости от метрики, против 25530 строк). Полное ядро ​​состояло из 18 000 строк кода. [ 39 ] (Согласно подсчетам 2006 года, ядро ​​насчитывало тогда около 150 000 строк, но для сравнения это было более чем 4,8 миллионами в Linux . [ 43 ] )

В сообществе исследователей операционных систем, а также в коммерческом мире Unix одновременно с разработкой Plan 9 предпринимались и другие попытки реализовать распределенные вычисления и удаленный доступ к файловой системе. К ним относятся сетевая файловая система и связанная с ней архитектура vnode , разработанная в Sun Microsystems , а также более радикальные отклонения от модели Unix, такие как ОС Sprite от Калифорнийского университета в Беркли . Разработчик Sprite Брент Уэлч отмечает, что архитектура SunOS vnode ограничена по сравнению с возможностями Plan 9, поскольку она не поддерживает удаленный доступ к устройствам и удаленное межпроцессное взаимодействие, хотя могла бы, имея ранее существовавшие сокеты домена UNIX (которые « по существу может использоваться для именования серверов уровня пользователя») был интегрирован с архитектурой vnode. [ 41 ]

конструкции обмена текстовыми сообщениями в Plan 9 были отмечены ограничения этой парадигмы по сравнению с типизированными Sun интерфейсами объектно-ориентированной операционной системы : Spring В одном из критических замечаний по поводу концепции «все есть файл» и

Plan 9 заставляет все выглядеть как файл. В большинстве случаев реальный тип интерфейса включает протокол сообщений, которые должны быть записаны и прочитаны из файлового дескриптора. Это сложно указать и документировать, и запрещается любая автоматическая проверка типов вообще , за исключением ошибок файлов во время выполнения. (...) [A] Имя пути относительно неявного корневого контекста процесса — единственный способ назвать службу. Привязку имени к объекту можно выполнить только путем присвоения существующего имени объекта в том же контексте, что и новое имя. Таким образом, ссылки на интерфейсы просто не могут передаваться между процессами, а тем более через сети. Вместо этого коммуникация должна основываться на соглашениях, которые подвержены ошибкам и не масштабируются.

Роско; акцент в оригинале. [ 61 ]

Более позднее ретроспективное сравнение Plan 9, Sprite и третьей современной распределенной исследовательской операционной системы Amoeba показало, что

среды, которые они [Amoeba и Sprite] создают, тесно связаны с ОС, что затрудняет взаимодействие с внешними сервисами. Такие системы страдают от радикального отхода от модели UNIX, что также препятствует переносу уже существующего программного обеспечения на платформу (...). Отсутствие разработчиков, очень небольшой диапазон поддерживаемого оборудования и небольшая, даже по сравнению с Plan 9, база пользователей также значительно замедлили внедрение этих систем (...). Оглядываясь назад, можно сказать, что Plan 9 была единственной исследовательской распределенной ОС того времени, которой удалось привлечь разработчиков и использоваться в коммерческих проектах достаточно долго, чтобы гарантировать ее выживание по сей день.

- Мирчовски, Симмондс и Миннич [ 62 ]
был вдохновлен Оконный менеджер wmii X acme текстовым редактором из проекта Plan 9. [ 63 ]

План 9 продемонстрировал, что интегральная концепция Unix — что каждый системный интерфейс может быть представлен как набор файлов — может быть успешно реализована в современной распределенной системе. [ 52 ] Некоторые функции Plan 9, такие как кодировка символов Unicode UTF-8, были реализованы в других операционных системах. Unix-подобные операционные системы, такие как Linux, реализовали 9P2000, протокол Plan 9 для доступа к удаленным файлам, и приняли функции rfork , механизма создания процессов Plan 9. [ 64 ] Кроме того, в Plan 9 from User Space несколько приложений и инструментов Plan 9, включая редакторы sam и acme, были портированы на системы Unix и Linux и достигли определенного уровня популярности. Несколько проектов направлены на замену программ операционной системы GNU , окружающих ядро ​​Linux, программами операционной системы Plan 9. [ 65 ] [ 66 ] 9wm Оконный менеджер был создан на основе , более старой оконной системы Plan 9; [ 67 ] wmii также находится под сильным влиянием Plan 9. [ 63 ] В исследованиях в области информатики Plan 9 использовался в качестве для сетевых вычислений . платформы [ 68 ] [ 62 ] и как средство исследования повсеместных вычислений без промежуточного программного обеспечения . [ 69 ] В коммерции Plan 9 лежит в основе Coraid систем хранения данных . Однако Plan 9 никогда не приближался по популярности к Unix и был в первую очередь исследовательским инструментом:

[Похоже, что План 9 провалился просто потому, что он не смог стать достаточно убедительным улучшением Unix, чтобы вытеснить своего предка. По сравнению с Plan 9, Unix скрипит, лязгает и имеет явные пятна ржавчины, но справляется со своей задачей достаточно хорошо, чтобы удерживать свою позицию. Здесь есть урок для амбициозных системных архитекторов: самый опасный враг лучшего решения — это существующая достаточно хорошая кодовая база.

Другие факторы, которые способствовали низкому внедрению Plan 9, включают отсутствие коммерческого резервного копирования, небольшое количество приложений для конечных пользователей и отсутствие драйверов устройств . [ 52 ] [ 53 ]

Сторонники и разработчики Plan 9 утверждают, что проблемы, препятствующие его внедрению, решены, что его первоначальные цели как распределенной системы, среды разработки и исследовательской платформы достигнуты и что он пользуется умеренной, но растущей популярностью. [ нужна ссылка ] Inferno , благодаря своим размещенным возможностям, стал средством переноса технологий Plan 9 в другие системы в качестве размещенной части гетерогенных вычислительных сетей. [ 70 ] [ 71 ] [ 72 ]

Несколько проектов работают над расширением Плана 9, включая 9atom и 9front. Эти форки дополняют Plan 9 дополнительными драйверами оборудования и программным обеспечением, включая улучшенную версию системы электронной почты Upas , компилятор Go , Mercurial поддержку системы контроля версий (а теперь и реализацию git) и других программ. [ 19 ] [ 73 ] Plan 9 был портирован на Raspberry Pi . одноплатный компьютер [ 74 ] [ 75 ] Проект Harvey пытается заменить собственный компилятор Plan 9 C на GCC , чтобы использовать современные инструменты разработки, такие как GitHub и Coverity , и ускорить разработку. [ 76 ]

Начиная с Windows 10 версии 1903 , подсистема Windows для Linux реализует протокол файловой системы Plan 9 в качестве сервера, а хостовая операционная система Windows выступает в качестве клиента. [ 77 ]

Производные и форки

[ редактировать ]
  • Inferno является потомком Plan 9 и разделяет многие концепции дизайна и даже исходный код ядра, особенно в отношении устройств и протокола Styx/9P2000. Inferno разделяет с Plan 9 наследие Unix от Bell Labs и философию Unix . Многие инструменты командной строки в Inferno были инструментами Plan 9, которые были переведены на Limbo .
  • 9атом [ 78 ] дополняет дистрибутив Plan 9 добавлением ядра 386 PAE , процессора amd64 и ядра терминала, nupas, поддержки дополнительного аппаратного обеспечения ПК, IL и Ken's fs. [ 79 ] [ 80 ]
  • 9фронт [ 81 ] является ответвлением Plan 9. Он был создан для устранения кажущейся нехватки выделенных ресурсов для разработки внутри Bell Labs и накопил различные исправления и улучшения.
  • 9наследие [ 82 ] это альтернативный дистрибутив. Он включает в себя набор патчей, основанных на текущем дистрибутиве Plan 9.
  • Готовый [ 83 ] предназначен для многоядерных архитектур и крупномасштабных SMP-систем.
  • Харви ОС [ 84 ] это попытка заставить код Plan 9 работать с gcc и clang.
  • ЖаннаОС [ 85 ] — это экспериментальная ОС, созданная на основе Plan 9. Ее пользовательское пространство и модули в основном заимствованы из 9front, система сборки — из Harvey OS, а ее ядро ​​является ответвлением 64-битного ядра Plan9-9k.
  • НИКС [ 86 ] [ нужен лучший источник ] — это ответвление Plan9, предназначенное для многоядерных систем и облачных вычислений.
  • узел9 [ 87 ] представляет собой скриптовую производную Plan9/Inferno, которая заменяет язык программирования Limbo и виртуальную машину DIS языком Lua и виртуальной машиной LuaJit. Он также заменяет межплатформенный ввод-вывод Inferno на обработку событий и ввод-вывод libuv Node.js для согласованного кросс-платформенного хостинга. Это доказательство концепции, демонстрирующее, что распределенная ОС может быть построена из пространств имен для каждого процесса и общих облачных элементов для создания единого образа системы произвольного размера.
  • План Б [ 88 ] предназначен для работы в распределенных средах, где набор доступных ресурсов различен в разные моменты времени. Первоначально основанный на ядре Plan 9 третьей редакции, Plan B был перенесен в пространство пользователя для работы на текущих системах Plan 9. [ 89 ] [ 90 ] [ 91 ]

Лицензия

[ редактировать ]

Начиная с выпуска четвертого издания в апреле 2002 г. [ 26 ] Полный исходный код Plan 9 от Bell Labs доступен бесплатно по лицензии Lucent Public License 1.02, которая считается лицензией открытого исходного кода ( Open Source Initiative OSI), свободного программного обеспечения лицензией Free Software Foundation и проходит Руководство по использованию свободного программного обеспечения Debian . [ 43 ]

В феврале 2014 года Калифорнийский университет в Беркли разрешил нынешнему правообладателю Plan 9 — Alcatel-Lucent — выпустить все программное обеспечение Plan 9, ранее регулируемое Общественной лицензией Lucent, версия 1.02, только под лицензией GPL-2.0 . [ 92 ]

23 марта 2021 г. право собственности на Plan 9 перешло от Bell Labs к Plan 9 Foundation. [ 93 ] и все предыдущие выпуски были повторно лицензированы по лицензии MIT . [ 10 ]

См. также

[ редактировать ]
  1. ^ «План 9 от Bell Labs» .
  2. ^ Люсент Технологии (2006). «Гленда, кролик из Плана 9» . Проверено 2 декабря 2008 г.
  3. ^ «Фонд План 9: Деятельность» . plan9foundation.org . Проверено 23 марта 2021 г.
  4. ^ «9Наследие» . 9legacy.org . Проверено 23 марта 2021 г.
  5. ^ "plan9checksums" . Лаборатории Белла. Архивировано из оригинала 1 июня 2017 г. Проверено 25 июля 2019 г. Сб, 10 января, 04:04:55 EST 2015 ... plan9.iso.bz2
  6. ^ «Исходный код GPLv2» .
  7. ^ Кроуфорд, Дайан (1999). "Форум". Коммуникации АКМ . 42 (8). Ассоциация вычислительной техники (ACM): 11–15. дои : 10.1145/310930.310939 . ISSN   0001-0782 . S2CID   263897745 .
  8. ^ Jump up to: а б с д и Пайк, Р .; Пресотто, Д.; Дорвард, С.; Фландрена, Б.; Томпсон, К .; Трики, Х.; Уинтерботтом, П. «План 9 от Bell Labs» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
  9. ^ «Лицензия Плана 9» . p9f.org . Архивировано из оригинала 14 июня 2021 года . Проверено 14 июня 2021 г.
  10. ^ «План9Лицензия» . akaros.cs.berkeley.edu . Архивировано из оригинала 13 февраля 2014 года . Проверено 14 июня 2021 г. Калифорнийский университет в Беркли получил от Alcatel-Lucent разрешение на выпуск всего программного обеспечения Plan 9, ранее регулируемого Общественной лицензией Lucent версии 1.02, в рамках Стандартной общественной лицензии GNU версии 2.
  11. ^ «Общественная лицензия Lucent, версия 1.02» . plan9.bell-labs.com . Архивировано из оригинала 3 октября 2003 года . Проверено 14 июня 2021 г.
  12. ^ «Лицензия с открытым исходным кодом Plan 9 — Версия 1.4 — 10.09.02» . plan9.bell-labs.com . Архивировано из оригинала 18 декабря 2002 года . Проверено 14 июня 2021 г.
  13. ^ «Лицензия с открытым исходным кодом Plan 9 — Версия 1.2 — 29.10.00» . plan9.bell-labs.com . Архивировано из оригинала 6 декабря 2000 года . Проверено 14 июня 2021 г.
  14. ^ «Лицензия с открытым исходным кодом Plan 9 — Версия 1.1 — 20.09.00» . plan9.bell-labs.com . Архивировано из оригинала 26 октября 2000 года . Проверено 14 июня 2021 г.
  15. ^ «Лицензионное соглашение с открытым исходным кодом Plan 9» . plan9.bell-labs.com . Архивировано из оригинала 16 августа 2000 года . Проверено 14 июня 2021 г.
  16. ^ Jump up to: а б с Раймонд, Эрик С. (17 сентября 2003 г.). «План 9: Каким было будущее» . Искусство программирования UNIX . Аддисон-Уэсли . ISBN  0-13-142901-9 . Проверено 7 мая 2007 г.
  17. ^ Робертсон, Джеймс (16 июля 2011 г.). «План 9 разветвлен, продолжается как 9front» . ОСНовости . Проверено 31 декабря 2011 г.
  18. ^ Jump up to: а б с «9атом» . Архивировано из оригинала 26 июля 2013 г. Проверено 11 ноября 2011 г.
  19. ^ «От изобретателей системы UNIX выходит Plan 9 из Bell Labs» (Пресс-релиз). Люсент Технологии. 18 июля 1995 г. Архивировано из оригинала 9 февраля 2006 г.
  20. ^ Макилрой, Дуг (март 1995 г.). «Предисловие» . Bell Labs (2-е изд.). Люсент Технологии . Проверено 26 февраля 2016 г.
  21. ^ Провен, Лиам (29 марта 2022 г.). «Странный мир операционных систем, отличных от C» . www.theregister.com . Проверено 1 сентября 2022 г.
  22. ^ Ли, Ивонн Л. (24 июля 1995 г.). «AT&T Bell Labs поставляет ОС Plan 9 для встраиваемых систем» . Инфомир .
  23. ^ Понтин, Джейсон (19 февраля 1996 г.). «AT&T раскрывает планы относительно конкурента Java» . Инфомир . п. 3.
  24. ^ Jump up to: а б «Bell Labs: Полное руководство — история, продукция, основание и многое другое» . История-Компьютер . 14.11.2021 . Проверено 1 сентября 2022 г.
  25. ^ Jump up to: а б с Лоли-Керу, Евгения (29 апреля 2002 г.). «Bell Labs выпускает новую версию Plan 9» . ОСНовости . Проверено 31 декабря 2011 г.
  26. ^ «Как внести свой вклад» . Лаборатории Белла . Люсент Технологии . Проверено 30 ноября 2011 г.
  27. ^ «Будем в курсе событий» . Лаборатории Белла . Люсент Технологии . Проверено 24 июля 2019 г.
  28. ^ «План 9 — Дополнительное программное обеспечение» . 2009 . Проверено 06 марта 2016 г.
  29. ^ Уэлдон, Маркус (23 марта 2021 г.). «План 9 от Bell Labs в киберпространстве!» . Лаборатория Nokia Bell . Проверено 23 марта 2021 г.
  30. ^ Шарвуд, Саймон. «Bell Labs передает авторские права на влиятельную ОС Plan 9 новому фонду» . Регистр . Проверено 24 марта 2021 г.
  31. ^ «Вопрос-ответ 1 — Знакомство с 9front» . fqa.9front.org . Проверено 15 февраля 2018 г.
  32. ^ Доказано, Лиам. «Выпущена новая версия вилки Plan 9 9front» . Регистр . Проверено 5 ноября 2022 г.
  33. ^ «Харви ОС» . harvey-os.org . Проверено 15 февраля 2018 г.
  34. ^ «Жеанна» . jehanne.h--k.it/ . Проверено 8 января 2023 г.
  35. ^ «Анонс первого релиза для широкой публики» . 9 фанатов. 16 июля 1995 г. Архивировано из оригинала 6 июля 2008 г.
  36. ^ Jump up to: а б Маллендер, Сапе Дж.; Янсен, Пьер Г. (26 февраля 2004 г.). «Реальное время в реальной операционной системе» . В Герберте, Эндрю Дж.; Сперк Джонс, Карен (ред.). Компьютерные системы: теория, технологии и приложения: дань уважения Роджеру Нидэму . Springer Science+Business Media . п. 211. ИСБН  978-0-387-20170-2 . Проверено 24 декабря 2011 г.
  37. ^ Хэнкок, Брайан (2003). «Изобретение Unix заново: введение в операционную систему Plan 9». Библиотека высоких технологий . 21 (4). МКБ УП: 471–76. дои : 10.1108/07378830310509772 .
  38. ^ Jump up to: а б с д и Пресотто, Дэйв; Пайк, Роб ; Томпсон, Кен ; Трики, Ховард. План 9. Распределенная система . Учеб. Весна 1991 г., конференция EuroOpen. CiteSeerX   10.1.1.41.9192 .
  39. ^ Jump up to: а б с Пайк, Р .; Пресотто, Д.; Томпсон, К .; Трики, Х.; Уинтерботтом, П. «Использование пространств имен в Плане 9» . Лаборатории Белла . Проверено 26 февраля 2016 г.
  40. ^ Jump up to: а б Уэлч, Брент (1994). «Сравнение трех архитектур распределенных файловых систем: Vnode, Sprite и Plan 9». Вычислительные системы . 7 (2): 175–199. CiteSeerX   10.1.1.46.2817 .
  41. ^ namespace(4) Plan 9 , том 1 Руководство программиста
  42. ^ Jump up to: а б с д и ж Перейра, Уриэль М. (2006). Выпуск Unix Spirit Free: Plan 9 от Bell Labs ( AVI ) . ФОСДЕМ . Проверено 2 декабря 2011 г.
  43. ^ Jump up to: а б Миннич, Рон (2005). «Почему План 9 еще не умер и чему мы можем научиться из него» (PDF) . Лос-Аламосская национальная лаборатория . Архивировано из оригинала (PDF) 25 февраля 2016 г. Проверено 26 февраля 2016 г.
  44. ^ Jump up to: а б Валери, Аврора (25 марта 2009 г.). «Объединение файловых систем: Реализации, часть I» . LWN.net . Проверено 5 декабря 2011 г.
  45. ^ Jump up to: а б Пендри, Ян-Симон; МакКьюсик, Маршалл Кирк (1995). Union Mounts в 4.4BSD-Lite . Учеб. Зимняя конференция USENIX .
  46. ^ Дафф, Том. «18». Rc — План 9 «Шелл» . {{cite book}}: |work= игнорируется ( помощь ) ( PDF );
  47. ^ Jump up to: а б «Трансляция команд UNIX в Plan 9» . Лаборатории Белла . Люсент Технологии . Проверено 2 декабря 2011 г.
  48. ^ Пайк, Роб (30 апреля 2003 г.). «История UTF-8» . Проверено 27 апреля 2006 г.
  49. ^ Понедельник, Кен (январь 1999 г.). Обработка информации CJKV . О'Рейли Медиа . п. 466 . ISBN  978-1-56592-224-2 . Проверено 23 декабря 2011 г.
  50. ^ Кокс, Р.; Гросс, Э.; Пайк, Р .; Пресотто, Д.; Куинлан, С. «Безопасность в Плане 9» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
  51. ^ Jump up to: а б с Хадсон, Эндрю (19 июля 2006 г.). «Исследование операционной системы Plan 9» . ОСНовости . Проверено 31 декабря 2011 г.
  52. ^ Jump up to: а б «Интервью с Рассом Коксом» . Настройка . Использует это. 09.04.2011. Архивировано из оригинала 28 декабря 2011 г. Проверено 1 января 2012 г.
  53. ^ Диксон, Род (2004). Закон об открытом программном обеспечении . Артех Хаус . п. 213. ИСБН  978-1-58053-719-3 . Проверено 25 декабря 2011 г.
  54. ^ Томпсон, Кен (февраль 1992 г.). «Новый компилятор C» (PDF) . Информационный бюллетень австралийской группы пользователей UNIX Systems . 13 (1). Кенсингтон , Австралия : AUUG : 31–41. ISSN   1035-7521 . Проверено 25 декабря 2011 г.
  55. ^ Пайк, Роб. «Рио: Проектирование параллельной оконной системы» (PDF) . Проверено 8 марта 2013 г.
  56. ^ thread(2) Plan 9 , том 1 Руководство программиста
  57. ^ Трики, Ховард. «APE — среда ANSI/POSIX» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
  58. ^ «Эмуляция Linux» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
  59. ^ Форд, Брайан; Кокс, Расс (2008). Vx32: облегченная песочница на уровне пользователя на платформе x86 . USENIX Annual Tech. Конф. стр. 293–306. CiteSeerX   10.1.1.212.9353 .
  60. ^ Роско, Тимоти (1995). Структура мультисервисной операционной системы (PDF) (доктор философии). Кембриджский университет. стр. 22–23.
  61. ^ Jump up to: а б Мирчовский, Андрей; Симмондс, Роб; Миннич, Рон (2004). План 9 — интегрированный подход к грид-вычислениям . Учеб. 18-й Международный симпозиум по параллельной и распределенной обработке. IEEE. CiteSeerX   10.1.1.97.122 .
  62. ^ Jump up to: а б «Оконный менеджер улучшен 2» . suckless.org . Архивировано из оригинала 31 декабря 2011 г. Проверено 2 января 2012 г. [wmii] имеет интерфейс файловой системы 9p и поддерживает классическое и мозаичное (acme-подобное) управление окнами.
  63. ^ Торвальдс, Линус (1999). «Грань Linux» . Открытые исходные коды: голоса революции открытого исходного кода . О'Рейли. ISBN  1-56592-582-3 .
  64. ^ «Glendix: привнесение красоты Plan 9 в Linux» . Проверено 1 декабря 2011 г.
  65. ^ «План 9 из Gentoo: Plan 9 в сочетании с Gentoo» . Генту Линукс . Архивировано из оригинала 20 декабря 2012 г. Проверено 1 декабря 2011 г.
  66. ^ «Оконный менеджер 9wm» . 9 Вт . Проверено 2 января 2012 г. 9wm — это оконный менеджер X, который пытается имитировать оконный менеджер Plan 9 8-1/2, насколько это возможно, в пределах ограничений, налагаемых X.
  67. ^ «9сетка» . Лаборатории Белла . Люсент Технологии . Архивировано из оригинала 14 марта 2006 г. Проверено 28 марта 2006 г.
  68. ^ Баллестерос, Франциско Дж.; Гвардиола, Горка; Сориано, Энрике; Леал Альгара, Катя (2005). Традиционные системы могут хорошо работать для широкомасштабных приложений. Пример из практики: Plan 9 от Bell Labs становится повсеместным . Международная конференция IEEE. по всеобъемлющим вычислениям и коммуникациям. CiteSeerX   10.1.1.109.8131 .
  69. ^ «Vita Nuova поставляет Inferno Grid компании Evotec OAI» (PDF) (пресс-релиз). Новая Жизнь . 18 мая 2004 г. Проверено 28 марта 2006 г.
  70. ^ «Библиотеки Университета Рутгерса устанавливают Inferno Data Grid» (PDF) (пресс-релиз). Вита Нуова . 12 мая 2004 г. Проверено 28 марта 2006 г.
  71. ^ «Факультет биологии Йоркского университета устанавливает сетку данных Inferno Vita Nuova» (PDF) (пресс-релиз). Вита Нуова . 04 мая 2004 г. Проверено 28 марта 2006 г.
  72. ^ «9FRONT.ORG ПЛАН СОВЕРШИЛСЯ» . Проверено 14 октября 2021 г.
  73. ^ Хейворд, Дэвид (9 мая 2013 г.). «Операционные системы Raspberry Pi: 5 обзоров и оценок» . ТехРадар . Архивировано из оригинала 7 июня 2013 года . Проверено 20 апреля 2014 г.
  74. ^ «Как установить Plan 9 на Raspberry Pi» . еЛинукс . Проверено 16 ноября 2014 г.
  75. ^ Хурадо, Альваро; Фернандес, Рафаэль; дю Коломбье, Давид; Миннич, Рон; Нюрхинен, Аки; Флорен, Джон. Харви (PDF) . Сессия USENIX ATC BOF.
  76. ^ «Что нового в WSL в Windows 10 версии 1903?» . Инструменты командной строки Windows для разработчиков . 16 февраля 2019 г.
  77. ^ «9атом» . Архивировано из оригинала 11 ноября 2020 года. {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  78. ^ «9атом» . quanstro.net . Архивировано из оригинала 9 июня 2018 года . Проверено 15 июня 2023 г.
  79. ^ «9атом» . АрхивОС . 3 мая 2022 г. Проверено 15 июня 2023 г.
  80. ^ «9FRONT.ORG ПЛАН СОВЕРШИЛСЯ» . 9front.org .
  81. ^ «9Наследие» . www.9legacy.org .
  82. ^ «Акарос» . сайт akaros.org .
  83. ^ «Харви ОС» . harvey-os.org .
  84. ^ «ЖеханнеОС» . 17 ноября 2021 г.
  85. ^ «НИКС» . 21 ноября 2020 г.
  86. ^ «узел9» . Гитхаб . 14 января 2022 г.
  87. ^ «План Б» . 26 ноября 2020 г.
  88. ^ "Скачать" . План 9 вики . 9p.io. ​Проверено 15 июня 2023 г.
  89. ^ Арбалетчики, Фрэнсис Дж.; Музкиз, Горка Гвардиола; Альгара, Катя Леаль; Сориано, Генри; из Гераса Кира — Петр; Кастро, Ева М.; Леонард, Эндрю; Аревало, Серджио (февраль 2004 г.). «План Б: Ящики для сетевых ресурсов » Журнал Бразильского компьютерного общества . 10 (1): 33–4 дои : 10.1007/BF03192352 . S2CID   6766935 .
  90. ^ Баллестерос, Ф.Дж.; Сориано, Э.; Леал, К.; Гвардиола, Г. (2006). «План Б: Операционная система для повсеместных вычислительных сред» . Четвертая ежегодная международная конференция IEEE по всеобъемлющим вычислениям и коммуникациям (PERCOM'06) . стр. 126–135. дои : 10.1109/PERCOM.2006.43 . ISBN  0-7695-2518-0 . S2CID   1730651 . Проверено 15 июня 2023 г.
  91. ^ Шарвуд, Саймон (14 февраля 2014 г.). «Plan 9 выходит из лицензионного пространства Lucent» . Регистр . Проверено 20 апреля 2014 г.
  92. ^ «Фонд План9» . plan9foundation.org . Проверено 13 октября 2021 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6be4ebb087d9dba055f786f1639c674a__1719934620
URL1:https://arc.ask3.ru/arc/aa/6b/4a/6be4ebb087d9dba055f786f1639c674a.html
Заголовок, (Title) документа по адресу, URL1:
Plan 9 from Bell Labs - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)