14
1 UNIX und C UNIX und C Einleitung Einleitung

1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

Embed Size (px)

Citation preview

Page 1: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

1

UNIX und CUNIX und C

EinleitungEinleitung

Page 2: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 3: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 4: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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.

Page 5: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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.

Page 6: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 7: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 8: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 9: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

9

AufbauAufbau

Hardware

Hardwarespezifischer Kern

Hardwareunabhängiger Kern

Standardbibliotheken

Shells

Nutzerprogramme

Dienstprogramme

Page 10: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 11: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 12: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 13: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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

Page 14: 1 UNIX und C Einleitung. 2Themen UNIX UNIX Geschichte Geschichte Eigenschaften Eigenschaften Aufbau Aufbau Shells Shells Filesystem Filesystem Wichtige

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