Кіріспе
Inferno – Bell Labs-те басталып, қазір Vita Nuova Holdings компаниясы MIT лицензиясы бойынша ашық кодты бағдарламалық жасақтама ретінде әзірлеп, қолдап келе жатқан таратылған операциялық жүйе. Inferno ядросы виртуалды машинаны, оқиға барысында компиляциялаушыны, жоспарлаушыны, құрылғыларды, протокол жиынтықтарын, әр процестің файлдық атау кеңістігі үшін кеңістік бағалаушысын және файлдық жүйе иерархиясының түбірін қамтиды. Ядроға сондай-ақ виртуалды операциялық жүйенің интерфейстерін ұсынатын бірнеше модульдер кіреді, мысалы, жүйелік шақырулар, графика, қауіпсіздік және математика модульдері. Inferno-ны таныстырған Bell Labs Technical Journal мақаласында ОС-тің портативтілігі мен әмбебаптығының бірнеше өлшемдері келтірілген:
Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License. The Inferno kernel contains the virtual machine, on the fly compiler, scheduler, devices, protocol stacks, and the name space evaluator for each process' file name space, and the root of the file system hierarchy. The kernel also includes some built in modules that provide interfaces of the virtual operating system, such as system calls, graphics, security, and math modules. The Bell Labs Technical Journal paper introducing Inferno listed several dimensions of portability and versatility provided by the OS:
Portability across processors: it currently runs on ARM, SGI MIPS, HP PA RISC, IBM PowerPC, Sun SPARC, and Intel x86 architectures and is readily portable to others. Portability across environments: it runs as a stand alone operating system on small terminals, and also as a user application under Bell Plan 9, MS Windows NT, Windows 95, and Unix (SGI Irix, Sun Solaris, FreeBSD, Apple Mac OS X, Linux, IBM AIX, HP UX, Digital Tru64). In all of these environments, Inferno programs see an identical interface. Distributed design: the identical environment is established at the user's terminal and at the server, and each may import the resources (for example, the attached I/O devices or networks) of the other. Aided by the communications facilities of the run time system, programs may be split easily (and even dynamically) between client and server. Minimal hardware requirements: it runs useful applications stand alone on machines with as little as 1 MiB of memory, and does not require memory mapping hardware. Portable programs: Inferno programs are written in the type safe language Limbo and compiled to Dis bytecode, which can be run without modifications on all Inferno platforms. Dynamic adaptability: programs may, depending on the hardware or other resources available, load different program modules to perform a specific function. For example, a video player might use any of several different decoder modules. These design choices were directed to provide standard interfaces that free content and service providers from concern of the details of diverse hardware, software, and networks over which their content is delivered.
Процессорлар бойынша портативтілік: қазіргі уақытта 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 бағдарламалары бірдей интерфейсті көреді. Таратылған архитектура: бірдей орта пайдаланушының терминалында да, серверде де құрылады, және әрқайсысы екіншісінің ресурстарын (мысалы, қосылған I/O құрылғыларын немесе желілерін) импорттай алады. Орындалу кезіндегі жүйенің байланыс құралдарының көмегімен бағдарламаларды клиент пен сервер арасында оңай (тіпті динамикалық түрде) бөлуге болады. Ең төменгі аппараттық талаптар: ол 1 МБ жадысы бар машиналарда пайдалы бағдарламаларды жеке-жеке іске қосады және жадты бейнелеу аппараттық құрылғысын қажет етпейді. Портативті бағдарламалар: Inferno бағдарламалары Limbo қауіпсіз тілінде жазылған және Dis байт-кодына компиляцияланады, оны барлық Inferno платформаларында өзгеріссіз іске қосуға болады. Динамикалық бейімделу: бағдарламалар, қолда бар аппараттық немесе басқа ресурстарға байланысты, белгілі бір функцияны орындау үшін әртүрлі бағдарлама модульдерін жүктей алады. Мысалы, бейнеойнатқыш бірнеше түрлі декодер модульдерінің кез келгенін пайдалана алады. Бұл дизайндық шешімдер мазмұн мен қызмет провайдерлерін мазмұн жеткізілетін әртүрлі аппараттық, бағдарламалық қамтамасыз ету және желілердің егжей-тегжейлерінен босататын стандартты интерфейстерді ұсынуға бағытталған.
Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License. The Inferno kernel contains the virtual machine, on the fly compiler, scheduler, devices, protocol stacks, and the name space evaluator for each process' file name space, and the root of the file system hierarchy. The kernel also includes some built in modules that provide interfaces of the virtual operating system, such as system calls, graphics, security, and math modules. The Bell Labs Technical Journal paper introducing Inferno listed several dimensions of portability and versatility provided by the OS:
Portability across processors: it currently runs on ARM, SGI MIPS, HP PA RISC, IBM PowerPC, Sun SPARC, and Intel x86 architectures and is readily portable to others. Portability across environments: it runs as a stand alone operating system on small terminals, and also as a user application under Bell Plan 9, MS Windows NT, Windows 95, and Unix (SGI Irix, Sun Solaris, FreeBSD, Apple Mac OS X, Linux, IBM AIX, HP UX, Digital Tru64). In all of these environments, Inferno programs see an identical interface. Distributed design: the identical environment is established at the user's terminal and at the server, and each may import the resources (for example, the attached I/O devices or networks) of the other. Aided by the communications facilities of the run time system, programs may be split easily (and even dynamically) between client and server. Minimal hardware requirements: it runs useful applications stand alone on machines with as little as 1 MiB of memory, and does not require memory mapping hardware. Portable programs: Inferno programs are written in the type safe language Limbo and compiled to Dis bytecode, which can be run without modifications on all Inferno platforms. Dynamic adaptability: programs may, depending on the hardware or other resources available, load different program modules to perform a specific function. For example, a video player might use any of several different decoder modules. These design choices were directed to provide standard interfaces that free content and service providers from concern of the details of diverse hardware, software, and networks over which their content is delivered.
Ерекшеліктері
Inferno бағдарламалары әртүрлі аппараттық жабдықтарда, желілерде және орталарда қолданылуға қолайлы. Ол Dis деп аталатын виртуалды машинаны анықтайды, оны кез келген нақты машинада жүзеге асыруға болады, Limbo тілін қамтамасыз етеді, ол портативті байт-кодқа компиляцияланатын қауіпсіз тіл, және, ең маңыздысы, Inferno аппараттық құрылғыда немесе басқа операциялық жүйенің үстінде пайдаланушы бағдарламасы ретінде жұмыс істесе де, бірдей интерфейстерді ұсынатын виртуалды операциялық жүйені қамтиды. Styx деп аталатын байланыс протоколы жергілікті және қашықтағы ресурстарға біркелкі қол жеткізу үшін қолданылады, бағдарламалар оны стандартты файл операцияларын – ашу, оқу, жазу және жабу – шақыру арқылы пайдаланады. Inferno төртінші нұсқасынан бастап, Styx 9P протоколының 9P2000 ең жаңа нұсқасымен сәйкес келеді. Inferno командаларының көпшілігі сол аттас Unix командаларына өте ұқсас.
runs natively on hardware or runs as a user program on top of another operating system. A communications protocol called Styx is applied uniformly to access both local and remote resources, which programs use by calling standard file operations, open, read, write, and close. As of the fourth edition of Inferno, Styx is identical to Plan 9's newer version of its hallmark 9P protocol, 9P2000. Most of the Inferno commands are very similar to Unix commands with the same name.
Тарих
Inferno — Bell Labs-тің 9-жоспарының ұрпағы, және ядрода, әсіресе құрылғылар мен Styx/9P2000 протоколы бойынша көптеген дизайн тұжырымдамалары мен тіпті бастапқы кодты бөліседі. Inferno, Plan 9 жүйесі сияқты, Bell Labs-тің Unix мұрасын және Unix философиясын ұстанады. Inferno-дағы көптеген командалық қатар құралдары Limbo-ға аударған 9-жоспар құралдары болды. 1990 жылдардың ортасында 9-жоспарды дамыту Inferno пайдасына тоқтатылды. Жаңа жүйенің бар екендігін Деннис Ричи 1996 жылдың басында, жүйеге бір жылға жетпеген уақыт жұмсалғаннан кейін жариялады, және сол жылы Java-ға қарсылас ретінде таныстырды. Сонымен қатар, Bell Labs компаниясының бас компаниясы AT&T, Sun Microsystems компаниясынан Java технологиясына лицензия алды. 1997 жылдың наурыз-сәуір айларында IEEE Internet Computing журналы Inferno желілік бағдарламалық жасақтамасы туралы жарнама жариялады. Онда түрлі құрылғылардың Интернет, телекоммуникациялар және LAN желілері сияқты «барлық желілер» арқылы байланыса алатыны айтылды. Жарнамада бейне ойындардың компьютерлермен сөйлесе алатыны, суретте PlayStation көрсетілгені, ұялы телефондар электрондық поштаға қол жеткізе алатыны және дауыстық хабарламаны теледидар арқылы алуға болатыны көрсетілді. Lucent компаниясы Inferno-ны кемінде екі ішкі өнімде пайдаланды: Lucent VPN Firewall Brick және Lucent Pathstar телефондық коммутаторы. Олар бастапқыда Inferno-ның бастапқы код лицензиясын сатуға тырысты, бірақ сатып алушылардың саны аз болды. Lucent маркетингке жеткілікті көңіл бөлмеді және Интернеттің және Inferno-ның онымен байланысының маңыздылығын түсінбеді. Сол кезде Sun Microsystems өзінің Java бағдарламалау тілін белсенді түрде сатуда болды, ол ұқсас нарықты мақсат тұтып, веб-браузерлерде жұмыс істейтін және сол кезде танымал болған объектіге бағытталған тілдерге деген сұранысты қанағаттандыратын ұқсас технологияны ұсынды. Lucent Sun компаниясынан Java лицензиясын алып, барлық Inferno құрылғылары Java-да жұмыс істейтінін мәлімдеді. Осы мақсатта Java байт-кодын Dis байт-кодына аударатын аудармашы жасалды. Алайда Inferno әлі де клиенттер таба алмады. Inferno бизнес-бөлімі үш жылдан кейін жабылып, Vita Nuova Holdings компаниясына сатылды. Vita Nuova дамытуды жалғастырды және толық жүйеге коммерциялық лицензиялар ұсынды, сонымен қатар ядро мен VM-нен басқа жүйенің барлық бөліктеріне тегін жүктеулер мен лицензиялар (GPL-мен үйлесімсіз) ұсынды. Олар бағдарламалық жасақтаманы жаңа аппараттық құралдарға көшіріп, таратылған қосымшаларға назар аударды. Ақырында Vita Nuova 4-ші басылымын кең таралған ашық бағдарламалық қамтамасыз ету лицензиясы бойынша шығарды, ал 2021 жылы барлық басылымдарды негізінен MIT лицензиясы бойынша қайта лицензиялады. Vita Nuova басқа браузерлерге арналған плагиндер әзірленуде екенін айтты, бірақ олар ешқашан жарияланбады. Inferno сонымен қатар Openmoko, Nintendo DS, SheevaPlug және Android платформаларына көшірілді.
Тарату
Inferno 4-ші басылымы 2005 жылдың басында ақысыз бағдарламалық қамтамасы ретінде жарық көрді. Нақтырақ айтқанда, ол екі түрлі лицензия бойынша ұсынылды. Пайдаланушылар оны ақысыз бағдарламалық қамтамасы лицензиялары жиынтығы бойынша немесе коммерциялық лицензия бойынша алуға мүмкіндік алды. Ақысыз бағдарламалық қамтамасы лицензиясы бойынша жүйенің әртүрлі бөліктері әртүрлі лицензиялармен қамтылды, олардың ішінде GNU General Public License, GNU Lesser General Public License, Lucent Public License және MIT License болды, Bigelow және Holmes компанияларынан алынған қаріптерді қоспағанда. 2021 жылдың наурыз айында барлық нұсқалар негізінен MIT лицензиясы бойынша қайта лицензияланды.