HOWTO zur Unix-Philosophie
(C) 2006 T.Birnthaler/H.Gottschalk <howtos(at)ostc.de>
OSTC GmbH, www.ostc.de
$Id: unix-philosophy-HOWTO.txt,v 1.8 2008-09-16 10:27:24 tsbirn Exp $
Dieses Dokument beschreibt die Philosphie des Betriebssystems UNIX.
* "Small is beautiful" (KISS-Prinzip = "Keep it simple, stupid")
+ Kleiner KERN + viele getrennte kleine Dienstprogramme
+ In Hochsprache "C" geschrieben (
+ Benutzerschnittstelle "SHELL" = ganz normales Programm
+ "No news are good news" (keine Meldungen am Programmende)
+ Programme lesen/schreiben von/auf Standard-Ein/Ausgabe (Pipeline)
+ Werkzeugkasten-Prinzip (leichte Kombinierbarkeit auf Kommandozeile)
+ Sysadmin "root" darf ALLES, normale Benutzer dürfen fast NICHTS
(durchbrechen mit Spezialrechten: setuid/setgid/sticky)
+ Strenge Trennung von System- und Benutzerdaten
+ Strenge Trennung von Betriebssystem, GUI und Anwendungen
* Einfacher Datei- und Dateisystemaufbau
+ Nur EIN hierarchischer Dateibaum mit Wurzel "/" (keine Laufwerke!)
+ ALLES ist Datei (Speicher, Geräte,...; siehe Verz. /dev /proc /sys)
+ Datei = Folge von Bytes (keine Records fester Breite)
+ Standard-Dateiformat = Zeilenorientierter ASCII-Text (meist)
+ Groß/Kleinschreibung wird unterschieden
+ Alle Z. außer "\0" (NUL-Byte) und "/" (Verz.trenner) in Dateinamen erlaubt
+ Rechtesystem einfach (3-stufige ACL: user/group/other + read/write/execute)
* Mündiger Benutzer wird vorausgesetzt ("weiß was er tut")
+ Von Software-Entwicklern für Software-Entwickler
+ System beinhaltet standardmäßig Software-Entwicklungssystem (C, make, RCS)
+ UNIX-Quellcode mitgeliefert (zumindest anfangs)
+ Nichts wird verborgen (außer es ist unbedingt notwendig)
+ Kooperatives Arbeiten wird vorausgesetzt
+ Kaum Automatismen (z.B. Datenträger montieren)
+ Kaum GUIs
* Kommandoorientierte Bedienung
+ Benutzerschnittstelle "SHELL"
+ Saubere Trennung Datenkanal + Fehlerkanal (für Fehlermeldungen)
+ Groß/Kleinschreibung wird unterschieden
+ Gesamte Dokumentation online verfügbar (Manual-Pages)
+ Alles Englisch (Abkürzungen, Akronyme, Dokumentation)
+ Kurze klein geschr. Namen für Kommandos/Dateien/Verz. (leicht zu tippen)
+ Vermeidung von Sonderzeichen in Namen (z.B. Leerzeichen)
* Programmierbar = automatisierbar
+ Kommandoorientierte Bedienung
- Viele Kommandos
- Kaum GUIs
+ SHELL interaktiv + im Batch-Betrieb nutzbar
- Vollwertige Programmiersprache
- Einheitliche Kommandosyntax: CMD [-OPTIONS] SOURCE DESTINATION
- Einheitliche Quotierung: "...", '..." und \
- Einheitliche Namensexpansion: * ? [...] ~
- Einheitliche Umlenkbarkeit: Standard-Ein/Ausgabe
- Einheitliche Exit-Stati: 0=Ok, >0=Fehler