stringtranslate.com

План 9 от Bell Labs

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

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

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

История

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

Plan 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 , призванного стать конкурентом Java - платформы Sun Microsystems . [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] и Jehanne OS. [35]

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

План 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 ). Оконная система мультиплексирует эти устройства: при создании нового окна для запуска какой-либо программы она сначала устанавливает новое пространство имен, в котором mouse , cons и bitblt подключаются к ней, скрывая фактические файлы устройств, к которым она сама имеет доступ. Таким образом, оконная система получает все команды ввода и вывода из программы и обрабатывает их соответствующим образом, отправляя вывод на фактическое экранное устройство и предоставляя текущей программе ввод с клавиатуры и мыши. [39] Программе не обязательно знать, взаимодействует ли она напрямую с драйверами устройств операционной системы или с оконной системой; ему нужно только предположить, что его пространство имен настроено так, чтобы эти специальные файлы предоставляли тот тип входных данных и принимали тот тип сообщений, который он ожидает.

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

протокол 9P

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

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

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

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

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

; привязать /arm/bin /bin; привязать -a /acme/bin/arm /bin; привязать -b /usr/алиса/bin /bin

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

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

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

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

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

/проц

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

Вместо системных вызовов, предназначенных специально для управления процессами , 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 маршрутизатора собственным каталогом /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 и эмулировать интерфейс сокетов Беркли через среду 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, такие как кодировка символов UTF-8 Unicode, были реализованы в других операционных системах. 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]

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

Лицензия

