Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Inferno - это распределенная операционная система, созданная в Bell Labs и теперь разрабатываемая и поддерживаемая Vita Nuova Holdings как бесплатное программное обеспечение . [2] Inferno был основан на опыте, полученном с Plan 9 от Bell Labs , и дальнейших исследованиях Bell Labs в области операционных систем, языков, оперативных компиляторов, графики, безопасности, сетей и переносимости. Название операционной системы и многих связанных с ней программ, а также названия текущей компании было вдохновлено « Божественной комедией» Данте Алигьери . По-итальянски Infernoозначает «ад», которых в « Божественной комедии» Данте девять кругов .

Принципы дизайна [ править ]

Inferno был создан в 1995 году сотрудниками отдела компьютерных исследований Bell Labs, чтобы воплотить идеи Plan 9 из Bell Labs в более широкий спектр устройств и сетей. Inferno - это распределенная операционная система, основанная на трех основных принципах, взятых из Plan 9:

  • Ресурсы как файлы: все ресурсы представлены как файлы в иерархической файловой системе.
  • Пространства имен: вид программы на сеть - это единое согласованное пространство имен, которое выглядит как иерархическая файловая система, но может представлять физически разделенные (локально или удаленно) ресурсы.
  • Стандартный протокол связи: стандартный протокол, называемый Styx , используется для доступа ко всем ресурсам, как локальным, так и удаленным.

Чтобы справиться с разнообразием сетевых сред, в которых она должна была использоваться, разработчики решили, что виртуальная машина является необходимым компонентом системы. К такому же выводу пришел проект Oak, который стал Java , но пришел к нему независимо. Виртуальная машина Dis является регистр машина предназначена точно соответствовать архитектуре она работает на, в отличие от стека машины из виртуальной машины Java . Преимущество этого подхода - относительная простота создания своевременного компилятора для новых архитектур.

Виртуальная машина обеспечивает эффективное управление памятью на устройствах с объемом памяти всего 1 Мбайт и без оборудования для отображения памяти. Его сборщик мусора представляет собой гибрид подсчета ссылок и сборщика раскрашивания в реальном времени, который собирает циклические данные. [3]

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

В статье Bell Labs Technical Journal, посвященной Inferno, перечислено несколько аспектов портативности и универсальности, обеспечиваемых ОС: [4]

  • Переносимость между процессорами: в настоящее время он работает на архитектурах ARM , SGI MIPS , HP PA-RISC , IBM PowerPC , Sun SPARC и Intel x86 и легко переносится для других.
  • Переносимость между средами: он работает как автономная операционная система на небольших терминалах, а также как пользовательское приложение в Bell Plan 9 , MS Windows NT , Windows 95 и Unix ( SGI Irix , Sun Solaris , FreeBSD , Apple Mac OS X , Linux , IBM AIX , HP-UX , Digital Tru64 ). Во всех этих средах программы Inferno видят идентичный интерфейс.
  • Распределенный дизайн: идентичная среда устанавливается на терминале пользователя и на сервере, и каждый может импортировать ресурсы (например, подключенные устройства ввода-вывода или сети) другого. С помощью средств связи системы времени выполнения программы могут легко (и даже динамически) разделяться между клиентом и сервером.
  • Минимальные требования к оборудованию: он запускает полезные приложения автономно на машинах с объемом памяти всего 1 МБ и не требует оборудования для отображения памяти .
  • Переносимые программы: программы Inferno написаны на типобезопасном языке Limbo и скомпилированы в байт-код Dis , который можно запускать без изменений на всех платформах Inferno.
  • Динамическая адаптируемость: программы могут, в зависимости от оборудования или других доступных ресурсов, загружать различные программные модули для выполнения определенной функции. Например, видеопроигрыватель может использовать любой из нескольких различных модулей декодирования.

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

Особенности [ править ]

Программы Inferno можно переносить на широкий спектр оборудования, сетей и сред. Он определяет виртуальную машину , известную как Dis , которая может быть реализована на любой реальной машине, предоставляет Limbo , типобезопасный язык, который компилируется в переносимый байт-код, и, что более важно, он включает виртуальную операционную систему, которая предоставляет то же самое. интерфейсы независимо от того, работает ли Inferno изначально на оборудовании или как пользовательская программа поверх другой операционной системы.

