Heim > Artikel > Betrieb und Instandhaltung > In welche Teile kann Linux unterteilt werden?
Linux kann in 4 Teile unterteilt werden: 1. Kernel, der die gesamte Hardware und Software auf dem Computersystem steuert und hauptsächlich für die Systemspeicherverwaltung, Softwareprogrammverwaltung, Hardwaregeräteverwaltung und Dateisystemverwaltung verantwortlich ist; , mit Ausnahme des Kernels. Notwendige Tools außer kontrollierten Hardwaregeräten, wie z. B. Shell 3. Desktop-Umgebung, wie z. B. KDE; 4. Anwendungssoftware.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
Linux ist ein kostenloses und Open-Source-UNIX-ähnliches Betriebssystem. Es ist hauptsächlich von den Ideen von Minix und Unix inspiriert. Es ist ein POSIX-basiertes Multi-User-, Multi-Task-, Multi-Thread- und Multi-CPU-Betriebssystem. Linux kann in die folgenden vier Teile unterteilt werden:
Die folgende Abbildung ist ein grundlegendes Strukturblockdiagramm, das zeigt, wie die verschiedenen Teile zusammenarbeiten, um eine zu bilden Komplettes Linux-System.
Der Kern des Linux-Systems ist der Kernel. Der Kernel steuert die gesamte Hardware und Software auf einem Computersystem. Der Kernel ist hauptsächlich für die folgenden vier Funktionen verantwortlich:
1.1 Systemspeicherverwaltung
Eine der Hauptfunktionen des Der Betriebssystemkernel verwaltet den Speicher. Der Kernel verwaltet nicht nur den auf dem Server verfügbaren physischen Speicher, er kann auch virtuellen Speicher (also Speicher, der nicht tatsächlich vorhanden ist) erstellen und verwalten. Der Kernel implementiert virtuellen Speicher über den Speicherplatz auf der Festplatte. Dieser Bereich wird als Swap Space bezeichnet. Der Kernel tauscht ständig den Inhalt des virtuellen Speichers zwischen dem Auslagerungsspeicher und dem tatsächlichen physischen Speicher aus. Dadurch geht das System davon aus, dass mehr Speicher als physischer Speicher verfügbar ist.
Die Speichereinheit ist nach Gruppen in viele Blöcke unterteilt, und diese Blöcke werden Seiten genannt. Der Kernel platziert jede Speicherseite im physischen Speicher oder im Auslagerungsbereich. Der Kernel verwaltet dann eine Speicherseitentabelle, die angibt, welche Seiten sich im physischen Speicher befinden und welche Seiten auf die Festplatte ausgelagert wurden.
Der Kernel zeichnet auf, welche Speicherseiten verwendet werden, und kopiert automatisch Speicherseiten, auf die über einen bestimmten Zeitraum nicht zugegriffen wurde, in den Auslagerungsbereich (Auslagerung genannt) – auch wenn noch Speicher verfügbar ist. Wenn ein Programm auf eine ausgelagerte Speicherseite zugreifen möchte, muss der Kernel eine andere Speicherseite aus dem physischen Speicher auslagern, um Platz dafür zu schaffen, und dann die angeforderte Speicherseite aus dem Auslagerungsbereich einlagern. Offensichtlich nimmt dieser Vorgang Zeit in Anspruch und verlangsamt den laufenden Prozess. Solange das Linux-System läuft, wird der Prozess des Austauschens von Speicherseiten für laufende Programme nie aufhören.
1.2 Softwareprogrammverwaltung
Das Linux-Betriebssystem nennt laufende Programme einen Prozess. Der Kernel erstellt den ersten Prozess (Init-Prozess genannt), um alle anderen Prozesse auf dem System zu starten. Wenn der Kernel startet, lädt er den Init-Prozess in den virtuellen Speicher. Wenn der Kernel einen anderen Prozess startet, weist er dem neuen Prozess einen privaten Bereich im virtuellen Speicher zu, um die vom Prozess verwendeten Daten und Codes zu speichern.
Das Init-System des Linux-Betriebssystems verwendet Runlevel. Die Ausführungsebene bestimmt, dass der Init-Prozess bestimmte Prozesstypen ausführt, die in der Datei /etc/inittab oder im Verzeichnis /etc/rcX.d definiert sind. Das Linux-Betriebssystem verfügt über 5 Startup-Run-Levels.
1.3 Hardwaregeräteverwaltung Eine weitere Aufgabe des Kernels ist die Verwaltung von Hardwaregeräten. Jedes Gerät, mit dem ein Linux-System kommunizieren muss, muss seinen Treibercode im Kernel-Code haben. Der Treibercode fungiert als Vermittler zwischen der Anwendung und dem Hardwaregerät und ermöglicht den Datenaustausch zwischen dem Kernel und dem Gerät. Es gibt zwei Methoden zum Einfügen von Gerätetreibercode in den Linux-Kernel:
1.4 Dateisystemverwaltung
Der Linux-Kernel unterstützt das Lesen und Schreiben von Daten von der Festplatte über verschiedene Arten von Dateisystemen. Tabelle 1-1 listet die Standarddateisysteme auf, die von Linux-Systemen zum Lesen und Schreiben von Daten verwendet werden.
Zusätzlich zur Steuerung von Hardwaregeräten durch den Kernel benötigen Betriebssysteme auch Tools, um einige Standardfunktionen auszuführen, wie z. B. die Steuerung von Dateien und Programmen. Dieser Kernsatz an Tools für Linux-Systeme wird als coreutils-Paket (Core Utilities) bezeichnet. Das GNU coreutils-Paket besteht aus drei Teilen:
2.1-Shell
GNU/Linux-Shell ist ein spezielles interaktives Tool. Es bietet Benutzern die Möglichkeit, Programme zu starten, Dateien im Dateisystem und Prozesse zu verwalten, die auf Linux-Systemen ausgeführt werden. Der Kern der Shell ist die Kommandozeilen-Eingabeaufforderung. Die Eingabeaufforderung der Befehlszeile ist der interaktive Teil der Shell. Es ermöglicht Ihnen, Textbefehle einzugeben, die Befehle dann zu interpretieren und im Kernel auszuführen. Sie können auch mehrere Shell-Befehle in eine Datei einfügen und diese als Programm ausführen. Diese Dateien werden Shell-Skripte genannt.
Auf einem Linux-System stehen in der Regel mehrere Linux-Shells zur Verfügung. Verschiedene Shells verfügen über unterschiedliche Funktionen, einige eignen sich besser zum Erstellen von Skripten und andere besser zum Verwalten von Prozessen. Die Standard-Shell für alle Linux-Distributionen ist die Bash-Shell. Die Bash-Shell wurde vom GNU-Projekt entwickelt und gilt als Standard-Unix-Shell.
2.1.1 Arten von Shells
Welche Art von Shell-Programm das System startet, hängt von Ihrer persönlichen Benutzer-ID-Konfiguration ab. In der Datei /etc/passwd ist das Standard-Shell-Programm im 7. Feld des Benutzer-ID-Datensatzes aufgeführt. Sobald sich der Benutzer an einem virtuellen Konsolenterminal anmeldet oder einen Terminalemulator in der GUI startet, wird das Standard-Shell-Programm ausgeführt. Beispiel: Benutzer root verwendet /bin/bash (Bash-Shell) als Standard-Shell-Programm
[root@node1 bin]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
Es gibt jedoch eine andere Standard-Shell, /bin/sh, die als Standard-System-Shell für diejenigen verwendet wird, die System benötigen Shell-Skript verwendet. Sie sehen oft, dass einige Distributionen Softlinks verwenden, um die Standard-System-Shell auf die Bash-Shell festzulegen, wie zum Beispiel CentOS-Distributionen:
$ ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 Mar 18 15:05 /bin/sh -> bash
/bin/sh ist äquivalent zu /bin/bash - -posix Die Verwendung von sh zum Aufrufen und Ausführen des Skripts entspricht dem Aktivieren des POSIX-Standardmodus von Bash. Die verschiedenen Unterschiede zwischen ihnen ergeben sich aus den Unterschieden zwischen dem POSIX-Standardmodus und Bash.
Die Eltern-Kind-Beziehung von 2.1.2 Shell
Die standardmäßige interaktive Shell, die beim Anmelden an einem virtuellen Controller-Terminal oder beim Ausführen eines Terminalemulators in der GUI gestartet wird, ist eine übergeordnete Shell.
Wenn Sie nach der CLI-Eingabeaufforderung den Befehl /bin/bash oder einen anderen gleichwertigen Bash-Befehl eingeben, wird ein neues Shell-Programm erstellt. Dieses Shell-Programm wird als Child-Shell bezeichnet. Die Subshell verfügt außerdem über eine CLI-Eingabeaufforderung und wartet ebenfalls auf Befehlseingaben.
Zum Beispiel: Verwendung von ps -f
[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD root 727 711 0 11:01 pts/0 00:00:00 -bash root 4385 727 0 12:06 pts/0 00:00:00 ps -f
Bei Verwendung von ps -f werden zwei Prozesse angezeigt. Die Prozess-ID eines der Prozesse ist 727 und er führt das Bash-Shell-Programm aus. Die Prozess-ID eines anderen Prozesses ist 4385, was dem Befehl ps -f entspricht.
[root@node1 bin]# bash[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD root 727 711 0 11:01 pts/0 00:00:00 -bash root 4492 727 0 12:08 pts/0 00:00:00 bashroot 4512 4492 0 12:08 pts/0 00:00:00 ps -f
Nach Eingabe des Befehls bash erscheint eine Subshell. Der zweite ps -f wird in einer Subshell ausgeführt. Anhand der angezeigten Ergebnisse können Sie erkennen, dass zwei Bash-Shell-Programme ausgeführt werden. Die ursprüngliche Prozess-ID des ersten Bash-Shell-Programms, das der übergeordnete Shell-Prozess ist, ist 727. Das zweite Bash-Shell-Programm, der Subshell-Prozess, hat eine PID von 4492. Beachten Sie, dass die übergeordnete Prozess-ID (PPID) der Unterschale 727 ist, was darauf hinweist, dass der übergeordnete Shell-Prozess der übergeordnete Prozess der Unterschale ist. Wenn ein Subshell-Prozess generiert wird, wird nur ein Teil der Umgebung des übergeordneten Prozesses in die Subshell-Umgebung kopiert.
1.KDE (K Desktop Environment, K Desktop Environment) wurde ursprünglich 1996 als Open-Source-Projekt veröffentlicht. Es generiert eine grafische Desktop-Umgebung ähnlich wie Microsoft Windows.
Mit dem KDE-Desktop können Sie Anwendungssymbole und Dateisymbole an bestimmten Stellen auf dem Desktop platzieren. Klicken Sie auf das Anwendungssymbol und das Linux-System führt die Anwendung aus. Klicken Sie auf ein Dateisymbol und der KDE-Desktop bestimmt, welche Anwendung zum Bearbeiten der Datei verwendet werden soll.
2.GNOME (die GNU Network Object Model Environment, die GNU Network Object Model Environment) ist eine weitere beliebte Linux-Desktop-Umgebung. GNOME wurde erstmals 1999 veröffentlicht und ist zur Standard-Desktop-Umgebung für viele Linux-Distributionen geworden.
3. Unity Desktop
Wenn Sie die Ubuntu-Linux-Distribution verwenden, werden Sie feststellen, dass sie sich etwas von den KDE- und GNOME-Desktopumgebungen unterscheidet. Genauer gesagt liegt dies daran, dass das für die Entwicklung von Ubuntu verantwortliche Unternehmen beschlossen hat, eine eigene Linux-Desktop-Umgebung namens Unity einzuführen.
Unity Desktop ist nach dem Ziel des Projekts benannt – ein einheitliches Desktop-Erlebnis für Workstations, Tablets und Mobilgeräte bereitzustellen. Unabhängig davon, ob Sie Ubuntu auf einer Workstation oder einem Mobiltelefon verwenden, funktioniert der Unity-Desktop auf die gleiche Weise.
Verwandte Empfehlungen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonIn welche Teile kann Linux unterteilt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!