UNIX war ursprünglich fast vollständig in Assembler geschrieben worden. Nachdem Dennis Ritchie im Laufe des Jahres 1972 die Programmiersprache BCPL weiterentwickelt und damit das heute weitverbreitete C geschaffen hatte, portierte das Entwicklerteam das komplette Betriebssystem in diese neue Sprache. In den modernen UNIX-Systemen sind lediglich einige wenige Routinen im Kern noch in Assembler geschrieben. Es handelte sich um den ersten Versuch, ein ganzes Betriebssystem in einer höheren Programmiersprache zu schreiben. Die sich daraus ergebende Portabilität ist einer der wichtigsten Gründe für die Popularität des heutigen UNIX-Systems.
Der Durchbruch gelang UNIX mit der Implementierung auf größeren Rechnern. Als die Mini- und Microcomputer an Geschwindikeit und Leistungsfähigkeit aufholten und gleichzeitig immer billiger wurden, konnte UNIX auch für diese Rechner portiert werden. Schon die Leistung der ersten Intel-8088-Rechner reichte zur Unterstützung von UNIX fast aus. Für diese Rechnerklasse gab es z.B. XENIX. Es handelte sich dabei um eine vom Umfang her stark eingeschränkte UNIX-Version, die aber grundsätzliche Eigenschaften, wie z.B. das Filesystem oder Pipes bereits beherrschte. Inzwischen wurde dieses System soweit weiterentwickelt, daß es zu Recht als UNIX bezeichnet werden kann, setzt aber auf der anderen Seite einen Rechner mit 80386- oder 80486-Prozessor und mindestens vier MByte Hauptspeicher voraus. Die jüngste Entwicklung im Bereich PC-UNIX stellt die Portierung des Berkeley System 4.3 für 80486-Computer dar.
Heute findet sich UNIX auf Rechnern aller Klassen, angefangen vom PC bis hin zu den leistungsfähigsten Groß- und Vektorrechnern. Derzeit ist UNIX mit steigender Tendenz auf mehr als 300.000 Rechnern installiert. UNIX wurde auf fast alle Rechnertypen portiert, die jemals gebaut worden sind. Da die Microcomputer sich in ihrer Leistungsfähigkeit immer mehr den millionenteuren Großrechnern vergangener Tage annähern bzw. jene inzwischen übertreffen, ist es nur konsequent, UNIX auch für diese Rechner verfügbar zu machen. Die Portabilität von UNIX wird derzeit von keinem anderen Betriebssystem erreicht. Immer mehr Benutzer sind von der beeindruckenden Flexibilität, Leistungsfähigkeit und Eleganz dieses Betriebssystems überzeugt. Insbesondere die vorhandenen Werkzeuge und die Unterstützung der bausteinartigen Programmentwicklung haben UNIX inzwischen zu einem bei Software-Entwicklern weit verbreiteten Betriebssystem gemacht. Das UNIX-System bietet eine Umgebung, in der Programme fast problemlos zwischen Rechnern unterschiedlicher Architekturen portiert werden können.
UNIX zählt zu den leistungsfähigsten Computer-Betriebssystemen, die derzeit verfügbar sind. Aufgrund seiner klaren und mächtigen Kommandosyntax können Benutzer damit Funktionen auf schnelle Weise durchführen, die in anderen Betriebssystemen ummöglich oder nur sehr umständlich zu realisieren sind. UNIX wird in seinem Leistungsumfang von keinem anderen Betriebssystem auch nur annähernd erreicht.
Das UNIX-System ist ein Timesharing- und Multitasking-Betriebssystem, d.h. mehrere Funktionen werden zur gleichen Zeit ausgeführt. Zudem ist UNIX ein leistungsfähiges Multiuser-Betriebssystem, d.h. es kann viele Benutzer gleichzeitig bedienen.
Insbesondere sollen die wachsenden Anforderungen an Arbeitsspeicher bei gleichzeitig gesteigerter Rechenleistung mit diesen Rechnern erfüllt werden. Diese Eigenschaften, kombiniert mit dem eleganten Betriebssystem UNIX und modernen X-Terminals, sollen ein wesentlich effektiveres Arbeiten als bisher ermöglichen.
Als Datenspeicher (Fileserver) für den gesamten Pool werden zwei Modelle RS/6000-950 eingesetzt. Auf diesen Geräten werden die meisten Daten für die Verwendung im gesamten UNIX-Pool gespeichert und mittels AFS (Andrew File System)[2] allen berechtigten Workstations zur Verfügung gestellt (siehe auch Kapitel 3). Ein Teil der Dialoganwendungen soll auf diesen Maschinen ausgeführt werden. Für Dialoganwendungen von den X-Terminals aus stehen vier Modelle RS/6000-320H zur Verfügung. Sie verfügen über ausreichende Rechenleistung für weitere Dialoganwendungen.
Für rechenintensive Anwendungen, die zudem noch hohe Speicheranforderungen haben, sind zwei Modelle RS/6000-580 installiert. Diese beiden Maschinen sind mit je 512 MByte Hauptspeicher ausgestattet. Auf ihnen sollen Programme über NQS (Network Queueing System) abgegeben werden können (NQS oder ein äquivalentes System befindet sich noch in der Vorbereitung.). Interaktiver Betrieb ist auf diesen Geräten dagegen nicht vorgesehen. Für große, während der Programmausführung benötigte Dateien, haben auf diese Rechner einen besonders großen temporären Speicherbereich (/tmp) von mehreren GByte.
Als dedizierte Grafik-Workstations werden RS/6000-530H eingesetzt. Sie verfügen über einen speziellen Grafik-Adapter, der die Darstellung und Animation dreidimensionaler Grafiken in Echtzeit ermöglicht.
Es sind zudem eine Reihe weiterer Workstations verschiedener Hersteller beantragt. Diese Geräte sollen ebenfalls in den Workstationpool integriert werden. Eine Einbindung in das gemeinsame Filesystem über AFS ist vorgesehen.
Das Filesystem AFS sorgt dafür, daß auf den
erwähnten Rechnern der Zugriff zu allen benötigten Daten ermöglicht wird. Alle diese Maschinen sind Mitglieder der gleichen AFS-Zelle urz.uni-heidelberg.de. Sie verfügen somit alle über die gleiche Sicht der Anwenderdaten. Es ist für den Anwender unerheblich, auf welchem Gerät die von ihm verwendeten Daten gespeichert werden.
Die beiden Fileserver heißen aixfile1.urz.uni-heidelberg.de bzw. aixfile2.urz.uni-heidelberg.de. Innerhalb des Namensraumes urz.uni-heidelberg.de können beide Rechner auch mit ihren Kurznamen, aixfile1 bzw. aixfile2, angesprochen werden. Für einfache Dialoganwendungen stehen vier Dialogserver (aixterm1, aixterm2, aixterm3, aixterm4) zur Verfügung. Anwendern, die von außen auf unseren UNIX-Pool zugreifen wollen, wird empfohlen, eine dieser vier Maschinen für ihre Arbeit auszuwählen. Alle Maschinen sind AFS-Clients der Fileserver (aixfile1, aixfile2). So stehen, wie oben erwähnt, zwei weitere Modelle RS/6000-580 als Hintergrundrechner zur Verfügung.
(Schematische Darstellung der Vernetzung der besprochenen Rechner)
Die X-Terminals sind untereinander in zwei weiteren Subnetzen (129.206.117.xxx und 129.206.118.xxx) organisiert, um die Netzwerkbelastung durch umfangreiche Datenübertragungen an die Terminals so niedrig wie möglich zu halten. Den Benutzern dieser Terminals stehen vorwiegend vier RS/6000-320H zur Verfügung, d.h. ihre Anmeldung (login) wird von einer dieser Maschinen angenommen.
Variable Bestandteile in den einzelnen Beschreibungen werden kursiv dargestellt.
Sofern die Eindeutigkeit gewahrt bleibt, werden diese beiden Methoden zur Hervorhebung von Textbestandteilen auch an anderen Stellen eingesetzt.
Oft werden Funktionen benötigt, die die gleichzeitige Betätigung zweier Tasten erfordern. So kann beispielsweise durch gleichzeitiges Betätigen der Tasten Control (Ctrl bzw. Strg) und D eine aktive Shell verlassen werden. Die Notwendigkeit, diese beiden Tasten gleichzeitig zu betätigen, wird im Text folgendermaßen angezeigt: <Ctrl-D>. Diese Schreibweise gilt analog für andere gleichzeitig zu betätigende Tastenkombinationen.
In einigen Fällen ist es notwendig, zwei Control-Funktionen unmittelbar hintereinander aufzurufen, um eine angestrebte Wirkung zu erzielen. Für diese Fälle werden zwei Darstellungsweisen verwendet:
<Ctrl-x><Ctrl-y>
oder
<Ctrl-x-y>
Die zweite Darstellungsweise soll andeuten, daß vor der Betätigung des zweiten Zeichens die Ctrl-Taste nicht losgelassen werden darf.
Weiterhin gibt es Fälle, bei denen der Eingabe einer Control-Funktion die Eingabe eines einfachen Zeichens zu folgen hat. Durch
<Ctrl-x y>
soll dargestellt werden, daß vor der Betätigung der y-Taste sowohl die Ctrl- als auch die x-Taste freizugeben sind.
Für weitere Sondertasten werden im Text folgende Abkürzungen verwendet:
Bezeichnung im Bedeutung mögliche Beschriftung Handbuch auf der Tastatur <Cr> Eingabetaste (Enter-Taste) , Enter, Eingabe <Del> lösche Zeichen unter dem Cursor Entf, Lösch, Del <Esc> Escape-Taste Eing lösch, Esc <Tab> Tabulator-Taste <BS> lösche Zeichen links vom Cursor , Rück <Shift> Umschalt-Taste, z.B für , , Shift Großbuchstaben
In der folgenden Tabelle sind die Funktion der einzelnen Rechner mit Angabe des Modells, der installierte Hauptspeicher, der maximal belegbare Speicherplatz, die maximale CPU-Zeit und die Namen der betroffenen Rechner angegeben.
Funktion Modell Hauptspeicher benutzbarer Maximale CPU-Zeit Rechnernamen Speicher Computeserver 580 512 MB 512 MB *) unbegrenzt aixcomp1 aixcomp2 Fileserver 950 256 MB 256 MB 6 Stunden aixfile1 aixfile2 Grafikserver 53H 64 MB 64 MB 1 Stunde aixgraf1 aixgraf2 Terminalserver 32H 64 MB 64 MB 1 Stunde aixterm1 aixterm2 aixterm3 aixterm4
*) 512 MB können nur mit dem Parameter '-bmaxdata:0x20000000' für den Linker adressiert werden. Ohne diesen Parameter sind 256 MB adressierbar. Der Parameter kann schon beim Compilieren des Programms angegeben werden.
Beispiel:
cc -O -o memtest memtest.c -bmaxdata:0x20000000
Die einzelnen Beschränkungen beziehen sich nicht auf die gesamte Sitzung, sondern gelten pro Prozeß (Kommando oder Job). Mit dem Kommando 'ulimit -Ha' können Sie sich die jeweils geltenden Werte anzeigen lassen, sofern Sie die 'bash' (Standard) oder die 'ksh' verwenden. Das Kommando 'ulimit' ermöglicht Ihnen, die Werte zu verkleinern. Mit ulimit -t 100 begrenzen Sie die CPU-Zeit auf 100 Sekunden.