Heim  >  Artikel  >  Betrieb und Instandhaltung  >  In welche Teile kann Linux unterteilt werden?

In welche Teile kann Linux unterteilt werden?

青灯夜游
青灯夜游Original
2022-05-12 19:29:2111284Durchsuche

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.

In welche Teile kann Linux unterteilt werden?

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:

  • Linux-Kernel
  • GNU-Tools
  • Grafische Desktop-Umgebung
  • Anwendungssoftware

Die folgende Abbildung ist ein grundlegendes Strukturblockdiagramm, das zeigt, wie die verschiedenen Teile zusammenarbeiten, um eine zu bilden Komplettes Linux-System.
In welche Teile kann Linux unterteilt werden?

1.Linux-Kernel

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:

  • Systemspeicherverwaltung
  • Softwareprogrammverwaltung
  • Hardwaregeräteverwaltung
  • Dateisystemverwaltung

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.
In welche Teile kann Linux unterteilt werden?

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.

Wenn der Runlevel 1 ist, werden nur grundlegende Systemprozesse und ein Konsolenterminalprozess gestartet. Wir nennen diesen Einzelbenutzermodus. Der Einzelbenutzermodus wird normalerweise für die Notfallwartung des Dateisystems verwendet, wenn ein Systemproblem auftritt. Offensichtlich kann sich in diesem Modus nur eine Person (normalerweise der Systemadministrator) am System anmelden, um Daten zu manipulieren.

Der Standard-Start-Run-Level ist 3. Auf dieser Ausführungsebene wird die meiste Anwendungssoftware, beispielsweise Netzwerkunterstützungsprogramme, gestartet. Ein weiterer häufiger Runlevel unter Linux ist 5. Auf dieser Ausführungsebene startet das System das grafische X-Window-System, sodass sich Benutzer über das grafische Desktop-Fenster beim System anmelden können.

Das Linux-System kann die Funktionen des gesamten Systems steuern, indem es die Startebene anpasst. Durch Anpassen der Ausführungsebene von 3 auf 5 kann das System von einem konsolenbasierten System in ein fortschrittlicheres grafisches X-Window-System umgewandelt werden.

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:

    In den Kernel kompilierter Gerätetreibercode
  • Gerätetreibermodul, das in den Kernel eingefügt werden kann
Das Linux-System behandelt Hardwaregeräte als spezielle Dateien, sogenannte Gerätedokument. Es gibt 3 Kategorien von Gerätedateien:

  • Zeichengerätedatei: Bezieht sich auf ein Gerät, das bei der Datenverarbeitung jeweils nur ein Zeichen verarbeiten kann. Die meisten Arten von Modems und Terminals werden als Zeichengerätedateien erstellt.
  • Blockgerätedatei: bezieht sich auf ein Gerät, das große Datenmengen gleichzeitig verarbeiten kann, z. B. eine Festplatte.
  • Netzwerkgerätedateien: bezieht sich auf Geräte, die Datenpakete zum Senden und Empfangen von Daten verwenden, einschließlich verschiedener Netzwerkkarten und eines speziellen Loopback-Geräts.

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.
In welche Teile kann Linux unterteilt werden?

2.GUN-Tools

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:

  • Tools zum Verarbeiten von Dateien
  • Tools zum Bearbeiten von Text
  • Tools zum Verwalten von Prozessen

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.

3.Linux Desktop Environment

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.
In welche Teile kann Linux unterteilt werden?
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.

In welche Teile kann Linux unterteilt werden?

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.

In welche Teile kann Linux unterteilt werden?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn