План 9 от Bell Labs
Разработчик | Фонд Plan 9, преемник Bell Labs |
---|---|
Написано в | Диалект ANSI C |
Рабочее состояние | Текущий [ 3 ] [ 4 ] |
Исходная модель | Открытый исходный код |
Первоначальный выпуск | 1992 год (университеты) / 1995 (широкая публика) |
Финальный выпуск | Издание четвертое / 10 января 2015 г [ 5 ] |
Репозиторий | 9р |
Маркетинговая цель | Исследование операционных систем, сетевых сред, общего использования. |
Доступно в | Английский |
Платформы | 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 |
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 ]
История
[ редактировать ]План 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 ]
Специальная виртуальная файловая система
[ редактировать ]/проц
[ редактировать ]Вместо системных вызовов, предназначенных специально для управления процессами , 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 ]
Графические программы
[ редактировать ]В отличие от 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 ]
Влияние
[ редактировать ]План 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 Оконный менеджер был создан на основе 8½ , более старой оконной системы 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 ]
См. также
[ редактировать ]- Алеф (язык программирования)
- Свидание (План 9)
- Инферно (операционная система)
- Редокс (операционная система)
- Миникс
- ХеленОС
Ссылки
[ редактировать ]- ^ «План 9 от Bell Labs» .
- ^ Люсент Технологии (2006). «Гленда, кролик из Плана 9» . Проверено 2 декабря 2008 г.
- ^ «Фонд План 9: Деятельность» . plan9foundation.org . Проверено 23 марта 2021 г.
- ^ «9Наследие» . 9legacy.org . Проверено 23 марта 2021 г.
- ^ "plan9checksums" . Лаборатории Белла. Архивировано из оригинала 1 июня 2017 г. Проверено 25 июля 2019 г.
Сб, 10 января, 04:04:55 EST 2015 ... plan9.iso.bz2
- ^ «Исходный код GPLv2» .
- ^ Кроуфорд, Дайан (1999). "Форум". Коммуникации АКМ . 42 (8). Ассоциация вычислительной техники (ACM): 11–15. дои : 10.1145/310930.310939 . ISSN 0001-0782 . S2CID 263897745 .
- ^ Jump up to: а б с д и Пайк, Р .; Пресотто, Д.; Дорвард, С.; Фландрена, Б.; Томпсон, К .; Трики, Х.; Уинтерботтом, П. «План 9 от Bell Labs» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
- ^ «Лицензия Плана 9» . p9f.org . Архивировано из оригинала 14 июня 2021 года . Проверено 14 июня 2021 г.
- ^ Jump up to: а б с Сорасе, Энтони. «Передача Плана 9 Фонду Плана 9» . marc.info . Архивировано из оригинала 13 апреля 2021 года . Проверено 14 апреля 2020 г.
- ^ «План9Лицензия» . akaros.cs.berkeley.edu . Архивировано из оригинала 13 февраля 2014 года . Проверено 14 июня 2021 г.
Калифорнийский университет в Беркли получил от Alcatel-Lucent разрешение на выпуск всего программного обеспечения Plan 9, ранее регулируемого Общественной лицензией Lucent версии 1.02, в рамках Стандартной общественной лицензии GNU версии 2.
- ^ «Общественная лицензия Lucent, версия 1.02» . plan9.bell-labs.com . Архивировано из оригинала 3 октября 2003 года . Проверено 14 июня 2021 г.
- ^ «Лицензия с открытым исходным кодом Plan 9 — Версия 1.4 — 10.09.02» . plan9.bell-labs.com . Архивировано из оригинала 18 декабря 2002 года . Проверено 14 июня 2021 г.
- ^ «Лицензия с открытым исходным кодом Plan 9 — Версия 1.2 — 29.10.00» . plan9.bell-labs.com . Архивировано из оригинала 6 декабря 2000 года . Проверено 14 июня 2021 г.
- ^ «Лицензия с открытым исходным кодом Plan 9 — Версия 1.1 — 20.09.00» . plan9.bell-labs.com . Архивировано из оригинала 26 октября 2000 года . Проверено 14 июня 2021 г.
- ^ «Лицензионное соглашение с открытым исходным кодом Plan 9» . plan9.bell-labs.com . Архивировано из оригинала 16 августа 2000 года . Проверено 14 июня 2021 г.
- ^ Jump up to: а б с Раймонд, Эрик С. (17 сентября 2003 г.). «План 9: Каким было будущее» . Искусство программирования UNIX . Аддисон-Уэсли . ISBN 0-13-142901-9 . Проверено 7 мая 2007 г.
- ^ Робертсон, Джеймс (16 июля 2011 г.). «План 9 разветвлен, продолжается как 9front» . ОСНовости . Проверено 31 декабря 2011 г.
- ^ Jump up to: а б с «9атом» . Архивировано из оригинала 26 июля 2013 г. Проверено 11 ноября 2011 г.
- ^ «От изобретателей системы UNIX выходит Plan 9 из Bell Labs» (Пресс-релиз). Люсент Технологии. 18 июля 1995 г. Архивировано из оригинала 9 февраля 2006 г.
- ^ Макилрой, Дуг (март 1995 г.). «Предисловие» . Bell Labs (2-е изд.). Люсент Технологии . Проверено 26 февраля 2016 г.
- ^ Провен, Лиам (29 марта 2022 г.). «Странный мир операционных систем, отличных от C» . www.theregister.com . Проверено 1 сентября 2022 г.
- ^ Ли, Ивонн Л. (24 июля 1995 г.). «AT&T Bell Labs поставляет ОС Plan 9 для встраиваемых систем» . Инфомир .
- ^ Понтин, Джейсон (19 февраля 1996 г.). «AT&T раскрывает планы относительно конкурента Java» . Инфомир . п. 3.
- ^ Jump up to: а б «Bell Labs: Полное руководство — история, продукция, основание и многое другое» . История-Компьютер . 14.11.2021 . Проверено 1 сентября 2022 г.
- ^ Jump up to: а б с Лоли-Керу, Евгения (29 апреля 2002 г.). «Bell Labs выпускает новую версию Plan 9» . ОСНовости . Проверено 31 декабря 2011 г.
- ^ «Как внести свой вклад» . Лаборатории Белла . Люсент Технологии . Проверено 30 ноября 2011 г.
- ^ «Будем в курсе событий» . Лаборатории Белла . Люсент Технологии . Проверено 24 июля 2019 г.
- ^ «План 9 — Дополнительное программное обеспечение» . 2009 . Проверено 06 марта 2016 г.
- ^ Уэлдон, Маркус (23 марта 2021 г.). «План 9 от Bell Labs в киберпространстве!» . Лаборатория Nokia Bell . Проверено 23 марта 2021 г.
- ^ Шарвуд, Саймон. «Bell Labs передает авторские права на влиятельную ОС Plan 9 новому фонду» . Регистр . Проверено 24 марта 2021 г.
- ^ «Вопрос-ответ 1 — Знакомство с 9front» . fqa.9front.org . Проверено 15 февраля 2018 г.
- ^ Доказано, Лиам. «Выпущена новая версия вилки Plan 9 9front» . Регистр . Проверено 5 ноября 2022 г.
- ^ «Харви ОС» . harvey-os.org . Проверено 15 февраля 2018 г.
- ^ «Жеанна» . jehanne.h--k.it/ . Проверено 8 января 2023 г.
- ^ «Анонс первого релиза для широкой публики» . 9 фанатов. 16 июля 1995 г. Архивировано из оригинала 6 июля 2008 г.
- ^ Jump up to: а б Маллендер, Сапе Дж.; Янсен, Пьер Г. (26 февраля 2004 г.). «Реальное время в реальной операционной системе» . В Герберте, Эндрю Дж.; Сперк Джонс, Карен (ред.). Компьютерные системы: теория, технологии и приложения: дань уважения Роджеру Нидэму . Springer Science+Business Media . п. 211. ИСБН 978-0-387-20170-2 . Проверено 24 декабря 2011 г.
- ^ Хэнкок, Брайан (2003). «Изобретение Unix заново: введение в операционную систему Plan 9». Библиотека высоких технологий . 21 (4). МКБ УП: 471–76. дои : 10.1108/07378830310509772 .
- ^ Jump up to: а б с д и Пресотто, Дэйв; Пайк, Роб ; Томпсон, Кен ; Трики, Ховард. План 9. Распределенная система . Учеб. Весна 1991 г., конференция EuroOpen. CiteSeerX 10.1.1.41.9192 .
- ^ Jump up to: а б с Пайк, Р .; Пресотто, Д.; Томпсон, К .; Трики, Х.; Уинтерботтом, П. «Использование пространств имен в Плане 9» . Лаборатории Белла . Проверено 26 февраля 2016 г.
- ^ Jump up to: а б Уэлч, Брент (1994). «Сравнение трех архитектур распределенных файловых систем: Vnode, Sprite и Plan 9». Вычислительные системы . 7 (2): 175–199. CiteSeerX 10.1.1.46.2817 .
- ^ Plan 9 , том 1 Руководство программиста –
- ^ Jump up to: а б с д и ж Перейра, Уриэль М. (2006). Выпуск Unix Spirit Free: Plan 9 от Bell Labs ( AVI ) . ФОСДЕМ . Проверено 2 декабря 2011 г.
- Уриэль. «Свободный дух Unix: План 9 от Bell Labs» (PDF) . Лаборатории Белла . Архивировано из оригинала (PDF) 28 ноября 2007 г. Проверено 14 ноября 2007 г.
- ^ Jump up to: а б Миннич, Рон (2005). «Почему План 9 еще не умер и чему мы можем научиться из него» (PDF) . Лос-Аламосская национальная лаборатория . Архивировано из оригинала (PDF) 25 февраля 2016 г. Проверено 26 февраля 2016 г.
- ^ Jump up to: а б Валери, Аврора (25 марта 2009 г.). «Объединение файловых систем: Реализации, часть I» . LWN.net . Проверено 5 декабря 2011 г.
- ^ Jump up to: а б Пендри, Ян-Симон; МакКьюсик, Маршалл Кирк (1995). Union Mounts в 4.4BSD-Lite . Учеб. Зимняя конференция USENIX .
- ^ Дафф, Том. «18». Rc — План 9 «Шелл» .
{{cite book}}
:|work=
игнорируется ( помощь ) ( PDF ); - ^ Jump up to: а б «Трансляция команд UNIX в Plan 9» . Лаборатории Белла . Люсент Технологии . Проверено 2 декабря 2011 г.
- ^ Пайк, Роб (30 апреля 2003 г.). «История UTF-8» . Проверено 27 апреля 2006 г.
- ^ Понедельник, Кен (январь 1999 г.). Обработка информации CJKV . О'Рейли Медиа . п. 466 . ISBN 978-1-56592-224-2 . Проверено 23 декабря 2011 г.
- ^ Кокс, Р.; Гросс, Э.; Пайк, Р .; Пресотто, Д.; Куинлан, С. «Безопасность в Плане 9» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
- ^ Jump up to: а б с Хадсон, Эндрю (19 июля 2006 г.). «Исследование операционной системы Plan 9» . ОСНовости . Проверено 31 декабря 2011 г.
- ^ Jump up to: а б «Интервью с Рассом Коксом» . Настройка . Использует это. 09.04.2011. Архивировано из оригинала 28 декабря 2011 г. Проверено 1 января 2012 г.
- ^ Диксон, Род (2004). Закон об открытом программном обеспечении . Артех Хаус . п. 213. ИСБН 978-1-58053-719-3 . Проверено 25 декабря 2011 г.
- ^ Томпсон, Кен (февраль 1992 г.). «Новый компилятор C» (PDF) . Информационный бюллетень австралийской группы пользователей UNIX Systems . 13 (1). Кенсингтон , Австралия : AUUG : 31–41. ISSN 1035-7521 . Проверено 25 декабря 2011 г.
- ^ Пайк, Роб. «Рио: Проектирование параллельной оконной системы» (PDF) . Проверено 8 марта 2013 г.
- ^ Plan 9 , том 1 Руководство программиста –
- ^ Трики, Ховард. «APE — среда ANSI/POSIX» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
- ^ «Эмуляция Linux» . Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
- ^ Форд, Брайан; Кокс, Расс (2008). Vx32: облегченная песочница на уровне пользователя на платформе x86 . USENIX Annual Tech. Конф. стр. 293–306. CiteSeerX 10.1.1.212.9353 .
- ^ Роско, Тимоти (1995). Структура мультисервисной операционной системы (PDF) (доктор философии). Кембриджский университет. стр. 22–23.
- ^ Jump up to: а б Мирчовский, Андрей; Симмондс, Роб; Миннич, Рон (2004). План 9 — интегрированный подход к грид-вычислениям . Учеб. 18-й Международный симпозиум по параллельной и распределенной обработке. IEEE. CiteSeerX 10.1.1.97.122 .
- ^ Jump up to: а б «Оконный менеджер улучшен 2» . suckless.org . Архивировано из оригинала 31 декабря 2011 г. Проверено 2 января 2012 г.
[wmii] имеет интерфейс файловой системы 9p и поддерживает классическое и мозаичное (acme-подобное) управление окнами.
- ^ Торвальдс, Линус (1999). «Грань Linux» . Открытые исходные коды: голоса революции открытого исходного кода . О'Рейли. ISBN 1-56592-582-3 .
- ^ «Glendix: привнесение красоты Plan 9 в Linux» . Проверено 1 декабря 2011 г.
- ^ «План 9 из Gentoo: Plan 9 в сочетании с Gentoo» . Генту Линукс . Архивировано из оригинала 20 декабря 2012 г. Проверено 1 декабря 2011 г.
- ^ «Оконный менеджер 9wm» . 9 Вт . Проверено 2 января 2012 г.
9wm — это оконный менеджер X, который пытается имитировать оконный менеджер Plan 9 8-1/2, насколько это возможно, в пределах ограничений, налагаемых X.
- ^ «9сетка» . Лаборатории Белла . Люсент Технологии . Архивировано из оригинала 14 марта 2006 г. Проверено 28 марта 2006 г.
- ^ Баллестерос, Франциско Дж.; Гвардиола, Горка; Сориано, Энрике; Леал Альгара, Катя (2005). Традиционные системы могут хорошо работать для широкомасштабных приложений. Пример из практики: Plan 9 от Bell Labs становится повсеместным . Международная конференция IEEE. по всеобъемлющим вычислениям и коммуникациям. CiteSeerX 10.1.1.109.8131 .
- ^ «Vita Nuova поставляет Inferno Grid компании Evotec OAI» (PDF) (пресс-релиз). Новая Жизнь . 18 мая 2004 г. Проверено 28 марта 2006 г.
- ^ «Библиотеки Университета Рутгерса устанавливают Inferno Data Grid» (PDF) (пресс-релиз). Вита Нуова . 12 мая 2004 г. Проверено 28 марта 2006 г.
- ^ «Факультет биологии Йоркского университета устанавливает сетку данных Inferno Vita Nuova» (PDF) (пресс-релиз). Вита Нуова . 04 мая 2004 г. Проверено 28 марта 2006 г.
- ^ «9FRONT.ORG ПЛАН СОВЕРШИЛСЯ» . Проверено 14 октября 2021 г.
- ^ Хейворд, Дэвид (9 мая 2013 г.). «Операционные системы Raspberry Pi: 5 обзоров и оценок» . ТехРадар . Архивировано из оригинала 7 июня 2013 года . Проверено 20 апреля 2014 г.
- ^ «Как установить Plan 9 на Raspberry Pi» . еЛинукс . Проверено 16 ноября 2014 г.
- ^ Хурадо, Альваро; Фернандес, Рафаэль; дю Коломбье, Давид; Миннич, Рон; Нюрхинен, Аки; Флорен, Джон. Харви (PDF) . Сессия USENIX ATC BOF.
- ^ «Что нового в WSL в Windows 10 версии 1903?» . Инструменты командной строки Windows для разработчиков . 16 февраля 2019 г.
- ^ «9атом» . Архивировано из оригинала 11 ноября 2020 года.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «9атом» . quanstro.net . Архивировано из оригинала 9 июня 2018 года . Проверено 15 июня 2023 г.
- ^ «9атом» . АрхивОС . 3 мая 2022 г. Проверено 15 июня 2023 г.
- ^ «9FRONT.ORG ПЛАН СОВЕРШИЛСЯ» . 9front.org .
- ^ «9Наследие» . www.9legacy.org .
- ^ «Акарос» . сайт akaros.org .
- ^ «Харви ОС» . harvey-os.org .
- ^ «ЖеханнеОС» . 17 ноября 2021 г.
- ^ «НИКС» . 21 ноября 2020 г.
- ^ «узел9» . Гитхаб . 14 января 2022 г.
- ^ «План Б» . 26 ноября 2020 г.
- ^ "Скачать" . План 9 вики . 9p.io. Проверено 15 июня 2023 г.
- ^ Арбалетчики, Фрэнсис Дж.; Музкиз, Горка Гвардиола; Альгара, Катя Леаль; Сориано, Генри; из Гераса Кира — Петр; Кастро, Ева М.; Леонард, Эндрю; Аревало, Серджио (февраль 2004 г.). «План Б: Ящики для сетевых ресурсов » Журнал Бразильского компьютерного общества . 10 (1): 33–4 дои : 10.1007/BF03192352 . S2CID 6766935 .
- ^ Баллестерос, Ф.Дж.; Сориано, Э.; Леал, К.; Гвардиола, Г. (2006). «План Б: Операционная система для повсеместных вычислительных сред» . Четвертая ежегодная международная конференция IEEE по всеобъемлющим вычислениям и коммуникациям (PERCOM'06) . стр. 126–135. дои : 10.1109/PERCOM.2006.43 . ISBN 0-7695-2518-0 . S2CID 1730651 . Проверено 15 июня 2023 г.
- ^ Шарвуд, Саймон (14 февраля 2014 г.). «Plan 9 выходит из лицензионного пространства Lucent» . Регистр . Проверено 20 апреля 2014 г.
- ^ «Фонд План9» . plan9foundation.org . Проверено 13 октября 2021 г.
Внешние ссылки
[ редактировать ]- 9p.io : Архивированное зеркало оригинального официального веб-сайта Plan 9 по адресу plan9.bell-labs.com. Архивировано 24 мая 2021 г. на Wayback Machine.
- 9fans : Полуофициальный список рассылки для пользователей и разработчиков Plan 9.
- Фонд Плана 9
- План 9 от Bell Labs
- программное обеспечение 1992 года
- Операционные системы ARM
- Вычислительные платформы
- Распределенная вычислительная архитектура
- Встроенные операционные системы
- Свободное программное обеспечение, операционные системы
- Дистрибутивы операционной системы, загружаемые с носителя, доступного только для чтения.
- Программные проекты
- Операционные системы PowerPC
- Операционные системы MIPS
- Операционные системы X86-64
- Операционные системы X86