Schreiner | System-Programmierung in UNIX | E-Book | sack.de
E-Book

E-Book, Deutsch, Band 2, 409 Seiten, eBook

Reihe: XLeitfäden der angewandten Informatik

Schreiner System-Programmierung in UNIX

Teil 2: Techniken
1986
ISBN: 978-3-322-94668-3
Verlag: Vieweg & Teubner
Format: PDF
Kopierschutz: 1 - PDF Watermark

Teil 2: Techniken

E-Book, Deutsch, Band 2, 409 Seiten, eBook

Reihe: XLeitfäden der angewandten Informatik

ISBN: 978-3-322-94668-3
Verlag: Vieweg & Teubner
Format: PDF
Kopierschutz: 1 - PDF Watermark



Das vorliegende Buch ist der zweite Band, der als Ausarbeitung der Software Vorlesungen entstand, die ich jeweils im zweiten Studienjahr im Nebenfach Informatik an der Universität Ulm anbiete. Die Vorlesungen führen in systemnahe Programmierung ein, also in den unmittelbaren Umgang mit Maschine und Betriebssystem. Im ersten Band wurden Rechnerarchitekturen, Assembler-und Makro-Programmierung in groben Zügen sowie vor allem die Programmiersprache C besprochen, in 1 der praktisch die gesamte systemnahe Programmierung bei UNIX erfolgt. Dieser zweite Band befaßt sich vor allem mit den Systemaufrufen zum Datei- und Prozeßmanagement bei UNIX. minx, ein Filemanager, der ein UNIX Dateisystem nachbildet und auch zum Beispiel unter MS-DOS auf Rechnern wie dem IBM-PC lauffähig ist, dient dazu, die Implementierung des UNIX Dateisystems und der einschlägigen Kommandos für Zugriff und Pflege zu zeigen. Der Leser sollte einfache Datenstrukturen, problemorientierte Programmierung und vor allem C und Hilfsprogramme wie make beherrschen, die im ersten Band besprochen wurden. Die Kapitel wurden weitergezählt um Verweise auf den ersten Band zu vereinfachen. Das achte Kapitel gehört eigentlich noch zu den 'Werkzeugen' des ersten Bandes.

Schreiner System-Programmierung in UNIX jetzt bestellen!

Zielgruppe


Upper undergraduate


Autoren/Hrsg.


Weitere Infos & Material


