Upload
albrekt-achterberg
View
103
Download
1
Embed Size (px)
Citation preview
1
UNIX und CUNIX und C
EinleitungEinleitung
2
ThemenThemen
UNIXUNIX GeschichteGeschichte EigenschaftenEigenschaften AufbauAufbau ShellsShells FilesystemFilesystem Wichtige Kommandos und ProgrammeWichtige Kommandos und Programme
Einführung in CEinführung in C Arbeit mit C unter UNIXArbeit mit C unter UNIX
Kopplung von C- und JAVA-ProgrammenKopplung von C- und JAVA-Programmen Webseiten-Programmierung mit HTMLWebseiten-Programmierung mit HTML
3
LiteraturLiteratur
Arne BurmeisterArne BurmeisterDer Einstieg in UNIXDer Einstieg in UNIXCarl Hanser Verlag München WienCarl Hanser Verlag München Wien2. Auflage 20002. Auflage 200039,80 DM39,80 DM
Prof. Uwe StephanProf. Uwe StephanEinführung in UNIXEinführung in UNIXhttp://http://wwwwww..tfhtfh--berlinberlin.de/~.de/~stephanstephan/i_/i_unrootunroot..htmlhtml
4
UNIX/C - GeschichteUNIX/C - Geschichte
1969: Ken Thompson (Bell Telephone Laboratories) arbeitet an der 1969: Ken Thompson (Bell Telephone Laboratories) arbeitet an der Entwicklung des Betriebssystems MULTICS und eines Spieles auf Entwicklung des Betriebssystems MULTICS und eines Spieles auf diesem System. Die Entwicklung von MULTICS wird eingestellt.diesem System. Die Entwicklung von MULTICS wird eingestellt.
Thompson möchte das Spiel auf einer PDP-7 weiterentwickeln. Die Thompson möchte das Spiel auf einer PDP-7 weiterentwickeln. Die Maschine hat jedoch kein Betriebssystem. Er entwickelt in Maschine hat jedoch kein Betriebssystem. Er entwickelt in Maschinensprache ein Minimalbetriebsystem unter Nutzung von Maschinensprache ein Minimalbetriebsystem unter Nutzung von MULTICS-Ideen. Portierung auf PDP-11.MULTICS-Ideen. Portierung auf PDP-11.
Um das System besser portierbar zu machen entwickelt er Um das System besser portierbar zu machen entwickelt er zusammen mit Dennis Ritchie die Programmiersprache C.zusammen mit Dennis Ritchie die Programmiersprache C.
1973: Thompson und Ritchie schreiben das gesamte UNIX-System 1973: Thompson und Ritchie schreiben das gesamte UNIX-System in C (bis auf 3%). Der verbleibende Rest ist hardwarespezifisch. in C (bis auf 3%). Der verbleibende Rest ist hardwarespezifisch.
Das System wird als Quelltext verbreitet und ist leicht auf Das System wird als Quelltext verbreitet und ist leicht auf verschiedene Hardwareplattformen portierbar.verschiedene Hardwareplattformen portierbar.
5
Um 1980: Es bilden sich zwei wesentlich neue Linien heraus:Um 1980: Es bilden sich zwei wesentlich neue Linien heraus: BSD : University of California in BerkleyBSD : University of California in Berkley
Version 4.3 1987Version 4.3 1987 System V : AT&TSystem V : AT&T
Release 4 1990Release 4 1990 Auf der Basis von BSD und SVR4 werden von mehreren Auf der Basis von BSD und SVR4 werden von mehreren
Computer-Herstellern eigene Derivate entwickelt:Computer-Herstellern eigene Derivate entwickelt: DEC: ULTRIX, OSF1DEC: ULTRIX, OSF1 HP: HPUXHP: HPUX IBM: AIXIBM: AIX SUN: SunOS, SolarisSUN: SunOS, Solaris SGI: IRIXSGI: IRIX
Verschiedene Bemühungen um Standardisierung scheitern. Verschiedene Bemühungen um Standardisierung scheitern. Neue Versionen integrieren die Eigenschaften der anderen Linie Neue Versionen integrieren die Eigenschaften der anderen Linie mehr oder weniger vollständig.mehr oder weniger vollständig.
6
In den 90er Jahren hat sich die Open Source Lizensierung und In den 90er Jahren hat sich die Open Source Lizensierung und die GNU-Software verbreitet. In diesem Rahmen entwickelte die GNU-Software verbreitet. In diesem Rahmen entwickelte Linus Torvalds das offene und frei verfügbare System LINUX. Linus Torvalds das offene und frei verfügbare System LINUX. Dieses wurde auf viele verschiedene Hardwareplattformen Dieses wurde auf viele verschiedene Hardwareplattformen portiert. Durch die Beteiligung vieler Softwareentwickler in der portiert. Durch die Beteiligung vieler Softwareentwickler in der ganzen Welt entwickelt es sich stürmisch und passt sich der ganzen Welt entwickelt es sich stürmisch und passt sich der Entwicklung der Hardware optimal an.Entwicklung der Hardware optimal an.
LINUX wird inzwischen von großen Hardwareherstellern als LINUX wird inzwischen von großen Hardwareherstellern als System angeboten, z.B: Compaq, SGI, IBM.System angeboten, z.B: Compaq, SGI, IBM.Problem: LINUX und die GNU-Compiler sind nicht optimal auf Problem: LINUX und die GNU-Compiler sind nicht optimal auf die Prozessoren abgestimmt. Daher sind die Rechner mit die Prozessoren abgestimmt. Daher sind die Rechner mit Originalsystemen in der Regel leistungsfähiger.Originalsystemen in der Regel leistungsfähiger.
LINUX enthält viele Eigenschaften großer System noch nicht:LINUX enthält viele Eigenschaften großer System noch nicht: Diskless ClientsDiskless Clients ClusterCluster Unterstützung von SMP-Systemen mit größerer Unterstützung von SMP-Systemen mit größerer
ProzessorzahlProzessorzahl
7
MultitaskingsystemMultitaskingsystem UNIX ist ein Multitaskingsystem, d.h. es können gleichzeitig UNIX ist ein Multitaskingsystem, d.h. es können gleichzeitig
mehrere Aufgaben auf einem Rechner abgearbeitet werden. mehrere Aufgaben auf einem Rechner abgearbeitet werden. Das System organisiert die Verteilung der vorhandenen Das System organisiert die Verteilung der vorhandenen
Ressourcen auf mehrere quasi gleichzeitig ablaufende Ressourcen auf mehrere quasi gleichzeitig ablaufende Prozesse. Ressourcen sind z.B.: CPU-Leistung, Hauptspeicher, Prozesse. Ressourcen sind z.B.: CPU-Leistung, Hauptspeicher, externe Speicher, Drucker u.s.w.externe Speicher, Drucker u.s.w.
UNIX realisiert preemptives Multitasking, d.h. die Ressourcen UNIX realisiert preemptives Multitasking, d.h. die Ressourcen werden den einzelnen Aufgaben vom System zugeteilt (z.B. werden den einzelnen Aufgaben vom System zugeteilt (z.B. Zeitscheiben mit Prioritätssteuerung)Zeitscheiben mit Prioritätssteuerung)
Andere Multitaskingsysteme:Andere Multitaskingsysteme: Windows 3.x, 9x, Me, NT, 2000, XPWindows 3.x, 9x, Me, NT, 2000, XP MacOS, BeOS, AmigaOSMacOS, BeOS, AmigaOS Alle MainframesystemeAlle Mainframesysteme
Nicht-Multitaskingsysteme:Nicht-Multitaskingsysteme: DOSDOS
8
MultiusersystemMultiusersystem UNIX ist von Beginn an ein Multiusersystem, d.h. es UNIX ist von Beginn an ein Multiusersystem, d.h. es
können mehrere verschiedene Nutzer gleichzeitig den können mehrere verschiedene Nutzer gleichzeitig den selben Computer nutzen. selben Computer nutzen. Nutzer müssen eindeutig und sicher identifiziert Nutzer müssen eindeutig und sicher identifiziert
werden. werden. Name, Passwort Name, Passwort Daten der Nutzer müssen gegen unbefugte Daten der Nutzer müssen gegen unbefugte
Benutzung geschützt werde. Benutzung geschützt werde. Zugriffsrechte Zugriffsrechte Nutzereigene Konfiguration der Umgebung muss Nutzereigene Konfiguration der Umgebung muss
ermöglicht werden. ermöglicht werden. eigene Konfigurationsdateien eigene Konfigurationsdateien in eigenem Nutzerverzeichnisin eigenem Nutzerverzeichnis
Andere Multiusersysteme:Andere Multiusersysteme: Windows NT 4.0 + MS Terminalserver, Windows Windows NT 4.0 + MS Terminalserver, Windows
2000, Windows XP2000, Windows XP Mainframesysteme : OpenVMS, IBM OS/390Mainframesysteme : OpenVMS, IBM OS/390
Nicht-MultiusersystemeNicht-Multiusersysteme DOS, Windows 3.x, 9x, NT 3.xDOS, Windows 3.x, 9x, NT 3.x
9
AufbauAufbau
Hardware
Hardwarespezifischer Kern
Hardwareunabhängiger Kern
Standardbibliotheken
Shells
Nutzerprogramme
Dienstprogramme
10
Schichtenaufbau Schichtenaufbau Hardwarenähere Schichten werden teilweise durch Hardwarenähere Schichten werden teilweise durch
hardwarefernere Schichten überdeckt.hardwarefernere Schichten überdeckt. Der Kern deckt die Hardware vollständig ab. Zugriff auf die Der Kern deckt die Hardware vollständig ab. Zugriff auf die
Hardware ist also nur über den UNIX-Kern möglich.Hardware ist also nur über den UNIX-Kern möglich. Zum UNIX-“Standard“ gehören auch die Standardbibliotheken.Zum UNIX-“Standard“ gehören auch die Standardbibliotheken. ModularitätModularität PortabilitätPortabilität KompatibilitätKompatibilität
11
Aufgaben des KernsAufgaben des Kerns
Verwaltung von ProzessenVerwaltung von Prozessen Aufteilung der RechenzeitAufteilung der Rechenzeit Verwaltung des SpeichersVerwaltung des Speichers Ansteuerung von GerätenAnsteuerung von Geräten Bereitstellung des DateisystemsBereitstellung des Dateisystems Kommunikation zwischen ProzessenKommunikation zwischen Prozessen
12
StandardbibliothekenStandardbibliotheken
Standardbibliotheken ermöglichen die Nutzung komplexerer Standardbibliotheken ermöglichen die Nutzung komplexerer Funktionen ohne direkt auf den Systemkern zugreifen zu müssen. Funktionen ohne direkt auf den Systemkern zugreifen zu müssen. Z.B.:Z.B.: Arbeit mit graphischen NutzeroberflächenArbeit mit graphischen Nutzeroberflächen
Fenster öffnenFenster öffnen Text ausgeben u.s.w.Text ausgeben u.s.w.
Arbeit mit dem FilesystemArbeit mit dem Filesystem Arbeit mit externen GerätenArbeit mit externen Geräten
13
ShellsShells Die Shell ermöglicht dem Nutzer mit dem System zu Die Shell ermöglicht dem Nutzer mit dem System zu
kommunizieren, d.h. Kommandos einzugeben, Programme zu kommunizieren, d.h. Kommandos einzugeben, Programme zu starten und kompliziertere Abläufe zu automatisieren (Scripte).starten und kompliziertere Abläufe zu automatisieren (Scripte).
Shells sind normale Programme. Shells sind normale Programme. Es existieren viele Es existieren viele verschiedene Shells.verschiedene Shells.
Der Nutzer arbeitet immer mit einer Shell.Der Nutzer arbeitet immer mit einer Shell. sh : Bourne-Shellsh : Bourne-Shell bash : Bourne Again Shellbash : Bourne Again Shell ksh: Korn-Shellksh: Korn-Shell csh : C-Shellcsh : C-Shell tcsh : erweiterte C-Shelltcsh : erweiterte C-Shell
Shells stellen bestimmte elementare Kommandos zu Verfügung, Shells stellen bestimmte elementare Kommandos zu Verfügung, z.B.:z.B.: cd : Change Directorycd : Change Directory pwd : Print Working Directorypwd : Print Working Directory
14
DienstprogrammeDienstprogramme Dienstprogramme sind normale, ausführbare Programme, die Dienstprogramme sind normale, ausführbare Programme, die
bestimmte z.T. sehr komplexe Funktionen realisieren und mit dem bestimmte z.T. sehr komplexe Funktionen realisieren und mit dem UNIX-Betriebsystem ausgeliefert werden.UNIX-Betriebsystem ausgeliefert werden.
Beispiele:Beispiele: sed : automatisches editieren von Textensed : automatisches editieren von Texten vi, ed : einfache Editorenvi, ed : einfache Editoren grep : suchen von Texten in Dateiengrep : suchen von Texten in Dateien find : durchsuchen von Verzeichnisbäumen nach Dateien mit find : durchsuchen von Verzeichnisbäumen nach Dateien mit
bestimmten Eigenschaften und Ausführen von Kommandos mit bestimmten Eigenschaften und Ausführen von Kommandos mit diesen Dateiendiesen Dateien
cat : Ausgabe einer Datei auf den Bildschirmcat : Ausgabe einer Datei auf den Bildschirm man : betrachten der Manualpagesman : betrachten der Manualpages lpr : Datei druckenlpr : Datei drucken ls : Verzeichnisinhalt anzeigenls : Verzeichnisinhalt anzeigen