UNIX und C Einleitung EDV1 - 01Einführung
Themen UNIX Geschichte Eigenschaften Aufbau Shells Filesystem Wichtige Kommandos und Programme Einführung in C Arbeit mit C unter UNIX Kopplung von C- und JAVA-Programmen Webseiten-Programmierung mit HTML EDV1 - 01Einführung
Literatur Arne Burmeister Der Einstieg in UNIX Carl Hanser Verlag München Wien 2. Auflage 2000 39,80 DM Prof. Uwe Stephan Einführung in UNIX http://www.tfh-berlin.de/~stephan/i_unroot.html EDV1 - 01Einführung
UNIX/C - Geschichte 1969: Ken Thompson (Bell Telephone Laboratories) arbeitet an der Entwicklung des Betriebssystems MULTICS und eines Spieles auf diesem System. Die Entwicklung von MULTICS wird eingestellt. Thompson möchte das Spiel auf einer PDP-7 weiterentwickeln. Die Maschine hat jedoch kein Betriebssystem. Er entwickelt in Maschinensprache ein Minimalbetriebsystem unter Nutzung von MULTICS-Ideen. Portierung auf PDP-11. Um das System besser portierbar zu machen entwickelt er zusammen mit Dennis Ritchie die Programmiersprache C. 1973: Thompson und Ritchie schreiben das gesamte UNIX-System in C (bis auf 3%). Der verbleibende Rest ist hardwarespezifisch. Das System wird als Quelltext verbreitet und ist leicht auf verschiedene Hardwareplattformen portierbar. EDV1 - 01Einführung
Um 1980: Es bilden sich zwei wesentlich neue Linien heraus: BSD : University of California in Berkley Version 4.3 1987 System V : AT&T Release 4 1990 Auf der Basis von BSD und SVR4 werden von mehreren Computer-Herstellern eigene Derivate entwickelt: DEC: ULTRIX, OSF1 HP: HPUX IBM: AIX SUN: SunOS, Solaris SGI: IRIX Verschiedene Bemühungen um Standardisierung scheitern. Neue Versionen integrieren die Eigenschaften der anderen Linie mehr oder weniger vollständig. EDV1 - 01Einführung
LINUX enthält viele Eigenschaften großer System noch nicht: In den 90er Jahren hat sich die Open Source Lizensierung und die GNU-Software verbreitet. In diesem Rahmen entwickelte Linus Torvalds das offene und frei verfügbare System LINUX. Dieses wurde auf viele verschiedene Hardwareplattformen portiert. Durch die Beteiligung vieler Softwareentwickler in der ganzen Welt entwickelt es sich stürmisch und passt sich der Entwicklung der Hardware optimal an. LINUX wird inzwischen von großen Hardwareherstellern als System angeboten, z.B: Compaq, SGI. Problem: LINUX und die GNU-Compiler sind nicht optimal auf die Prozessoren abgestimmt. Daher sind die Rechner mit Originalsystemen in der Regel leistungsfähiger. LINUX enthält viele Eigenschaften großer System noch nicht: Diskless Clients Cluster Unterstützung von SMP-Systemen mit größerer Prozessorzahl EDV1 - 01Einführung
Multitaskingsystem UNIX ist ein Multitaskingsystem, d.h. es können gleichzeitig mehrere Aufgaben auf einem Rechner abgearbeitet werden. Das System organisiert die Verteilung der vorhandenen Ressourcen auf mehrere quasi gleichzeitig ablaufende Prozesse. Ressourcen sind z.B.: CPU-Leistung, Hauptspeicher, externe Speicher, Drucker u.s.w. UNIX realisiert preemptives Multitasking, d.h. die Ressourcen werden den einzelnen Aufgaben vom System zugeteilt (z.B. Zeitscheiben mit Prioritätssteuerung) Andere Multitaskingsysteme: Windows 3.x, 9x, NT, 2000 MacOS, BeOS Alle Mainframesysteme Nicht-Multitaskingsysteme: DOS EDV1 - 01Einführung
Multiusersystem UNIX ist von Beginn an ein Multiusersystem, d.h. es können mehrere verschiedene Nutzer gleichzeitig den selben Computer nutzen. Nutzer müssen eindeutig und sicher identifiziert werden. Name, Passwort Daten der Nutzer müssen gegen unbefugte Benutzung geschützt werde. Zugriffsrechte Nutzereigene Konfiguration der Umgebung muss ermöglicht werden. eigene Konfigurationsdateien Andere Multiusersysteme: Windows NT 4.0 + MS Terminalserver, Windows 2000 Mainframesysteme : OpenVMS, IBM OS/390 Nicht-Multiusersysteme DOS, Windows 3.x, 9x, NT 3.x EDV1 - 01Einführung
Aufbau Nutzerprogramme Dienstprogramme Shells Standardbibliotheken EDV1 - 01Einführung Standardbibliotheken Hardwareunabhängiger Kern Hardwarespezifischer Kern Hardware
Zum UNIX-“Standard“ gehören auch die Standardbibliotheken. Modularität Schichtenaufbau Hardwarenähere Schichten werden teilweise durch hardwarefernere Schichten überdeckt. Der Kern deckt die Hardware vollständig ab. Zugriff auf die Hardware ist also nur über den UNIX-Kern möglich. Zum UNIX-“Standard“ gehören auch die Standardbibliotheken. Modularität Portabilität Kompatibilität EDV1 - 01Einführung
Aufgaben des Kerns Verwaltung von Prozessen Aufteilung der Rechenzeit Verwaltung des Speichers Ansteuerung von Geräten Bereitstellung des Dateisystems Kommunikation zwischen Prozessen EDV1 - 01Einführung
Standardbibliotheken Standardbibliotheken ermöglichen die Nutzung komplexerer Funktionen ohne direkt auf den Systemkern zugreifen zu müssen. Z.B.: Arbeit mit Graphischen Nutzeroberflächen Fenster öffnen Text ausgeben u.s.w. Arbeit mit dem Filesystem Arbeit mit externen Geräten EDV1 - 01Einführung
Shells Die Shell ermöglicht dem Nutzer mit dem System zu kommunizieren, d.h. Kommandos einzugeben, Programme zu starten und kompliziertere Abläufe zu automatisieren (Scripte). Shells sind normale Programme. Es existieren viele verschiedene Shells. Der Nutzer arbeitet immer mit einer Shell. sh : Bourne-Shell bash : Bourne Again Shell ksh: Korn-Shell csh : C-Shell tcsh : erweiterte C-Shell Shells stellen bestimmte elementare Kommandos zu Verfügung, z.B.: cd : Change Directory pwd : Print Working Directory EDV1 - 01Einführung
Dienstprogramme Dienstprogramme sind normale, ausführbare Programme, die bestimmte z.T. sehr komplexe Funktionen realisieren und mit dem UNIX-Betriebsystem ausgeliefert werden. Beispiele: sed : automatisches editieren von Texten vi, ed : einfache Editoren grep : suchen von Texten in Dateien find : durchsuchen von Verzeichnisbäumen nach Dateien mit bestimmten Eigenschaften und Ausführen von Kommandos mit diesen Dateien cat : Ausgabe einer Datei auf den Bildschirm man : betrachten der Manualpages lpr : Datei drucken ls : Verzeichnisinhalt anzeigen EDV1 - 01Einführung