Plan 9 от Bell Labs - это распределенная операционная система , созданная в Центре компьютерных исследований (CSRC) Bell Labs в середине 1980-х годов и основанная на концепциях UNIX, впервые разработанных там в конце 1960-х. Окончательный официальный релиз был в начале 2015 года.
Разработчик | Plan 9 Foundation, преемник Bell Labs |
---|---|
Написано в | Диалект ANSI C |
Рабочее состояние | Текущие [2] [3] |
Исходная модель | Открытый источник |
Первый выпуск | 1992 (университеты) / 1995 (широкая публика) |
Окончательный релиз | Издание четвертое / 10 января 2015 г . [4] |
Репозиторий | 9p |
Маркетинговая цель | Исследование операционных систем, сетевые среды, универсальное использование |
Доступно в | английский |
Метод обновления | реплика |
Платформы | x86 / Vx32 , x86-64 , MIPS , DEC Alpha , SPARC , PowerPC , ARM |
Тип ядра | Гибридное ядро |
Под влиянием | Исследование Unix , Кембриджская распределенная вычислительная система [6] |
Пользовательский интерфейс по умолчанию | rio / rc |
Лицензия | 2021: MIT [7] 2014: только GPL-2.0 2002: LPL-1.02 |
Преемник | Inferno Прочие производные и вилки |
Официальный веб-сайт | p9f |
В соответствии с планом 9 метафора UNIX « все является файлом» расширяется с помощью широко распространенной сетевой файловой системы , а терминальный ввод-вывод с адресацией курсора , лежащий в основе UNIX-подобных операционных систем, заменен оконной системой и графическим пользователем. интерфейс без адресации курсора, хотя rc , оболочка Plan 9 , является текстовой.
Название Plan 9 от Bell Labs является отсылкой к культовому научно-фантастическому фильму Z-фильма Эда Вуда 1959 года « План 9 из космоса» . [8] (Название талисмана проекта, «Гленда, кролик из плана 9», вероятно, является отсылкой к фильму Вуда « Глен или Гленда» .) Система продолжает использоваться и развиваться исследователями операционных систем и любителями. [9] [10]
История
План 9 из Bell Labs была первоначально разработана, начиная с конца 1980 - х годов, [10] членами исследовательского центра вычислительной науки в Bell Labs, одной и той же группы , которая первоначально разработанная Unix и язык программирования Си . [11] Первоначально команду Plan 9 возглавляли Роб Пайк , Кен Томпсон , Дэйв Пресотто и Фил Уинтерботтом при поддержке Денниса Ричи в качестве главы отдела исследований вычислительной техники. На протяжении многих лет в проект внесли свой вклад многие известные разработчики, в том числе Брайан Керниган , Том Дафф , Дуг Макилрой , Бьярн Страуструп и Брюс Эллис . [12]
Plan 9 заменил Unix в качестве основной платформы Bell Labs для исследования операционных систем. Он исследовал несколько изменений в исходной модели Unix, которые облегчают использование и программирование системы, особенно в распределенных многопользовательских средах. После нескольких лет разработки и внутреннего использования Bell Labs поставила операционную систему в университеты в 1992 году. Три года спустя Plan 9 стал доступен для коммерческих сторон AT&T через книжное издательство Harcourt Brace . При стоимости исходных лицензий 350 долларов компания AT&T нацелена на рынок встраиваемых систем, а не на компьютерный рынок в целом. Ричи прокомментировал, что разработчики не ожидали «значительного вытеснения», учитывая, насколько устоялись другие операционные системы. [13]
К началу 1996 года проект плана 9 был «поставлен на задний план» по AT & T в пользу Inferno , призван стать конкурентом компании Sun Microsystems " платформы Java . [14] В конце 1990-х новый владелец Bell Labs, компания Lucent Technologies, прекратила коммерческую поддержку проекта, и в 2000 году третий выпуск был распространен под лицензией с открытым исходным кодом . Четвертый выпуск под новой лицензией свободных программ произошел в 2002 году [15].
Сообщество пользователей и разработчиков, включая нынешних и бывших сотрудников Bell Labs , выпускало небольшие ежедневные выпуски в виде образов ISO . Bell Labs организовала разработку. [16] Дерево исходных кодов разработки доступно по протоколам 9P и HTTP и используется для обновления существующих установок. [17] В дополнение к официальным компонентам ОС, включенным в ISO, Bell Labs также содержит репозиторий приложений и инструментов внешней разработки. [18]
Поскольку Bell Labs в последние годы перешла к более поздним проектам, разработка официальной системы Plan 9 была остановлена. 23 марта 2021 года разработка возобновилась после передачи авторских прав от Bell Labs к Plan 9 Foundation. [7] [19] [20] Неофициальная разработка системы также продолжается на форке 9front, где активные участники предоставляют ежемесячные сборки и новые функции. До сих пор вилка 9front предоставляла системные драйверы Wi-Fi , аудиодрайверы , поддержку USB и встроенный игровой эмулятор, а также другие функции. [21] Другие недавние операционные системы, вдохновленные Plan 9, включают Harvey OS [22] и Jehanne OS. [23]
Дата | Релиз | Комментарий |
---|---|---|
1992 г. | Plan 9 1-е издание | Выпущено Bell Labs в университеты |
1995 г. | Plan 9 2-е издание | Выпущено Bell Labs для некоммерческих целей [24] |
2000 г. | План 9 3-е изд. ( Бразилия ) | Выпущено Lucent Technologies по лицензии с открытым исходным кодом |
2002 г. | Plan 9 4-е издание | Выпущено Lucent Technologies по новой лицензии на бесплатное программное обеспечение |
Концепции дизайна
—Сейп Дж. Маллендер, Пьер Г. Янсен.
Реальное время в реальной операционной системе [25]
Plan 9 - это распределенная операционная система , предназначенная для того, чтобы сеть из разнородных и географически разделенных компьютеров функционировала как единая система. [26] В типичной установке Plan 9 пользователи работают на терминалах, на которых запущена оконная система rio , и получают доступ к серверам ЦП, которые обрабатывают процессы с интенсивными вычислениями. Постоянное хранение данных обеспечивается дополнительными сетевыми хостами, выступающими в качестве файловых серверов и архивных хранилищ. [27]
Его разработчики заявляют, что,
[t] В основе системы лежат две идеи: пространство имен для каждого процесса и простой протокол файловой системы, ориентированный на сообщения.
- Pike et al. [28]
Первая идея (пространство имен для каждого процесса) означает, что, в отличие от большинства операционных систем, каждый процесс (запущенные программы) имеет собственное представление о пространстве имен , соответствующее тому, что другие операционные системы называют файловой системой; одно имя пути может относиться к разным ресурсам для разных процессов. Потенциальная сложность этой установки контролируется набором обычных мест размещения общих ресурсов. [29] [30]
Вторая идея (файловая система, ориентированная на сообщения) означает, что процессы могут предлагать свои услуги другим процессам, предоставляя виртуальные файлы, которые появляются в пространстве имен других процессов. В клиентском процессе в вводе / вывод на такой файл становится межпроцессным взаимодействием между двумя процессами. Таким образом, Plan 9 обобщает представление Unix о файловой системе как о центральной точке доступа к вычислительным ресурсам. Он переносит идею Unix о файлах устройств для обеспечения доступа к периферийным устройствам ( мыши , съемные носители и т. Д.) И возможность монтировать файловые системы, находящиеся на физически разных файловых системах, в иерархическое пространство имен, но добавляет возможность монтировать соединение с сервером. программа, которая использует стандартизованный протокол и рассматривает свои службы как часть пространства имен.
Например, исходная оконная система, называемая 8½, использовала эти возможности следующим образом. Plan 9 представляет пользовательский интерфейс на терминале с помощью трех псевдофайлов: мыши , которую программа может читать для получения уведомлений о движениях мыши и щелчках кнопок, cons , которые можно использовать для текстового ввода / вывода, и bitblt , запись в который приводит к графическим операциям (см. bit blit ). Оконная система мультиплексирует эти устройства: при создании нового окна для запуска какой-либо программы она сначала устанавливает новое пространство имен, в котором мышь , минусы и bitblt связаны с самим собой, скрывая фактические файлы устройства, к которым он сам имеет доступ. Таким образом, оконная система принимает все команды ввода и вывода от программы и обрабатывает их соответствующим образом, отправляя вывод на фактическое экранное устройство и предоставляя программе, в которой в данный момент находится фокус, ввод с клавиатуры и мыши. [27] Программе не нужно знать, взаимодействует ли она напрямую с драйверами устройств операционной системы или с оконной системой; ему нужно только предположить, что его пространство имен настроено так, чтобы эти специальные файлы обеспечивали тип ввода и принимали тип сообщений, которые он ожидает.
Распределенная работа Plan 9 также зависит от пространств имен для каждого процесса, что позволяет процессам клиента и сервера обмениваться данными между машинами только что описанным способом. Например, Команда cpu запускает удаленный сеанс на вычислительном сервере. Команда экспортирует часть своего локального пространства имен, включая устройства терминала пользователя ( мышь , минусы , bitblt ) на сервер, чтобы удаленные программы могли выполнять ввод / вывод с помощью мыши, клавиатуры и дисплея терминала, сочетая эффекты удаленного входа в систему и общую сетевую файловую систему. [27] [28]
Протокол 9P
Все программы, которые хотят предоставлять услуги в виде файлов другим программам, используют единый протокол, называемый 9P. По сравнению с другими системами это уменьшает количество пользовательских интерфейсов программирования . 9P - это общий, не зависящий от среды, байтовый протокол, который обеспечивает доставку сообщений между сервером и клиентом. [31] Протокол используется для обращения к процессам, программам и данным и связи с ними, включая как пользовательский интерфейс, так и сеть. [32] С выходом 4-го издания он был изменен и переименован в 9P2000. [15]
В отличие от большинства других операционных систем, Plan 9 не предоставляет специальных интерфейсов прикладного программирования (таких как сокеты Berkeley , ресурсы X или системные вызовы ioctl ) для доступа к устройствам. [31] Вместо этого драйверы устройств Plan 9 реализуют свой интерфейс управления в виде файловой системы, так что к оборудованию можно получить доступ с помощью обычных операций ввода / вывода файлов, чтения и записи . Следовательно, совместное использование устройства в сети может быть выполнено путем установки соответствующего дерева каталогов на целевой машине. [8]
Объединенные каталоги и пространства имен
Plan 9 позволяет пользователю собирать файлы (называемые именами ) из разных деревьев каталогов в одном месте. Результирующий объединенный каталог ведет себя как объединение базовых каталогов (порядок объединения можно контролировать); если составляющие каталоги содержат файлы с одинаковыми именами, список объединенного каталога ( ls или lc ) просто сообщит о повторяющихся именах. [33] Разрешение одного имени пути выполняется сверху вниз: если каталоги сверху и дно объединены в ты с сначала наверху , затем u / имя обозначает top / name, если он существует, дно / имя, только если оно существует и top / name не существует , и нет файла, если ни один из них не существует. Рекурсивное объединение подкаталогов не выполняется, поэтому, если top / subdir существует, файлы в bottom / subdir недоступны через объединение. [34]
Каталог union может быть создан с помощью команда привязки :
; привязать / рука / корзина / корзина; привязать -a / acme / bin / arm / bin; привязать -b / usr / alice / bin / bin
В приведенном выше примере / arm / bin устанавливается на / bin , содержимое / arm / bin заменяет предыдущее содержимое / bin . Acme «s Каталог bin затем объединяется после / bin и личный Каталог bin уже смонтирован union. Когда файл запрашивается у / bin сначала ищется в / usr / alice / bin , затем в / arm / bin , а затем, наконец, в / acme / bin / arm .
Таким образом, отдельные пространства имен процессов заменяют понятие пути поиска в оболочке. В то время как оболочки Unix имеют список каталогов для поиска программ по команде, оболочка Plan 9 просматривает только каталог. / bin ; добавление команд осуществляется путем связывания нескольких каталогов вместе, чтобы они отображались как единый / bin . [27]
Более того, ядро может хранить отдельные таблицы монтирования для каждого процесса [25] и, таким образом, может предоставить каждому процессу свое собственное пространство имен файловой системы . Пространства имен процессов могут быть созданы независимо, и пользователь может работать одновременно с программами, имеющими разнородные пространства имен. [28] Пространства имен можно использовать для создания изолированной среды, подобной chroot , но более безопасным способом. [31]
Архитектура каталог объединения Plan 9 вдохновила 4.4BSD и Linux накидной файловой системы реализации, [33] , хотя разработчики монтажного объекта BSD накидного нашли нерекурсивное объединение каталогов в Plan 9 «слишком ограничительные для общего назначения». [34]
Специальная виртуальная файловая система
/ proc
Вместо системных вызовов специально для управления процессами Plan 9 предоставляет Файловая система / proc . Каждый процесс отображается в виде каталога, содержащего информацию и управляющие файлы, которыми можно управлять с помощью обычных системных вызовов ввода-вывода файлов. [36]
Подход файловой системы позволяет управлять процессами Plan 9 с помощью простых инструментов управления файлами, таких как ls и cat ; однако процессы нельзя копировать и перемещать как файлы. [6]
/сеть
Plan 9 не имеет специализированных системных вызовов или ioctl для доступа к сетевому стеку или сетевому оборудованию. Вместо этого Используется файловая система / net . Сетевые соединения контролируются чтением и записью управляющих сообщений в управляющие файлы. Подкаталоги, такие как / net / tcp и / net / udp используются как интерфейс для соответствующих протоколов. [6]
Юникод
Чтобы упростить управление кодировками символов , Plan 9 использует Unicode во всей системе. Первоначальная реализация Unicode была ISO 10646 . Кен Томпсон изобрел UTF-8, который стал собственной кодировкой в Plan 9. Вся система была преобразована для общего использования в 1992 году. [37] UTF-8 сохраняет обратную совместимость с традиционными строками с завершающим нулем , обеспечивая более надежную обработку информации и связывание многоязычных строковых данных с конвейерами Unix между несколькими процессами. Использование единой кодировки UTF-8 с символами для всех культур и регионов устраняет необходимость переключения между наборами кодов. [38]
Объединение концепций дизайна
Хотя концепции дизайна Plan 9 интересны сами по себе, они должны были быть наиболее полезными в сочетании друг с другом. Например, для реализации трансляции сетевых адресов (NAT) сервер, каталог союза может быть создан, наложенный на маршрутизатор «ы / net дерево каталогов с собственным / нетто . Аналогичным образом виртуальная частная сеть (VPN) может быть реализована путем наложения в объединенном каталоге файла / net с удаленного шлюза с использованием защищенного 9P через общедоступный Интернет. Справочник союза с Иерархию и фильтры / net можно использовать для изолирования ненадежного приложения или для реализации брандмауэра . [31] Таким же образом распределенная вычислительная сеть может состоять из объединенного каталога / proc иерархии с удаленных хостов, что позволяет взаимодействовать с ними как с локальными.
При совместном использовании эти функции позволяют собрать сложную распределенную вычислительную среду путем повторного использования существующей иерархической системы имен. [6]
Программное обеспечение для Plan 9
Благодаря дизайну системы, большинство задач в Plan 9 может быть выполнено с помощью утилит ls , cat , grep , cp и rm в сочетании с оболочкой rc ( оболочка Plan 9 по умолчанию).
Factotum - это сервер аутентификации и управления ключами для Plan 9. Он обрабатывает аутентификацию от имени других программ, так что секретные ключи и детали реализации должны быть известны только Factotum. [39]
Графические программы
В отличие от Unix , Plan 9 был разработан с учетом графики. [32] После загрузки терминал Plan 9 будет запускать оконную систему rio , в которой пользователь может создавать новые окна, отображающие rc . [40] Графические программы, вызываемые из этой оболочки, заменяют ее в своем окне.
Водопроводчик обеспечивает взаимодействие между процессами механизм , который позволяет общесистемной гиперссылок.
Сэм и Акме - текстовые редакторы Plan 9. [41]
Система хранения
Plan 9 поддерживает файловые системы Kfs, Paq, Cwfs, FAT и Fossil . Последний был разработан в Bell Labs специально для Plan 9 и обеспечивает возможность хранения моментальных снимков. Его можно использовать напрямую с жестким диском или с Venti , архивной файловой системой и системой постоянного хранения данных.
Разработка программного обеспечения
Пакет распространения для Plan 9 включает специальные варианты компилятора и языки программирования, а также предоставляет специально подобранный набор библиотек вместе с системой оконного пользовательского интерфейса , характерной для Plan 9. [42] Большая часть системы написана на диалекте C ( ANSI). C с некоторыми расширениями и некоторыми другими опущенными функциями). Компиляторы для этого языка были специально созданы с учетом переносимости; по словам их автора, они «быстро компилируются, медленно загружаются и производят объектный код среднего качества». [43]
Одновременно язык программирования под названием Alef был доступен в двух первых изданиях, но затем был исключен по причинам технического обслуживания и заменены заправочной библиотеку C. [44] [45]
Совместимость с Unix
Хотя Plan 9 должен был стать дальнейшим развитием концепций Unix, совместимость с уже существующим программным обеспечением Unix никогда не была целью проекта. Многие утилиты командной строки Plan 9 имеют имена своих аналогов в Unix, но работают по-разному. [35]
Plan 9 может поддерживать приложения POSIX и может эмулировать интерфейс сокетов Berkeley через среду ANSI / POSIX (APE), которая реализует интерфейс, близкий к ANSI C и POSIX , с некоторыми общими расширениями (собственные интерфейсы Plan 9 C не соответствуют ни одному стандарту). Он также включает оболочку, совместимую с POSIX. Авторы APE утверждают, что использовали его для переноса X Window System (X11) на Plan 9, хотя они не поставляют X11, «потому что поддержка его должным образом - слишком сложная задача». [46] Некоторые двоичные файлы Linux можно использовать с помощью приложения "linuxemu" (эмулятор Linux); тем не менее, эта работа все еще продолжается. [47] И наоборот, виртуальная машина vx32 позволяет слегка модифицированному ядру Plan 9 работать как пользовательский процесс в Linux, поддерживая неизмененные программы Plan 9. [48]
Прием
Сравнение с современными операционными системами
В 1991 году разработчики Plan 9 сравнили свою систему с другими операционными системами начала девяностых по размеру, показав, что исходный код минимальной («рабочей, хотя и не очень полезной») версии был менее одной пятой размера Маха. микроядро без каких-либо драйверов устройств (5899 или 4622 строки кода для Plan 9, в зависимости от метрики, против 25530 строк). Полное ядро состоит из 18000 строк кода. [27] (По подсчетам за 2006 год, ядро тогда состояло примерно из 150 000 строк, но это сравнивалось с более чем 4,8 миллионами в Linux . [31] )
В сообществе исследователей операционных систем, а также в мире коммерческих Unix, другие попытки достичь распределенных вычислений и удаленного доступа к файловой системе были предприняты одновременно с усилиями по проектированию Plan 9. К ним относятся сетевая файловая система и связанная с ней архитектура vnode, разработанная в Sun Microsystems , а также более радикальные отходы от модели Unix, такие как Sprite OS от Калифорнийского университета в Беркли . Разработчик Sprite Брент Велч отмечает, что архитектура vnode SunOS ограничена по сравнению с возможностями Plan 9, поскольку она не поддерживает чисто удаленный доступ к устройствам и удаленное межпроцессное взаимодействие, хотя и могла бы иметь уже существующие доменные сокеты UNIX (которые " по существу может использоваться для именования серверов пользовательского уровня »), интегрированный с архитектурой vnode. [29]
Одна из критических замечаний по поводу «все является файлом», дизайн Plan 9 с передачей текстовых сообщений, указал на ограничения этой парадигмы по сравнению с типизированными интерфейсами объектно-ориентированной операционной системы Sun , Spring :
Plan 9 ограничивает все, чтобы все выглядело как файл. В большинстве случаев реальный тип интерфейса представляет собой протокол сообщений, которые должны быть записаны в файловый дескриптор и считаны из него. Это сложно указать и задокументировать, и он вообще запрещает любую автоматическую проверку типов , за исключением ошибок файлов во время выполнения. (...) [A] имя пути относительно неявного корневого контекста процесса - единственный способ назвать службу. Привязать имя к объекту можно только путем указания существующего имени для объекта в том же контексте, что и новое имя. Таким образом, ссылки на интерфейсы просто не могут передаваться между процессами, не говоря уже о сетях. Вместо этого общение должно полагаться на соглашения, которые подвержены ошибкам и не масштабируются.
- Роско; акцент в оригинале. [49]
Более позднее ретроспективное сравнение Plan 9, Sprite и третьей современной распределенной исследовательской операционной системы, Amoeba , показало, что
среды, которые они создают [Amoeba и Sprite], тесно связаны с ОС, что затрудняет взаимодействие с внешними службами. Такие системы страдают от радикального отхода от модели UNIX, которая также препятствует переносимости уже существующего программного обеспечения на платформу (...). Отсутствие разработчиков, очень небольшой набор поддерживаемого оборудования и небольшая, даже по сравнению с Plan 9, база пользователей также значительно замедлили внедрение этих систем (...). Оглядываясь назад, можно сказать, что Plan 9 была единственной исследовательской распределенной ОС того времени, которой удалось привлечь разработчиков и достаточно долго использовать в коммерческих проектах, чтобы гарантировать свое существование по сей день.
- Мирцовски, Симмондс и Минних [50]
Влияние
Plan 9 продемонстрировал, что целостная концепция Unix - что каждый системный интерфейс может быть представлен в виде набора файлов - может быть успешно реализована в современной распределенной системе. [40] Некоторые функции Plan 9, такие как кодировка символов UTF-8 Unicode, были реализованы в других операционных системах. Unix-подобные операционные системы, такие как Linux, реализовали 9P, файловую систему Plan 9, и приняли функции rfork , механизма создания процессов Plan 9. [52] Кроме того, в Plan 9 из пользовательского пространства некоторые приложения и инструменты Plan 9, включая редакторы sam и acme, были перенесены на системы Unix и Linux и достигли определенного уровня популярности. Некоторые проекты стремятся заменить программы операционной системы GNU , окружающие ядро Linux, программами операционной системы Plan 9. [53] [54] 9wm оконный менеджер был вдохновлен 8½ , старший оконная система Plan 9; [55] На wmii также сильно повлиял Plan 9. [51] В исследованиях в области информатики Plan 9 использовался в качестве платформы для распределенных вычислений [56] [50] и как средство исследования повсеместных вычислений без промежуточного программного обеспечения . [57] В коммерции Plan 9 лежит в основе систем хранения Coraid . Однако Plan 9 никогда не приближался по популярности к Unix и был в первую очередь инструментом исследования:
[I] Похоже, Plan 9 провалился просто потому, что он не был достаточно убедительным улучшением Unix, чтобы вытеснить своего предка. По сравнению с Plan 9, Unix скрипит и лязгает и имеет явные пятна ржавчины, но он выполняет свою работу достаточно хорошо, чтобы удерживать свои позиции. Здесь есть урок для амбициозных системных архитекторов: самый опасный враг лучшего решения - это существующая кодовая база, которая достаточно хороша.
- Эрик С. Раймонд [8]
Другие факторы, способствовавшие низкому внедрению Plan 9, включают отсутствие коммерческого резервного копирования, небольшое количество приложений для конечных пользователей и отсутствие драйверов устройств . [40] [41]
Сторонники и разработчики Plan 9 утверждают, что проблемы, препятствующие его внедрению, были решены, что его первоначальные цели как распределенной системы, среды разработки и исследовательской платформы были достигнуты и что он пользуется умеренной, но растущей популярностью. [ необходима цитата ] Inferno , благодаря своим размещенным возможностям, был средством переноса технологий Plan 9 в другие системы в качестве размещенной части гетерогенных вычислительных сетей. [58] [59] [60]
Несколько проектов работают над расширением Plan 9, включая 9atom и 9front. Эти форки дополняют Plan 9 дополнительными драйверами оборудования и программным обеспечением, включая улучшенную версию системы электронной почты Upas , компилятор Go , поддержку системы контроля версий Mercurial и другие программы. [10] [61] Plan 9 был перенесен на одноплатный компьютер Raspberry Pi . [62] [63] Проект Харви пытается заменить собственный компилятор Plan 9 C на GCC , чтобы использовать современные инструменты разработки, такие как GitHub и Coverity , и ускорить разработку. [64]
Производные и вилки
Inferno является потомком Plan 9 и разделяет многие концепции дизайна и даже исходный код ядра, особенно в отношении устройств и протокола Styx / 9P2000. Inferno разделяет с Plan 9 наследие Unix от Bell Labs и философию Unix . Многие инструменты командной строки в Inferno были инструментами Plan 9, которые были переведены на Limbo .
- 9atom [65] дополняет дистрибутив Plan 9, добавляя ядро 386 PAE , процессор amd64 и ядро терминала, nupas, дополнительную аппаратную поддержку ПК, IL и fs Кена.
- 9front [66] - это ответвление Plan 9. Он был начат, чтобы восполнить очевидную нехватку выделенных ресурсов для разработки внутри Bell Labs, и в нем накоплены различные исправления и улучшения.
- 9legacy [67] - альтернативный дистрибутив. Он включает набор исправлений, основанный на текущем дистрибутиве Plan 9.
- Akaros [68] разработан для многоядерных архитектур и крупномасштабных SMP-систем.
- Harvey OS [69] - попытка заставить код Plan 9 работать с gcc и clang.
- JehanneOS [70] - экспериментальная ОС, производная от Plan 9. Ее пользовательская среда и модули в основном заимствованы из 9front, ее система сборки - от Harvey OS, а ее ядро является форком 64-разрядного ядра Plan9-9k .
- NIX [71] - это ответвление Plan9, предназначенное для многоядерных систем и облачных вычислений.
- Plan B [72] разработан для работы в распределенных средах, где набор доступных ресурсов различается в разные моменты времени.
Лицензия
Начиная с выпуска четвертого издания в апреле 2002 года [15] полный исходный код Plan 9 от Bell Labs находится в свободном доступе в соответствии с Lucent Public License 1,02, которая считается лицензии с открытым исходным кодом с помощью инициативы Open Source (OSI ), лицензия свободных программ от Free Software Foundation , и она соответствует Руководству по свободному программному обеспечению Debian . [31]
В феврале 2014 года Калифорнийский университет в Беркли получил разрешение от нынешнего держателя авторских прав на Plan 9 - Alcatel-Lucent - на выпуск всего программного обеспечения Plan 9, ранее подпадающего под действие общественной лицензии Lucent, версии 1.02, только под лицензией GPL-2.0 . [73]
23 марта 2021 года право собственности на Plan 9 перешло от Bell Labs к Plan 9 Foundation, и все предыдущие выпуски были переданы на лицензию MIT . [7]
Смотрите также
- Алеф (язык программирования)
- Свидание (план 9)
- Inferno (операционная система)
- Minix
- HelenOS
Рекомендации
- ^ Lucent Technologies (2006). "Гленда, кролик из плана 9" . Проверено 2 декабря 2008 .
- ^ «План 9 Фундамент: Мероприятия» . plan9foundation.org . Проверено 23 марта 2021 года .
- ^ «9легась» . 9legacy.org . Проверено 23 марта 2021 года .
- ^ "plan9checksums" . Bell Labs. Архивировано из оригинала на 2017-06-01 . Проверено 25 июля 2019 .
Сб, 10 янв, 04:04:55 EST 2015 ... plan9.iso.bz2
- ^ Исходный код GPLv2
- ^ а б в г Пайк, Р .; Presotto, D .; Дорвард, S .; Flandrena, B .; Томпсон, К .; Trickey, H .; Уинтерботтом, П. «План 9 от Bell Labs» . Bell Labs . Lucent Technologies . Проверено 26 февраля 2016 .
- ^ а б в Сорас, Энтони. «Перенос плана 9 в фундамент плана 9» . marc.info . Проверено 14 апреля 2020 .
- ^ а б в Раймонд, Эрик С. (17 сентября 2003 г.). «План 9: каким было будущее» . Искусство программирования UNIX . Эддисон-Уэсли . ISBN 0-13-142901-9. Проверено 7 мая 2007 .
- ^ Робертсон, Джеймс (16.07.2011). «План 9 раздвоен, продолжается как 9front» . OSNews . Проверено 31 декабря 2011 .
- ^ а б в «9атом» . Проверено 11 ноября 2011 .
- ^ «Plan 9 от Bell Labs от изобретателей системы UNIX» (пресс-релиз). Lucent Technologies. 1995-07-18. Архивировано из оригинала на 2006-02-09.
- ^ Макилрой, Дуг (март 1995 г.). «Предисловие» . Bell Labs (2-е изд.). Lucent Technologies . Проверено 26 февраля 2016 .
- ^ Ли, Ивонн Л. (24 июля 1995 г.). «AT&T Bell Labs поставляет ОС Plan 9 для встраиваемых систем» . InfoWorld .
- ^ Понтин, Джейсон (19 февраля 1996). «AT&T раскрывает планы конкурента Java» . InfoWorld . п. 3.
- ^ а б в Лоли-Керу, Евгения (29 апреля 2002 г.). «Bell Labs выпускает новую версию Plan 9» . OSNews . Проверено 31 декабря 2011 .
- ^ «Как внести свой вклад» . Bell Labs . Lucent Technologies . Проверено 30 ноября 2011 .
- ^ «Будьте в курсе» . Bell Labs . Lucent Technologies . Проверено 24 июля 2019 .
- ^ «План 9 - Дополнительное ПО» . 2009 . Проверено 6 марта 2016 .
- ^ Велдон, Маркус. «План 9 от Bell Labs в киберпространстве!» . Nokia Bell Labs . Проверено 23 марта 2021 года .
- ^ Шарвуд, Саймон. «Bell Labs передает авторские права на влиятельную ОС Plan 9 новому фонду» . Регистр . Проверено 24 марта 2021 .
- ^ «FQA 1 - Введение в 9front» . fqa.9front.org . Проверено 15 февраля 2018 .
- ^ «Харви О.С.» . harvey-os.org . Проверено 15 февраля 2018 .
- ^ «Жеанна» . jehanne.io . Проверено 15 февраля 2018 .
- ^ «Анонс первого релиза для широкой публики» . 9 фанатов. 1995-07-16. Архивировано из оригинала на 2008-07-06.
- ^ а б Mullender, Sape J .; Янсен, Пьер Г. (26 февраля 2004 г.). «Реальное время в реальной операционной системе» . В Герберте, Эндрю Дж .; Сперк Джонс, Карен (ред.). Компьютерные системы: теория, технология и приложения: дань уважения Роджеру Нидхему . Springer Science + Business Media . п. 211. ISBN. 978-0-387-20170-2. Проверено 24 декабря 2011 .
- ^ Хэнкок, Брайан (2003). «Новое изобретение Unix: введение в операционную систему Plan 9». Библиотека Hi Tech . MCB UP. 21 (4): 471–76. DOI : 10.1108 / 07378830310509772 .
- ^ а б в г д Пресотто, Дэйв; Пайк, Роб ; Томпсон, Кен ; Трики, Ховард. План 9, система распределенная . Proc. Весна 1991 г. Конференция EurOpen. CiteSeerX 10.1.1.41.9192 .
- ^ а б в Пайк, Р .; Presotto, D .; Томпсон, К .; Trickey, H .; Уинтерботтом П. «Использование пространств имен в плане 9» . Bell Labs . Проверено 26 февраля 2016 .
- ^ а б Уэлч, Брент (1994). «Сравнение трех архитектур распределенных файловых систем: Vnode, Sprite и Plan 9». Вычислительные системы . 7 (2): 175–199. CiteSeerX 10.1.1.46.2817 .
- ^ - Руководство программиста Plan 9 , том 1
- ^ а б в г д е Перейра, Уриэль М. (2006). Комплект Unix Spirit Free: Plan 9 от Bell Labs ( AVI ) . FOSDEM . Проверено 2 декабря 2011 . Текстовое резюме (PDF) .
- ^ а б Миннич, Рон (2005). «Почему Plan 9 еще не мертв и чему мы можем научиться из него» (PDF) . Лос-Аламосская национальная лаборатория . Архивировано из оригинального (PDF) 25 февраля 2016 года . Проверено 26 февраля 2016 .
- ^ а б Валери, Аврора (25 марта 2009 г.). «Объединенные файловые системы: реализации, часть I» . LWN.net . Проверено 5 декабря 2011 .
- ^ а б Пендри, Ян-Симон; МакКусик, Маршалл Кирк (1995). Union Mount устанавливается в 4.4BSD-Lite . Proc. Зимняя конференция USENIX .
- ^ а б «Преобразование команд UNIX в Plan 9» . Bell Labs . Lucent Technologies . Проверено 2 декабря 2011 .
- ^ Бальестерос, Франсиско Дж. (28 сентября 2007 г.). «Введение в абстракции ОС с использованием Plan 9 от Bell Labs» (PDF) . Университет Рей Хуана Карлоса . Архивировано из оригинального (PDF) 22 сентября 2010 года.
- ^ Пайк, Роб (30.04.2003). «История UTF-8» . Проверено 27 апреля 2006 .
- ^ Лунде, Кен (январь 1999 г.). Обработка информации CJKV . O'Reilly Media . п. 466 . ISBN 978-1-56592-224-2. Проверено 23 декабря 2011 .
- ^ Cox, R .; Grosse, E .; Пайк, Р .; Presotto, D .; Куинлан, С. «Безопасность в плане 9» . Bell Labs . Lucent Technologies . Проверено 26 февраля 2016 .
- ^ а б в Хадсон, Эндрю (19 июля 2006 г.). «Изучение операционной системы Plan 9» . OSNews . Проверено 31 декабря 2011 .
- ^ а б «Интервью с Рассом Коксом» . Настройка . Использует это. 2011-04-09 . Проверено 1 января 2012 .
- ^ Диксон, Род (2004). Закон о программном обеспечении с открытым исходным кодом . Артек Хаус . п. 213. ISBN 978-1-58053-719-3. Проверено 25 декабря 2011 .
- ^ Томпсон, Кен (февраль 1992 г.). «Новый компилятор C» (PDF) . Информационный бюллетень Австралийской группы пользователей систем UNIX . Кенсингтон , AU : AUUG . 13 (1): 31–41. ISSN 1035-7521 . Проверено 25 декабря 2011 .
- ^ Пайк, Роб. «Рио: Дизайн параллельной оконной системы» (PDF) . Проверено 8 марта 2013 года .
- ^ - Руководство программиста Plan 9 , том 1
- ^ Трики, Ховард. «APE - Среда ANSI / POSIX» . Bell Labs . Lucent Technologies . Проверено 26 февраля 2016 .
- ^ «Эмуляция Linux» . Bell Labs . Lucent Technologies . Проверено 26 февраля 2016 .
- ^ Форд, Брайан; Кокс, Расс (2008). Vx32: легкая песочница на уровне пользователя на x86 . USENIX Annual Tech. Конф. С. 293–306. CiteSeerX 10.1.1.212.9353 .
- ^ Роско, Тимоти (1995). Структура мультисервисной операционной системы (PDF) (доктор философии). Кембриджский университет. С. 22–23.
- ^ а б Мирцовский Андрей; Симмондс, Роб; Минних, Рон (2004). Plan 9 - интегрированный подход к грид-вычислениям . Proc. 18-й международный симпозиум по параллельной и распределенной обработке. IEEE. CiteSeerX 10.1.1.97.122 .
- ^ а б "оконный менеджер улучшенный 2" . suckless.org . Архивировано из оригинала на 2011-12-31 . Проверено 2 января 2012 .
[wmii] имеет интерфейс файловой системы 9p и поддерживает классическое и мозаичное (acme-подобное) управление окнами.
- ^ Торвальдс, Линус (1999). «Край Linux» . Открытые источники: голоса революции открытого исходного кода . О'Рейли. ISBN 1-56592-582-3.
- ^ «Glendix: привнесение красоты Plan 9 в Linux» . Проверено 1 декабря 2011 .
- ^ «План 9 из Gentoo: План 9 встречает Gentoo» . Gentoo Linux . Архивировано из оригинала на 2012-12-20 . Проверено 1 декабря 2011 .
- ^ "Диспетчер окон 9wm" . 9wm . Проверено 2 января 2012 .
9wm - это оконный менеджер X, который пытается имитировать оконный менеджер Plan 9 8-1 / 2, насколько это возможно, в рамках ограничений, налагаемых X.
- ^ «9grid» . Bell Labs . Lucent Technologies . Архивировано из оригинала на 2006-03-14 . Проверено 28 марта 2006 .
- ^ Ballesteros, Francisco J .; Гвардиола, Горка; Сориано, Энрике; Леал Альгара, Катя (2005). Традиционные системы могут хорошо работать для широко распространенных приложений. Пример из практики: Plan 9 от Bell Labs становится повсеместным . IEEE Intl 'Conf. по повсеместным вычислениям и коммуникациям. CiteSeerX 10.1.1.109.8131 .
- ^ «Vita Nuova поставляет Inferno Grid для Evotec OAI» (PDF) (пресс-релиз). Vita Nuova . 2004-05-18 . Проверено 28 марта 2006 .
- ^ «Библиотеки Университета Рутгерса устанавливают Inferno Data Grid» (PDF) (пресс-релиз). Vita Nuova . 2004-05-12 . Проверено 28 марта 2006 .
- ^ «Биологический факультет Йоркского университета установил Inferno Data Grid от Vita Nuova» (PDF) (пресс-релиз). Vita Nuova . 2004-05-04 . Проверено 28 марта 2006 .
- ^ «plan9front - отвалился фронт» . Проверено 1 декабря 2011 .
- ^ Хейворд, Дэвид (09.05.2013). «Операционные системы Raspberry Pi: 5 проверенных и оцененных» . TechRadar . Архивировано из оригинала на 7 июня 2013 года . Проверено 20 апреля 2014 .
- ^ «Как установить Plan 9 на Raspberry Pi» . eLinux . Проверено 16 ноября 2014 .
- ^ Хурадо, Альваро; Фернандес, Рафаэль; дю Коломбье, Давид; Минних, Рон; Нюринен, Аки; Флорен, Джон. Харви (PDF) . USENIX ATC BOF сессия.
- ^ «9атом» .
- ^ "9FRONT.ORG ПЛАН ОТВАЛ" .
- ^ «9легась» .
- ^ «Акарос» .
- ^ «Харви О.С.» .
- ^ «JehanneOS» .
- ^ «НИКС» .
- ^ «План Б» .
- ^ Шарвуд, Саймон (14 февраля 2014 г.). «Plan 9 выходит из лицензионного пространства Lucent» . Регистр . Проверено 20 апреля 2014 .
Внешние ссылки
- 9p.io : Архивное зеркало оригинального официального веб-сайта Plan 9 по адресу plan9.bell-labs.com
- 9fans : Полуофициальный список рассылки для пользователей и разработчиков Plan 9
- План 9 Фундамент