Re: Inside Unix

From: Martin Cracauer <cracauer(at)hanse.de>
Date: Thu, 11 Jun 1998 00:04:11 +0200

In <C125661F.0054F9DA.00(at)notes.labcontrol.com>, Marc_van_Woerkom(at)notes.labcontrol.com wrote:
> Marc van Woerkom
> 10.06.98 17.55

Wie auch im Mailheader vermerkt...
 
> War gerade fuer die Firma Buecher kaufen, darunter sollte
> was zur Systemprogrammierung unter Unix sein.
>
> Im Sinn hatte ich eigentlich ein Buch a la dem Deitel/Kogan
> zu OS/2 2.x., also ein Buch, das in die Tiefe geht, was
> so Sachen wie Speicherverwaltung, IPC, Threads,
> Scheduling usw. geht.
>
> Ich habe jetzt erstmal "Advanced Programming in the UNIX
> Environment" von W.R. Stevens gekauft, damit wir mal eine
> Einfuehrung da haben.

Das ist ein sehr gutes Buch, unterschaetze es nicht. Wenn Du die
Implementation eines Unix-Interfaces verstehen willst, dann ist es
sehr wichtig, die gewuenschte Sematik der Oberflaeche mit dem "warum"
zu verstehen, dann ergeben sich viele Implementationsdetails auch von
selbst. Wichtiger als Implementationsdetails zu lesen, ohne dass einem
die genauen Richtungsentscheidungen in Ihrer Tragweite klar werden.
 
> Persoenlich bin ich nicht zufrieden, ich haette gerne
> detailliertere Informationen, z.B. zum Object code Format,
> den Algorithmen des Schedulers etc.

Zum (zukuenftigen FreeBSD-) Objectcodeformat ELF gibt's einen
Prentice-Hall Band, ansonsten eher nichts.

> Ich habe auch kurz in das 4.4 BSD Buch von McKusick geschaut
> und konnte weder privat noch fuer die Firma zum Kauf durchringen -
> ich waere auch fuer Bemerkungen zu diesem Buch dankbar.

Ich hasse das Ding. Es ist unpraezise, stellt staendig Annahmen als
Tatsachen dar, ebenso wie es staendig alle Beduerfnisse nach
Spezialperformance oder Features, die gerade nicht dem entsprechen,
was die Authoren fuer nuetzlich erachten, als irrelevant abtut und ist
zu so grossen Teilen zum Zeitpunkt der Drucklegung nicht mit dem Stand
der 4.4-Ableger kompatibel gewesen (vom jetzigen Zustand nicht zu
reden), dass man von schlechter Recherche reden muss. Alles IMHO,
natuerlich.

Aus diesem Buch kann man nur generelle Konzepte der
Kernelprogrammierung nehmen, nicht aber spezielles fuer
Free/Net/OpenBSD. Fuer solche Konzepte gibt es aber wieder bessere
Buecher (z.B. Tannenbaum).

Ein Buch, dass ich sehr gut finde, ist - sorry - das deutsche "Linux -
Kernel - Programmierung". Exact auf den Punkt, geradeaus, treffend,
nuetzlich. Nur leider fuer's falsche OS. Daher evtl. inhaltlich
Quatsch, ich kann's nicht pruefen :-)

Gut sind auch folgende, aber leider keine Rundumschlaege, sondern
nur Teilbereiche des Kernels beleuchtend:

- Stevens TCP/IP Illustrated Band 2 (BSD-Implementation).

- Schimmel, "Unix Systems for Modem Architectures" behandelt Caches
  und Gleichzeitigkeit im allgemeinen Sinne. Ich besitze glaube ich
  alle Buecher zum Thema Threads, aber dieses hier reicht eigentlich,
  wenn man keine Interface-Archaelogie betreiben will, sondern die
  Mechanismen verstehen will.

Der Punkt ist, wenn Du Dich anhand dieser Buecher ernstmal in den
Kernel-Code reingefunden hat, dann kannst Du den bloeden Scheduler im
Source Deines OS lesen. /usr/src/sys/kern/kern_synch.c ist mit
Kommentaren ziemlich gut ausgestattet, vielleicht hilft Dir das auch
schon.

Martin
Received on Thu 11 Jun 1998 - 00:09:36 CEST

search this site