Inferno (网站服务)

Inferno是种可以创造并支援分散式服务的作业系统。它主要是基于贝尔实验室九号计划的经验以及贝尔实验室接下来对于作业系统、语言、即时编译器、图形、安全性、网路、移植等的研究而产生的。
Inferno应用程式可以移植到大多数混合的硬体、网路、环境上。它也定义了一套名为Dis的虚拟机器，这个虚拟机器可以在任何实体机器上实做，使用Limbo这种型别安全的语言来编译成位元码。Inferno也提供了具备相同介面的虚拟作业系统来让使用者可以在硬体上原生地执行Inferno或以应用程式的方式托管在其他系统中。
一种名为Styx的通讯协定被用来让系统内可以采用一致的方式，让应用程式只要使用标准的档案操作，如开启、读取、写入，以及关闭，就可以存取近端与远端的资源。在第四版的Inferno中，Styx跟九号计划中9P协定的新版本9P2000是一样的。
作业系统以及相关程式、Vita Nuova Holdings公司的名称都是源自于但丁·阿利吉耶里的著作，尤其是神曲。
设计概念.
Inferno最早是于1995年由贝尔实验室计算机科学研究部门（Computer Science Research division）的成员为了把九号计划的思想更广泛的使用在设备及网路上所制作的。Inferno是基于九号计划的三个基础原则而制作的分散式作业系统：
为了处理并使用多样化的网路环境，设计者决定采用虚拟机器当做系统中必要的元件。这跟后来成为Java的Oak专案的结论相同，但各别达成了这样的目标。Dis虚拟机器是一种倾向于贴近运行架构的一种寄存器机（register machine），相对来说Java虚拟机器则是一种堆叠机（stack machine）。这种方法的优势是只要简单的为新架构创建一个即时编译器就可以了。
虚拟机器提供的记忆体管理功能设计上在1MB大小的记忆体且不提供记忆体映射的硬体上会较有效率。垃圾回收机制则是一种参照计数（reference counting）与收集循环资料（cyclic data）的即时染色收集器（real-time coloring collector）混合而成的。
Inferno核心包含了虚拟机器、即时编译器（on-the-fly compiler）、排程、装置、协定堆叠（protocol stacks）、各行程档案命名空间的命名空间直译器（evaluator），以及阶层式档案系统的根目录。核心也同时包含了一些提供了虚拟作业系统介面的内建模组，像是系统呼叫、图形、安全性、以及数学函式模组。
贝尔实验室技术期刊介绍Inferno具有几个方面上由作业系统所支援的可移植性与通用性：
这些设计面上的决定导致它为了能够让内容与服务提供者可以著重于他们所传送的内容，而非把重心放在处理各种不同的硬体、软体或网路环境，因此提供了一种标准的介面来达成这样的目的。
历史.
Inferno是九号计划的衍生产品，彼此之间有许多共通的设计概念以及核心中的程式码，特别是关于装置以及Styx/9P2000协定的部份。Inferno也把Unix哲学与自贝尔实验室继承而来的UNIX经验分享给九号计划的专案。许多Inferno的命令列工具原先也都是九号计划的工具，之后才用Limbo语言改写。
IEEE Internet Computing在1997年3-4月的刊物中有Inferno网路软体的广告。该广告宣称可利用多种装置在包含网际网路、电信网路，以及区域网路等之"任何网路"上进行通讯。图中甚至摆放了PlayStation之类的照片，如果电玩可以跟电脑沟通、手机可以存取电子邮件、电视可以存取语音邮件。
贝尔实验室计算科学研究中心（Computing Science Research Center）的成员Ken Thompson、Dennis Ritchie，以及道格拉斯·麦克罗伊研究并开发了C语言，并使用该语言建造了UNIX。贝尔实验室中的程式设计师随后进行九号计划及Inferno等针对现代分散式环境的作业系统开发。
朗讯科技至少有两个内部专案有采用Inferno：Lucent VPN Firewall Brick以及Lucent Pathstar phone switch。这也开启了贩卖Inferno原始码授权的尝试，不过反应并不热烈。朗讯科技没特别做行销又忽略了Inferno与网际网路的重要关连，而Java语言跟Inferno目标市场相似、采用类似的技术、可以在网页浏览器中运行，也同时满足了当时对于物件导向语言的流行。当升阳电脑大力行销自家的Java时，朗讯科技自升阳电脑取得Java的授权，宣称所有Inferno的装置皆能执行Java。Java位元码与Dis位元码的转译器就是为了达成这个功能所产生的。然而Inferno还是卖不出去。
Inferno商业部门过了三年就关闭且被卖给Vitanuova。Vitanuova持有相关的权利后，便继续研发并对整个系统采用商业化授权的方式，随后提供免费下载以及对核心以及虚拟机器以外的整个系统采非GPL相容授权的方式。Vitanuova将软体继续移植到新的硬体以及专注在分散式应用软体上，最终将原始码采用GPLv2授权释出，而Inferno作业系统现今也变成是一个开放原始码的专案。
移植.
Inferno可以直接在原生硬体中执行，也能在其他平台以应用程式的方式提供虚拟作业系统。应用程式无须经过修改或重编译即可在所有的Inferno平台开发并执行。
原生移植包括x86、MIPS、ARM、PowerPC，以及SPARC。
托管或虚拟作业系统移植则包括：Microsoft Windows、GNU/Linux、FreeBSD、九号计划、Mac OS X、Solaris、IRIX、UnixWare。
Inferno也可以以套件的方式托管于IE中。根据Vita Nuova的说法，针对其他浏览器的套件也在开发中。
Inferno也可以移植到OpenMoko、Nintendo DS以及SheevaPlug。
授权.
Inferno第四版于2005年初以自由软体的授权释出。具体来说，Inferno采用了双授权的方式采用了两种授权供使用者选择。使用者可选择在自由软体授权或传统商业化授权的情况下取得Inferno。根据自由软体授权的规范，系统中各个部份可以采用不同的授权方式，这些授权方式包括GPL、LGPL、Lucent Public License，以及MIT License。后来Vita Nuova让Inferno可以在GPLv2的授权下取得除了字型（采用Bigelow and Holmes授权）以外的整个系统。现在总共有三种授权方式可供选择。
书籍.
由Phillip Stanley-Marbell所撰写的"Inferno Programming with Limbo"虽然描述了一些Inferno作业系统第三版的情况，但大多都专注在Limbo语言以及Inferno系统所提供的介面上。例如说这本书仅提到一点Inferno多用途命令列（command shell）的功能，不过作为一本程式设计相关的书籍，这也是可理解的情况。
另一本由Brian Stuart所撰写的"Principles of Operating Systems: Design and Applications"则采用Inferno作为作业系统设计的实例。
而由Martin Atkins、Charles Forsyth、Rob Pike，以及Howard Trickey合著的"The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System"一书，尝试以作业系统为中心的观点介绍Inferno，只是不幸地作者从未完成或释出该一著作。
外部连结.
Ports
Of Historical Interest