Die Unix -Architektur ist durch ihre Einfachheit, Eleganz und Modularität gekennzeichnet. Es gibt keine einzige, streng definierte Architektur, da unterschiedliche Unix-ähnliche Systeme (einschließlich Linux) ihre eigenen Implementierungen haben, aber die Kernprinzipien bleiben konsistent. Hier sind die Schlüsselaspekte:
1. Kernel:
* monolithischer Kernel: Der Kern des UNIX -Systems. Es verwaltet die Ressourcen des Systems (CPU, Speicher, E/A-Geräte), bietet Systemaufrufe für Benutzer-Raum-Programme, um mit diesen Ressourcen zu interagieren, und verarbeitet Prozesse. Dies steht im Gegensatz zu Microkernels, in denen sich mehr Funktionen im Benutzerbereich befinden.
* Schichtarchitektur (in vielen Implementierungen): Viele sind in allen UNIX -Systemen nicht streng durchgesetzt, aber viele weisen eine geschichtete Architektur auf, in der verschiedene Kernelmodule unterschiedliche Privilegien und Zugriff auf Hardware haben.
* Geräte -Treiber: Module im Kernel, die mit bestimmten Hardware-Geräten interagieren und ihre Komplexität von Benutzer-Raum-Anwendungen abstrahieren.
2. Shell:
* Befehlszeilen-Interpreter: Die primäre Schnittstelle für Benutzer kann mit dem System interagieren. Es nimmt Befehle als Eingabe auf und führt sie aus, häufig durch Aufrufen von Programmen im Benutzerbereich. Beispiele sind Bash, ZSH und KSH.
3. Systemaufrufe:
* Schnittstelle zwischen Kernel und Benutzerraum: Die einzige Möglichkeit für User-Space-Programme, auf Kernel-Dienste und Systemressourcen zuzugreifen, sind Systemanrufe. Dies bietet eine gut definierte und sichere Oberfläche.
4. Dateisystem:
* Hierarchisches Dateisystem: Organisiert Dateien und Verzeichnisse in einer baumartigen Struktur. Dies bietet eine konsistente Möglichkeit, auf Daten zuzugreifen und zu verwalten. Zu den wichtigsten Funktionen gehören:
* Inodes: Datenstrukturen, die Dateien und Verzeichnisse darstellen, die Metadaten wie Berechtigungen und Zeitstempel enthalten.
* Verzeichnisse: Spezielle Dateien, die Zeiger auf andere Inodes enthalten.
* Portabilität: Das Dateisystemdesign erleichtert die Portabilität zwischen verschiedenen UNIX -Systemen.
5. Dienstprogramme:
* kleine, spezialisierte Programme: UNIX betont die Verwendung vieler kleiner einzelner Versorgungsunternehmen, die mit Rohren und Umleitung kombiniert werden können, um komplexere Funktionen zu erzeugen. Dies fördert Modularität und Wiederverwendbarkeit.
6. Rohre und Umleitung:
* Kommunikation mit Interprozess: Mechanismen, mit denen Programme miteinander kommunizieren können, indem sie ihre Standardeingangs-/Ausgabestreams anschließen. Dies ermöglicht leistungsstarke Kombinationen einfacher Versorgungsunternehmen.
7. Bibliotheken:
* wiederverwendbarer Code: Bibliotheken bieten vorgeschriebene Funktionen und Datenstrukturen, die Anwendungen verwenden können, die Entwicklungszeit verkürzen und die Wiederverwendung von Code fördern.
Zusammenfassend: Die UNIX -Architektur basiert auf einer einfachen, aber leistungsstarken Designphilosophie, die Modularität, Portabilität und die Kombination kleiner, spezialisierter Programme betont. Der Kernel bietet Kerndienste, die Shell bietet Benutzerinteraktion und Dienstprogramme bieten spezifische Funktionen. Dieses geschichtete Design hat zusammen mit einem robusten Dateisystem und der Inter-Process-Kommunikationsmechanismen einen äußerst einflussreichen Einfluss auf die Entwicklung von Betriebssystemen und Software. Es ist jedoch wichtig zu beachten, dass "Unix" ein breiter Begriff ist, der viele verschiedene Implementierungen umfasst und spezifische Details erheblich variieren können.