Inhaltsverzeichnis
Inferno
"Inferno" stammt von "Plan 9" ab und "Plan 9" ist der "Unix"-Nachfolger von AT&T.
Mit Inferno braucht man keine separate Virtualisierungsumgebung, da das gesamte System schon als virtualisiert, absolut transparent über das gesamte Netzwerk, läuft.
Mit Inferno gibt es auch keine Binärinkompatibilitäten zwischen den Architekturen mehr, da der Bytecode der Limbo-Anwendungen für jede Architektur gleich ist, können Inferno-Anwendungen überall ohne Neuübersetzung laufen.
Inferno kann aber auch als Anwendung in anderen Betriebssystemen laufen.
Zur Zeit unterstützte Betriebssysteme:
- Windows NT/2000/XP
- Irix
- Linux
- MacOS X
- FreeBSD
- Solaris
- Plan 9
Zur Zeit unterstützte Architekturen:
- Intel x86 (ab 386)
- Intel XScale
- IBM PowerPC
- ARM StrongARM (ARM & Thumb)
- Sun SPARC
Quellen:
eine kurze Beschreibung
Inferno wurde als Nachfolger des Betriebssystem Plan 9 mit Hilfe von Dennis Ritchie und Ken Thompson sowie anderen Mitarbeitern im Bell Labs Computing Sciences Research Center in New Jersey, USA ab 1995 entwickelt. D. Ritchie und K. Thompson haben zuvor bereits das Unix Betriebssystem entworfen. Inferno ist ein eigenständiges, skalierfähiges Netzwerk-Betriebssystem das aber auch als Gast unter einem anderen Host wie Windows NT/2000/XP, FreeBSD, Irix, Linux, MacOSX, Plan9 und Solaris benutzt werden kann. Als Architektur wird Intel x86 (ab 386), Intel XScale, IBM PowerPC, ARM StrongARM (ARM und Thumb) sowie Sun SPARC unterstützt. Die Systemsoftware benötigt mindestens 1 MByte RAM und ROM, unterstützt dynamische Module, Unicode und ist im vollem Quelltext mit der Lizenzvereinbarung erhältlich. Anwendungen können vereinfacht auf Geräte wie Audio, Ethernet, Grafik, Touchscreen, USB und auch WLAN (802.11b) zugreifen. Ebenso ist Inferno als Plug-In im Internet Explorer ab der Version 4.x einsetzbar.
Inferno eignet sich optimal für verteilte, von der Architektur unabhängige Netzwerk-Anwendungen auf z.B. Internet Terminals. Der Kernel mit präemptiven Scheduler wurde in C programmiert, die höheren Schichten und gemeinsam von Anwendungen genutzten Libraries sind in Limbo geschrieben. Mitgeliefert wird eine komplette Entwicklungsumgebung mit programmierbarer Shell, Unix-ähnlichen Tools und ein Webbrowser. Die Programmierung unter Limbo ist syntaktisch ähnlich zu C. Mit Spezialisierung auf die Erstellung von Netzwerkanwendungen erstellt der Limbo-Compiler unabhängigen Quellcode für die verschiedensten Architekturen. Dieser Quellcode wird zur Laufzeit in der Inferno Virtual Machine interpretiert oder aus Performance Gründen vorher JIT (Just In Time) kompiliert.
Das Styx-Protokoll bildet über eine gesicherte Kommunikation alle Ressourcen als Datei im Dateisystem ab, egal ob diese lokal oder remote vorliegen. Dazu zählen Speichergeräte, Prozesse, Dienste und Netzwerkverbindungen. Per Namespaces werden alle Ressourcen und Dienste in unverwechselbaren adressierten Namen für Anwendungen gespeichert. Diese leiten auf die realen Ressourcennamen weiter. Der definierte Namespace ist von jedem Netzwerkclient nutzbar oder verteilt auf mehrere Server übertragbar. Sicherheit wird über verschiedene Mechanismen auf der Ebene von Datenverbindungen, der Kontrolle von Ressourcen und System-Integrität realisiert. Zu den unterstützten Algorithmen zählen IDEA, 56-Bit DES, 40-, 128- und 256-Bit RC4 Verschlüsselung sowie MD4, MD5 und SHA Hash Funktionen.
1996 wurde Vita Nuova in York, England von Lucent Technologie (gehört zu Bell Labs) gegründet. Der Name "Vita Nuova" bedeutet soviel wie "Neues Leben". Das neue Unternehmen kümmert sich exklusiv um den Verkauf, Support und die Entwicklung des kommerziellen Betriebssystem Inferno. Außerdem ist es der einzige Plan 9 Distributor. Am 1. März 2000 erfolgte die Umbenennung in Vita Nuova Holdings Limited.
Bezugsquelle
Die Programmiersprache Limbo und das Betriebssystem Inferno
Inferno verwendet Dateinamen für nahezu alles: Prozessinformationen, Netzwerkverbindungen, Pipes usw. Dateinamen sind Verweise auf mit dem Protokoll Styx erreichbare Dateien, Ressourcen und Geräte. Es spielt keine Rolle, ob diese lokal oder nur über das Netzwerk erreichbar sind. Limbo verwendet diese Dateinamen für die Kommunikation mit der Außenwelt. Dabei kann ein Limbo-Modul eine Datenstruktur erzeugen, die über Styx kommuniziert. Die Methoden und Funktionen eines Moduls werden von diesem in Styx umgesetzt. Dies braucht ein Programmierer jedoch nicht zu wissen. Er muss nur die abstrakten Methoden eines Moduls kennen, ohne genau zu wissen, wie diese auf das niedrigere Styx-Protokoll umgesetzt werden.
Installation
Debian/Ubuntu
In einem Debian-Basiertem Linux sind vorher noch diese Pakete zu installieren:
# aptitude -y install libxext-dev libxpm-dev x11proto-xext-dev
Linux
# mkdir /opt # cd /opt # tar xzf inferno-20100120.tgz # cd inferno
Jetzt müssen die Variablen richtig gesetzt werden:
# vi mkconfig ROOT=/opt/inferno SYSHOST=Linux SYSTARG=$SYSHOST OBJTYPE=386
# bash mkconfig # vi makemk.sh ROOT=/opt/inferno SYSTARG=Linux OBJTYPE=386 SYSTYPE=posix
# bash makemk.sh removing old libraries and binaries gcc -c -I/tmp/inferno/Linux/386/include -I/tmp/inferno/include -I/tmp/inferno/utils/include regaux.c regcomp.c regerror.c regexec.c regsub.c rregexec.c rregsub.c ar crvs /tmp/inferno/Linux/386/lib/libregexp.a regaux.o regcomp.o regerror.o regexec.o regsub.o rregexec.o rregsub.o a - regaux.o a - regcomp.o a - regerror.o a - regexec.o a - regsub.o a - rregexec.o a - rregsub.o ... Posix.o: In function `maketmp': Posix.c:(.text+0x80a): warning: the use of `tmpnam' is dangerous, better use `mkstemp' mk binary built successfully!
PATH-Variable dauerhaft setzen:
# echo -e 'PATH="/opt/inferno/Linux/386/bin:$PATH"\nexport PATH\nEMU="-g1024x768"\nexport EMU' > /etc/profile.d/inferno # . /etc/profile.d/inferno
installieren:
# mk nuke # mk install
Gegebenenfalls kann man auch noch einen "inferno"-User anlegen.
Anwendung
Inferno-SHELL starten:
# emu
Inferno mit seinem Windowmanager (in TCL geschrieben) starten:
# emu /dis/wm/wm.dis wm/logon -u inferno
oder eine Anwedung direkt starten, zum Beispiel:
# emu /dis/acme/acme.dis wm/logon -u inferno
