HOWTO zur Unix-Philosophie (C) 2006 T.Birnthaler/H.Gottschalk OSTC GmbH, http://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