Benutzer-Werkzeuge

Webseiten-Werkzeuge


inferno

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

Dokumentation

/home/http/wiki/data/pages/inferno.txt · Zuletzt geändert: von 127.0.0.1