Протокол связи называется Стикс применяется равномерно доступа локальных и удаленных ресурсов, которые используют программы путем вызова стандартных файловых операций, открытие, чтение, запись и близко. Начиная с четвертого издания Inferno, Styx идентичен более новой версии Plan 9 своего фирменного протокола 9P , 9P2000 .

Большинство команд Inferno очень похожи на одноименные команды Unix . [5]

История [ править ]

Реклама Lucent для Inferno в Интернет-вычислениях IEEE , том 1, номер 2, март – апрель 1997 г.

Inferno является потомком Plan 9 от Bell Labs и разделяет многие концепции дизайна и даже исходный код ядра, особенно в отношении устройств и протокола Styx / 9P2000. Inferno разделяет с Plan 9 наследие Unix от Bell Labs и философию Unix . Многие инструменты командной строки в Inferno были инструментами Plan 9, которые были переведены на Limbo.

В середине 1990-х разработка Plan 9 была отложена в пользу Inferno. [6] О существовании новой системы сообщил Деннис Ритчи в начале 1996 года, после менее чем года разработки системы, и публично представлен позже в том же году как конкурент Java. В то же время AT&T, материнская компания Bell Labs, лицензировала технологию Java у Sun Microsystems . [7]

В марте – апреле 1997 г. IEEE Internet Computing включила рекламу сетевого программного обеспечения Inferno. В нем утверждалось, что различные устройства могут связываться по «любой сети», включая Интернет, телекоммуникации и локальные сети. В рекламе говорилось, что видеоигры могут общаться с компьютерами, - была изображена PlayStation - сотовые телефоны могли получать доступ к электронной почте, а голосовая почта была доступна через телевизор.

Lucent использовала Inferno как минимум в двух внутренних продуктах: модуле межсетевого экрана Lucent VPN и телефонном коммутаторе Lucent Pathstar. Первоначально они пытались продать лицензии на исходный код Inferno, но нашли мало покупателей. Lucent мало занималась маркетингом и упускала из виду важность Интернета и отношения Inferno к нему. В то же время Sun Microsystems активно продвигала свой собственный язык программирования Java , ориентированный на аналогичный рынок, с аналогичной технологией, работающей в веб-браузерах, а также удовлетворяющей спрос на объектно-ориентированные языки.популярный в то время. Lucent лицензировала Java у Sun, утверждая, что все устройства Inferno будут работать с Java. Чтобы облегчить это, был написан байт-код Java для транслятора байт-кода Dis. Однако Inferno так и не нашла клиентов.

Подразделение Inferno закрылось через три года и было продано Vita Nuova . Vita Nuova продолжала разработку и предлагала коммерческие лицензии для всей системы, а также бесплатные загрузки и лицензии (не совместимые с GPL ) для всей системы, кроме ядра и виртуальной машины. Они перенесли программное обеспечение на новое оборудование и сосредоточились на распределенных приложениях. В конце концов, Vita Nuova выпустила исходный код под лицензией GPL, и операционная система Inferno теперь является проектом Free / Libre / Open Source Software .

Порты [ править ]

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

Собственные порты включают следующие архитектуры: x86 , MIPS , ARM , PowerPC , SPARC .

Размещенные или виртуальные порты ОС включают: Microsoft Windows , Linux , FreeBSD , Plan 9 , Mac OS X , Solaris , IRIX , UnixWare .

Inferno также может быть размещен в надстройке к Internet Explorer . [8] Вита Нуова сообщила, что плагины для других браузеров находятся в стадии разработки, но так и не были выпущены. [9]

Inferno также был портирован на Openmoko , [10] Nintendo DS , [11] [12] SheevaPlug , [13] и Android . [14]

Распространение [ править ]

4-е издание Inferno было выпущено в начале 2005 года как бесплатное программное обеспечение . В частности, он имел двойную лицензию по двум лицензиям. [15] Пользователи могут либо получить его по набору лицензий на свободное программное обеспечение , либо они могут получить его по частной лицензии. В случае свободного программного обеспечения схемы лицензии, различные части системы были охвачены различными лицензиями, включая GNU General Public License , в GNU Lesser General Public License , в Lucent Public License , и лицензии MIT . Впоследствии Vita Nuova сделала возможным приобретение всей системы (за исключением шрифтов, которые сублицензируются отБигелоу и Холмс ) под лицензией GPLv2 . В настоящее время доступны все три варианта лицензии.