8 Portable Ein- und Ausgabe — ”stdio” und ”termcap”.- 8.1 Dateianschluß.- 8.2 Transferoperationen.- 8.3 Positionierung.- 8.4 Umwandlungen.- 8.5 Andere Funktionen.- 8.6 Filter.- 8.7 Text seitenweise betrachten — ”crt”.- 8.7.1 Aufgabenverteilung — ”main()”.- 8.7.2 Benutzerschnittstelle — ”query()”.- 8.7.3 Positionierung und Ausgabe — ”page()”.- 8.7.4 Eingabe — ”newline()”.- 8.7.5 Dateianschluß.- 8.7.6 Eine temporäre Datei.- 8.7.7 Mustersuche.- 8.8 Schirmoperationen am Terminal.- 8.8.1 ”curses”.- 8.8.2 Beispiel.- 8.8.3 ”termlib”.- 9 Systemaufrufe und Kommandos.- 9.1 Das UNIX Dateisystem.- 9.2 Standards.- 9.3 Existente Dateien kopieren — ”cat”.- 9.3.1 Funktionsbeschreibung.- 9.3.2 Hauptprogramm.- 9.3.3 Meldung und Prozeßabbruch — ”fatal()”.- 9.3.4 Kopieren — ”read()” und ”write()”.- 9.3.5 Dateianschluß — ”open()” und ”close()”.- 9.3.6 Ausblick.- 9.4 Information über Dateien — ”Is”.- 9.4.1 Funktionsbeschreibung.- 9.4.2 Hauptprogramm.- 9.4.3 Katalog oder Datei — ”stat()”.- 9.4.4 Information über eine Datei — ”stat()”.- 9.4.5 Traverse der Dateihierarchie — ”struct direct”.- 9.4.6 Positionieren in einer Datei — ”Iseek()”.- 9.4.7 Ausblick.- 9.5 Wo bin ich — ”pwd”.- 9.5.1 Funktionsbeschreibung und Hauptprogramm.- 9.5.2 Aufwärts zur Wurzel — ”chdir()”.- 9.5.3 Ausblick.- 9.6 Arbeitskatalog und Suche nach Kommandos.- 9.6.1 Arbeitskatalog wechseln — ”cd”.- 9.6.2 Verdeckte Argumente — ”getenv()”.- 9.6.3 Vererbungslehre — ”system()”.- 9.6.4 Ausblick — ”sh” und ”PATH”.- 9.7 Kataloge manipulieren — ”mkdir” und ”rmdir”.- 9.7.1 Funktionsbeschreibung.- 9.7.2 Pfadmassage.- 9.7.3 Ein neuer Katalog — ”mknod()” und ”link()”.- 9.7.4 Ein Katalog wird entfernt — ”unlink()”.- 9.7.5 Ausblick — Ritchie’s Patent.- 9.8 Dateinamen löschen — ”rm”.- 9.8.1 Funktionsbeschreibung.- 9.8.2 Realisierung.- 9.8.3 Ausblick.- 9.9 Kopieren und verlagern — ”cp”, ”In” und ”mv”.- 9.9.1 Funktionsbeschreibung.- 9.9.2 Hauptprogramm.- 9.9.3 Ist sie’s oder ist sie’s nicht?.- 9.9.4 Kopieren — ”creat()”.- 9.9.5 Ein zweiter Dateiname.- 9.9.6 Datei umbenennen.- 9.9.7 Ausblick.- 9.10 Dateien, Besitzer und Benutzer.- 9.10.1 Prozeßidentifikation — ”login”.- 9.10.2 Zugriffsschutz.- 9.10.3 Super- und andere Benutzer.- 9.10.4 Zugriffsschutz ändern — ”chmod”.- 9.10.5 Besitzer und Gruppe ändern — ”chown” und ”chgrp”.- 9.10.6 Ausblick — ”access()”.- 10 Der Filemanager — ”minx”.- 10.1 Was ist ein Filemanager?.- 10.2 Die UNIX Filemanager-Schnittstelle.- 10.3 Wie funktioniert ein Systemaufruf?.- 10.4 Speicherflächen für den Filemanager.- 10.5 Architektur des Filemanagers.- 10.6 Programmiertechnik.- 10.6.1 Konstruktion von Namen.- 10.6.2 Zugriffsmakros.- 10.7 Fehler.- 10.7.1 Fehlerarten.- 10.7.2 Reaktionen.- 10.7.3 Fehlerberichte.- 10.8 Ablaufverfolgung.- 10.9 Block-Depot — ”buf”-Modul.- 10.9.1 Aufgaben.- 10.9.2 Datenstrukturen — ”buf.h” und ”super.h”.- 10.9.3 Parametrisierung — ”param.h” und ”types.h”.- 10.9.4 Implementierung — ”buf.c”.- 10.9.5 Systemaufrufe.- 10.9.6 Systemabbruch.- 10.10 Gerätetreiber.- 10.10.1 Prinzip.- 10.10.2 Gerätenummern — ”bdevsw[]”.- 10.10.3 Dateisystem zum Anfassen — ”mem.c”.- 10.10.4 Ausblick.- 10.11 Test eines Moduls.- 10.12 Inode-Depot — ”inode”-Modul.- 10.12.1 Aufgaben.- 10.12.2 Datenstrukturen — ”inode.h” und ”dinode.h”.- 10.12.3 Implementierung — ”inode.c”.- 10.12.4 Erweiterung des linearen Dateisystems.- 10.12.5 Test.- 10.12.6 Ausblick.- 10.13 File-Tabelle — ”file”-Modul.- 10.13.1 Aufgaben.- 10.13.2 Datenstrukturen — ”file.h” und ”user.h”.- 10.13.3 Implementierung — ”file.c”.- 10.13.4 Systemaufrufe.- 10.13.5 Test.- 10.13.6 Ausblick.- 10.14 Datentransfer — ”io”-Modul.- 10.14.1 Aufgaben.- 10.14.2 Implementierung — ”io.c”.- 10.14.3 Systemaufrufe.- 10.14.4 Zeichenorientierte Geräte — ”cdevsw[]”.- 10.14.5 Test.- 10.15 Katalogsystem — ”name”-Modul.- 10.15.1 Aufgaben.- 10.15.2 Implementierung — ”name.c”.- 10.15.3 Systemaufrufe.- 10.15.4 Test.- 10.16 Andere Systemaufrufe — ”svc”-Modul.- 10.16.1 Aufgaben.- 10.16.2 Implementierung — ”svc.c”.- 10.17 Endmontage.- 10.17.1 Das Rahmenprogramm — ”minx.c”.- 10.17.2 Quo vadis, Systemaufruf? — ”minx.h”.- 10.17.3 Potemkinsche Funktionen — ”stdio.c”.- 10.17.4 Prozeßmanagement — ”process()”.- 10.17.5 Kommandoprozessor — ”sh.c”.- 10.17.6 Ablaufverfolgung.- 10.17.7 Konfiguration.- 10.18 Ausblick.- 11 Management und Pflege des Dateisystems.- 11.1 Konstruktion einer Gerätedatei — ”mknod”.- 11.1.1 Prinzip.- 11.1.2 Implementierung.- 11.2 Erweiterung der Dateihierarchie — ”mount” und ”umount”.- 11.2.1 Prinzip — ”mount()” und ”umount()”.- 11.2.2 Implementierung.- 11.3 Dateihierarchie fixieren — ”sync” und ”update”.- 11.4 Konstruktion eines Dateisystems — ”mkfs”.- 11.4.1 Prinzip.- 11.4.2 Algorithmus.- 11.4.3 Details.- 11.5 Konsistenz des linearen Dateisystems — ”icheck”.- 11.5.1 Prinzip.- 11.5.2 Algorithmus.- 11.5.3 Hilfsfunktionen — ”maint”-Modul.- 11.5.4 Details.- 11.6 Konsistenz der Kataloge — ”dcheck”.- 11.6.1 Prinzip.- 11.6.2 Algorithmus.- 11.6.3 Details.- 11.7 Reparatur.- 11.7.1 Prinzip — ”fsck”.- 11.7.2 Inode modifizieren — ”clri” und ”ipatch”.- 11.7.3 Lineare Verwicklungen.- 11.7.4 Katalogprobleme.- 11.7.5 Ausblick — ”fsck”.- 12 Prozesse.- 12.1 Manipulationen mit Programmen und Prozessen.- 12.1.1 Ein neues Image — ”exec”.- 12.1.2 Verdeckte Argumente.- 12.1.3 Prozeßmanagement — ”exit()”, ”fork()” und ”wait()”.- 12.1.4 Kommando als Unterprogramm — ”system()”.- 12.1.5 Wie macht’s die Shell?.- 12.2 Signale.- 12.2.1 Begriffe.- 12.2.2 Systemaufrufe — ”kill()” und ”signal()”.- 12.2.3 ”system()” für Fortgeschrittene.- 12.2.4 Abfangfunktionen.- 12.2.5 Signale und die Shell.- 12.2.6 Ruhepause — ”alarm()”, ”pause()” und ”sleepo”.- 12.2.7 Das geteilte Terminal.- 12.2.8 Signale stapelweise.- 12.3 Dateiverbindung zwischen Prozessen.- 12.3.1 Systemaufruf — ”pipe()”.- 12.3.2 Verpackung — ”popen()” und ”pclose()”.- 12.4 Prozeßsynchronisation.- 12.4.1 Druckermanagement — ”spool”.- 12.4.2 Stapelverarbeitung — ”batch”.- Anhang 1 Hinweise zu den Denkpausen.- Anhang 2 ”minx” Manual.- Quellen.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.