reine Buchbestellungen ab 5 Euro senden wir Ihnen Portofrei zuDiesen Artikel senden wir Ihnen ohne weiteren Aufpreis als PAKET

System-Programmierung in UNIX
Teil 2: Techniken
Axel-Tobias Schreiner

Print on Demand - Dieser Artikel wird für Sie gedruckt!

49,99 €

inkl. MwSt. · Portofrei
Dieses Produkt wird für Sie gedruckt, Lieferzeit ca. 14 Werktage
Menge:

Produktbeschreibung

Das vorliegende Buch ist der zweite Band, der als Ausarbeitung der Software Vorle­ sungen 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-Programmie­ rung in groben Zügen sowie vor allem die Programmiersprache C besprochen, in 1 der praktisch die gesamte system nahe 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 ein­ schlä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 be­ sprochen 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.
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.
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.
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 Endmonta

Klappentext



Das vorliegende Buch ist der zweite Band, der als Ausarbeitung der Software Vorle­sungen 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-Programmie­rung 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 ein­schlä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.


Ähnliche Artikel