См. Также [ править ]

  • Система на основе языка
  • Singularity (операционная система)

Ссылки [ править ]

  1. ^ Дорвард, Шон; Пайк, Роб; Пресотто, Дэвид Лео; Ричи, Деннис М .; Трики, Ховард; Уинтерботтом, Фил (1997). «Операционная система Inferno» . Адская документация . Vita Nuova . Проверено 2 мая 2014 .
  2. ^ "inferno-os / inferno-os - Bitbucket" . Проверено 19 апреля 2019 .
  3. ^ Лоренц Хюльсберген и Фил Винтерботтом. «Очень одновременная пометка и очистка мусора без точной синхронизации» (PDF) . Цитировать журнал требует |journal=( помощь )
  4. ^ «Операционная система Inferno» (статьи). Vita nuova. Цитировать журнал требует |journal=( помощь )
  5. ^ http://man.cat-v.org/inferno/1/
  6. ^ Pontin, Джейсон (19 февраля 1996). «AT&T раскрывает планы конкурента Java» . InfoWorld . п. 3.
  7. Перейти ↑ Hayes, Frank (19 февраля 1996). «Инферно Bell Lab нацелено на то, чтобы составить конкуренцию Java» . Компьютерный мир . п. 6.
  8. ^ «Поддерживающий код, позволяющий Inferno работать как плагин в различных браузерах» .
  9. ^ Плагины , Vita Nuova.
  10. ^ "inferno-openmoko - ад для openmoko neo freerunner - Google Project Hosting" . Code.google.com . Проверено 4 июня 2012 .
  11. ^ «inferno-ds - ядро ​​Inferno для Nintendo DS - хостинг проектов Google» . Code.google.com . Проверено 4 июня 2012 .
  12. ^ «inferno-ds: собственное ядро ​​Inferno для Nintendo DS» . bitbucket.org. Архивировано из оригинала на 2017-08-23 . Проверено 17 марта 2018 .
  13. ^ "inferno-kirkwood - Inferno для Marvell Kirkwood / Sheevaplug - Google Project Hosting" . Code.google.com . Проверено 4 июня 2012 .
  14. ^ ад (29 сентября 2011 г.). "floren / inferno / wiki / Главная - Bitbucket" . Bitbucket.org . Проверено 4 июня 2012 .
  15. ^ «Условия лицензии Inferno» .

Дальнейшее чтение [ править ]

  • Стэнли-Марбелл, Филипп (2003). «Адское программирование с помощью лимбо». Чичестер: Джон Уайли и сыновья. ISBN 0-470-84352-7. Цитировать журнал требует |journal=( помощь )описывает 3-е издание операционной системы Inferno, хотя больше фокусируется на языке Limbo и его интерфейсах с системой Inferno, чем на самой системе Inferno. Например, он предоставляет мало информации об универсальной командной оболочке Inferno , что понятно, поскольку это учебник по языку программирования.
  • Стюарт, Брайан (2008). Принципы операционных систем: дизайн и приложения . Курсовая технология. ISBN 1-4188-3769-5., использует Inferno в качестве примеров дизайна операционной системы.
  • Аткинс, Мартин; Форсайт, Чарльз; Пайк, Роб ; Трики, Ховард. "Книга по программированию Inferno: Введение в программирование для распределенной системы Inferno". Цитировать журнал требует |journal=( помощь ) был предназначен для обеспечения точки зрения, ориентированной на операционную систему, но так и не был завершен.

Внешние ссылки [ править ]

  • Документация к последнему выпуску inferno.
  • Inferno Fourth Edition Скачать , включая исходный код.
  • Список рассылки и другие ресурсы .
  • Ninetimes : новости и статьи об Inferno, Plan 9 и связанных технологиях.
  • Записная книжка программиста Inferno - журнал, сделанный разработчиком Inferno.
  • Попробуйте Inferno : бесплатный доступ в браузере к действующей системе Inferno.
  • Inferno OS для Raspberry Pi Labs: перенос операционной системы Inferno на Raspberry Pi