Начиная с выпуска четвертого издания в апреле 2002 года [26] полный исходный код Plan 9 от Bell Labs доступен бесплатно по лицензии Lucent Public License 1.02, которая считается лицензией с открытым исходным кодом Инициативой открытого исходного кода (OSI). ), лицензию на бесплатное программное обеспечение , выданную Фондом свободного программного обеспечения , и она соответствует Руководству по свободному программному обеспечению 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. ^ Lucent Technologies (2006). «Гленда, кролик из Плана 9» . Проверено 2 декабря 2008 г.
  3. ^ «Фонд Плана 9: Деятельность» . plan9foundation.org . Проверено 23 марта 2021 г.
  4. ^ "9Наследие". 9legacy.org . Проверено 23 марта 2021 г.
  5. ^ "Контрольные суммы плана9". Лаборатории Белла. Архивировано из оригинала 1 июня 2017 г. Проверено 25 июля 2019 г. Сб, 10 января, 04:04:55 EST 2015 ... plan9.iso.bz2
  6. ^ «Исходный код GPLv2».
  7. ^ Кроуфорд, Дайан (1999). "Форум". Коммуникации АКМ . Ассоциация вычислительной техники (ACM). 42 (8): 11–15. дои : 10.1145/310930.310939. ISSN  0001-0782. S2CID  263897745.
  8. ^ abcde Пайк, Р .; Пресотто, Д.; Дорвард, С.; Фландрена, Б.; Томпсон, К .; Трики, Х.; Уинтерботтом, П. «План 9 от Bell Labs». Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
  9. ^ «Лицензия Плана 9» . p9f.org . Архивировано из оригинала 14 июня 2021 года . Проверено 14 июня 2021 г.
  10. ^ "Plan9License". 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. ^ abc Рэймонд, Эрик С. (17 сентября 2003 г.). «План 9: Каким было будущее». Искусство программирования UNIX . Аддисон-Уэсли . ISBN 0-13-142901-9. Проверено 7 мая 2007 г.
  17. ^ Робертсон, Джеймс (16 июля 2011 г.). «План 9 раздвоился, продолжается как 9front». ОСНовости . Проверено 31 декабря 2011 г.
  18. ^ abc "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. ^ ab «Лаборатории Bell: Полное руководство - история, продукты, основание и многое другое» . История-Компьютер . 14.11.2021 . Проверено 1 сентября 2022 г.
  25. ^ abc Лоли-Керу, Евгения (29 апреля 2002 г.). «Bell Labs выпускает новую версию Плана 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. ^ аб Маллендер, Сапе Дж.; Янсен, Пьер Г. (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. ^ abcde Пресотто, Дэйв; Пайк, Роб ; Томпсон, Кен ; Трики, Ховард. План 9. Распределенная система . Учеб. Весна 1991 г., конференция EuroOpen. CiteSeerX 10.1.1.41.9192 . 
  39. ^ abc Пайк, Р .; Пресотто, Д.; Томпсон, К .; Трики, Х.; Уинтерботтом, П. «Использование пространств имен в Плане 9». Лаборатории Белла . Проверено 26 февраля 2016 г.
  40. ^ аб Уэлч, Брент (1994). «Сравнение трех архитектур распределенных файловых систем: Vnode, Sprite и Plan 9». Вычислительные системы . 7 (2): 175–199. CiteSeerX 10.1.1.46.2817 . 
  41. ^ namespace(4)  - Руководство программиста Plan 9, том 1
  42. ^ abcdef Перейра, Уриэль М. (2006). Выпуск Unix Spirit Free: Plan 9 от Bell Labs ( AVI ) . ФОСДЕМ . Проверено 2 декабря 2011 г.
    • Уриэль. «Свободный дух Unix: План 9 от Bell Labs» (PDF) . Лаборатории Белла . Архивировано из оригинала (PDF) 28 ноября 2007 г. Проверено 14 ноября 2007 г.
  43. ^ Аб Минних, Рон (2005). «Почему План 9 еще не умер и чему мы можем научиться из него» (PDF) . Лос-Аламосская национальная лаборатория . Архивировано из оригинала (PDF) 25 февраля 2016 г. Проверено 26 февраля 2016 г.
  44. ^ аб Валери, Аврора (25 марта 2009 г.). «Файловые системы Union: Реализации, часть I». LWN.net . Проверено 5 декабря 2011 г.
  45. ^ Аб Пендри, Ян-Симон; МакКьюсик, Маршалл Кирк (1995). Union Mounts в 4.4BSD-Lite. Учеб. Зимняя конференция USENIX .
  46. ^ Дафф, Том. «18». Rc — План 9 «Шелл». {{cite book}}: |work=игнорируется ( помощь ) (PDF);
  47. ^ ab «Перевод команд UNIX в Plan 9» . Лаборатории Белла . Люсент Технологии . Проверено 2 декабря 2011 г.
  48. ^ Пайк, Роб (30 апреля 2003 г.). «История UTF-8» . Проверено 27 апреля 2006 г.
  49. ^ Лунде, Кен (январь 1999 г.). Обработка информации CJKV . О'Рейли Медиа . п. 466. ИСБН 978-1-56592-224-2. Проверено 23 декабря 2011 г.
  50. ^ Кокс, Р.; Гросс, Э.; Пайк, Р .; Пресотто, Д.; Куинлан, С. «Безопасность в Плане 9». Лаборатории Белла . Люсент Технологии . Проверено 26 февраля 2016 г.
  51. ^ abc Хадсон, Эндрю (19 июля 2006 г.). «Исследование операционной системы Plan 9». ОСНовости . Проверено 31 декабря 2011 г.
  52. ^ ab «Интервью с Рассом Коксом». Настройка . Использует это. 09.04.2011. Архивировано из оригинала 28 декабря 2011 г. Проверено 1 января 2012 г.
  53. ^ Диксон, Род (2004). Закон о программном обеспечении с открытым исходным кодом. Артех Хаус . п. 213. ИСБН 978-1-58053-719-3. Проверено 25 декабря 2011 г.
  54. ^ Томпсон, Кен (февраль 1992 г.). «Новый компилятор C» (PDF) . Информационный бюллетень австралийской группы пользователей UNIX Systems . Кенсингтон , Австралия : AUUG . 13 (1): 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. ^ аб Мирчовский, Андрей; Симмондс, Роб; Миннич, Рон (2004). План 9 — интегрированный подход к грид-вычислениям . Учеб. 18-й Международный симпозиум по параллельной и распределенной обработке. IEEE. CiteSeerX 10.1.1.97.122 . 
  62. ^ ab «Оконный менеджер улучшен 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: План 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» (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 ПЛАН СОВЕРШЕН" .
  81. ^ "9Наследие".
  82. ^ "Акарос".
  83. ^ "Харви ОС".
  84. ^ "ЖеаннеОС". 17 ноября 2021 г.
  85. ^ "НИКС". 21 ноября 2020 г.
  86. ^ "узел9". Гитхаб . 14 января 2022 г.
  87. ^ «План Б». 26 ноября 2020 г.
  88. ^ «Скачать». План 9 вики . 9p.io. _ Проверено 15 июня 2023 г.
  89. ^ Бальестерос, Франсиско Дж.; Музкиз, Горка Гвардиола; Альгара, Катя Леаль; Сориано, Энрике; де лас Эрас Кирос, Педро; Кастро, Ева М.; Леонардо, Андрес; Аревало, Серджио (февраль 2004 г.). «План Б: Ящики для сетевых ресурсов». Журнал Бразильского компьютерного общества . 10 (1): 33–44. дои : 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. ^ "Фонд Plan9" . plan9foundation.org . Проверено 13 октября 2021 г.

Внешние ссылки