Wo ist was im Linux-System: Unterschied zwischen den Versionen

Aus Synology Wiki
DaveR (Diskussion | Beiträge)
Updated busybox comment
Tommes (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
[[Category:Systemdatei|!]]
[[Category:Systemdatei|!]]
Auf der Disk Station (DS) läuft ein ganz normales Linux. Ganz normal? Fast :)
Auf einem Synology NAS läuft ein ganz normales Linux. Ganz normal? Fast!


Wenn man sich mit einem [[Die Kommandozeile|Terminalprogramm]] auf der DS einloggt (anmeldet), dann kann man sich mit der Login-Shell (Kommandozeile) unterhalten. Diese Shell, ash, (DSM 6 und neuer ash Ist symlink Zuo bash. DSM 5 und älter hatten ash; ist Teil der BusyBox) versteht eine Menge Kommandos (Commands, Befehle zum Aufrufen von Shell-Funktionen und Programmen). Dazu gibt es bereits ein eigenes Kapitel, das die wichtigsten Kommandos vorstellt.
Wenn man sich mit einem [[Die Kommandozeile|Terminalprogramm]] auf der Konsole des DiskStation Managers einloggt (anmeldet), kann man sich mit der Login-Shell (Kommandozeile) unterhalten. Vor der Einführung des DiskStation Manager 6 wurde hier die '''BusyBox''' mit '''ash''' (Almquist Shell) verwendet, mit der Einführung von DiskStation Manager 6 wurde auf '''bash''' (Bourne-Again Shell) umgestellt. '''bash''' versteht eine Menge Kommandos (Commands, Befehle zum Aufrufen von Shell-Funktionen und Programmen).  


Die Shell positioniert durch das Anmelden den Benutzer auf sein Home-Directory (Heimat-Verzeichnis). Den Pfad und Namen dieses Directories kann man sich mit dem Kommando '''pwd''' (print working directroy) anzeigen lassen. Mit dem Kommando '''ls''' (list directory sorted) lässt sich eine Liste der Dateien und Unterverzeichnisse erzeugen. Schöner wird diese Liste durch Hinzufügen der Kommando-Option '''-l''', also '''ls -l''' oder abgekürzt '''ll''' (= LL kleingeschrieben).
Wenn im '''DSM''' der '''Benutzer-Home-Dienst''' unter '''DSM-Hauptmenü > Systemsteuerung > Benutzer und Gruppe''' '''>''' Registerkarte '''Erweitert > Benutzerbasis''' > Kontrollkästchen '''Benutzer-Home-Dienst aktivieren''' aktiviert wurde, positioniert die Shell bei der Anmeldung des Benutzers im Terminal auf sein Home-Directory (Heimat-Verzeichnis). Den Pfad und Namen dieses Directories kann man sich mit dem Kommando '''pwd''' (print working directory) anzeigen lassen. <syntaxhighlight lang="shell">
MyUser@SynologyNAS:~$ pwd
/var/services/homes/MyUser


Mit dem Kommando '''cd /''' (change directory) positioniert man sich auf die Wurzel (root) des Dateisystems (File-Systems). Führt man anschließend einen '''ls -l''' aus, dann erhält man eine Übersichtsliste, die der folgenden ähnlich ist:
</syntaxhighlight>Das Home-Directory (Heimat-Verzeichnis) des Systembenutzers root befindet sich jedoch im Verzeichnis <code>/root</code>.<syntaxhighlight lang="shell">
root@SynologyNAS:~$ pwd
/root


<pre>drwxr-xr-x   2 root    root        4096 Aug 13 21:01 bin
</syntaxhighlight>Aber das nur am Rande. Weitere Informationen zum Thema '''Benutzer-Home-Dienst''' findest du in dem Artikel "[[Einrichtung und Besonderheiten des Benutzer-Home-Dienstes]]"
drwxr-xr-x   3 root     root         4096 Aug 17 19:10 dev
 
drwxr-xr-x   9 root     root         4096 Aug 17 20:01 etc
== DSM (DiskStation Manager) 6 und neuer ==
drwxr-xr-x   9 root     root         4096 Aug 17 20:01 etc.defaults
Mit der Einführung des DiskStation Manager 6 wurde die BusyBox endgültig abgeschafft und '''bash''' (Bourne-Again Shell) '''als Standard-Kommandozeilenschnittstelle (CLI) implementiert'''. Des Weiteren gab es einige Änderungen bzw. Anpassungen der grundlegenden Verzeichnisstruktur.
drwxr-xr-x   2 root     root         4096 Aug 8 16:47 initrd
 
drwxr-xr-x    8 root    root        4096 Aug 13 20:58 lib
Mit dem Kommando '''cd /''' (change directory) positioniert man sich auf die Wurzel (root) des Dateisystems (File-Systems).
lrwxrwxrwx   1 root    root           11 Aug 13 20:58 linuxrc -> bin/busybox (DSM 5 und älter only)
 
drwx------   2 root     root         4096 Aug 8 16:34 lost+found
Mit dem Kommando '''ls''' (list directory sorted) lässt sich eine Liste der Dateien und Unterverzeichnisse erzeugen. Schöner wird diese Liste durch Hinzufügen der Kommando-Option '''-l''', also '''ls -l''' oder abgekürzt '''ll''' (= LL kleingeschrieben). Führt man den Befehl '''ls -l''' aus, erhält man eine Übersichtsliste, die der folgenden ähnlich ist:<pre>root@SynologyNAS:~# cd /
drwxr-xr-x   2 root     root         4096 Aug 8 16:33 mnt
root@SynologyNAS:/# ls -l
drwxr-xr-x  31 root     root         4096 Aug 18 15:57 opt
total 44
dr-xr-xr-x   98 root    root            0 Jan 1970 proc
lrwxrwxrwx  1 root root    7 Sep 11 18:46 bin -> usr/bin
drwxr-xr-x    2 root     root         4096 Aug 15 14:15 root
drwxr-xr-x   7 root root    0 Feb  4 17:37 config
drwxr-xr-x   2 root    root        4096 Aug 13 20:58 sbin
drwxr-xr-x 16 root root 14000 Feb 24 03:14 dev
drwxr-xr-x   9 root    root            0 Jan 1  1970 sys
drwxr-xr-x 50 root root 4096 Feb 16 16:56 etc
drwxrwxrwt   3 root     root         580 Aug 18 18:53 tmp
drwxr-xr-x 43 root root 4096 Feb  4 17:37 etc.defaults
drwxr-xr-x   7 root     root         4096 Aug 13 20:58 usr
drwxr-xr-x   2 root root 4096 Sep 5 08:35 initrd
drwxr-xr-x   11 root     root         4096 Aug 17 20:01 var
lrwxrwxrwx  1 root root    7 Sep 11 18:46 lib -> usr/lib
drwxr-xr-x   11 root     root         4096 Aug 13 20:59 var.defaults
lrwxrwxrwx   1 root root    9 Sep 11 18:46 lib32 -> usr/lib32
drwxr-xr-x  22 root     root         4096 Aug 18 11:59 volume1
lrwxrwxrwx  1 root root    7 Sep 11 18:46 lib64 -> usr/lib
drwxrwxrwx    2 root     root         4096 Aug 14 22:45 volumeUSB1</pre>
drwx------   2 root root 4096 Sep 5 08:35 lost+found
drwxr-xr-x   2 root root 4096 Sep 5 08:35 mnt
drwx--x--x  3 root root 4096 Sep 11 18:48 opt
dr-xr-xr-x 396 root root    0 Mar 2019 proc
drwx------   8 root root 4096 Feb 12 16:43 root
drwxr-xr-x 55 root root  2860 Feb 26 16:36 run
lrwxrwxrwx  1 root root    8 Sep 11 18:46 sbin -> usr/sbin
dr-xr-xr-x 12 root root    0 Feb 4 17:36 sys
drwxrwxrwt 27 root root 2280 Feb 26 16:36 tmp
drwxr-xr-x 12 root root 4096 Jan 20 09:05 usr
drwxr-xr-x 15 root root 4096 Feb  4 17:37 var
drwxr-xr-x 12 root root 4096 Sep 11 18:47 var.defaults
drwxr-xr-x  1 root root   662 Feb  4 17:37 volume1
drwxr-xr-x  3 root root 4096 Feb  4 17:37 volumeUSB1
</pre>


Wozu gibt es diese Struktur? Was ist nun in den jeweiligen Directories enthalten? Das sind die brennende Fragen. Die Struktur ist hierarchisch, dient der Übersichtlichkeit und gibt es seit der dritten Unix-Version, die 1973 geschrieben wurde. Am Anfang war sie noch sehr schlicht: Es gab nur /bin, /dev, /etc, /tmp, /lib und /usr. Mitte der 90er Jahre ist sie standardisiert worden (POSIX) und  ist in fast jedem modernen Betriebssystem vorhanden (sogar in Windows wird sie eingerichtet, wenn man die Unix-Tool-Suite für Windows von Microsoft installiert).
Wozu gibt es diese Struktur? Was ist nun in den jeweiligen Directories enthalten? Das sind die brennende Fragen. Die Struktur ist hierarchisch, dient der Übersichtlichkeit und gibt es seit der dritten Unix-Version, die 1973 geschrieben wurde. Am Anfang war sie noch sehr schlicht: Es gab nur /bin, /dev, /etc, /tmp, /lib und /usr. Mitte der 90er Jahre ist sie standardisiert worden (POSIX) und  ist in fast jedem modernen Betriebssystem vorhanden (sogar in Windows wird sie eingerichtet, wenn man die Unix-Tool-Suite für Windows von Microsoft installiert).
Zeile 38: Zeile 56:
|-
|-
|/bin||binaries - Verzeichnis, in dem alle Programme stehen, die von den Benutzern ausgeführt werden dürfen
|/bin||binaries - Verzeichnis, in dem alle Programme stehen, die von den Benutzern ausgeführt werden dürfen
|-
|/config
|
|-
|-
|[[Dateien im /dev-Verzeichnis|/dev]]||devices - Gerätedateien = symbolische Namen für die Treiberendpunkte der Geräte
|[[Dateien im /dev-Verzeichnis|/dev]]||devices - Gerätedateien = symbolische Namen für die Treiberendpunkte der Geräte
Zeile 49: Zeile 70:
|[[Dateien im /lib-Verzeichnis|/lib]]||libraries - alle wichtigen Standard-Funktionen der Programme, die, da sie wiederverwendbar sind, in sogenannten libraries (Bibliotheken) ausgelagert sind
|[[Dateien im /lib-Verzeichnis|/lib]]||libraries - alle wichtigen Standard-Funktionen der Programme, die, da sie wiederverwendbar sind, in sogenannten libraries (Bibliotheken) ausgelagert sind
|-
|-
|/linuxrc||rc = run commands = Datei mit automatischen Startprogrammen. Ist hier ein Link auf die BusyBox, die sich so als init-Prozess startet. Sie besitzt eine eingebaute Liste der Aktivitäten (inittab), die während der Initialisierungsphase ausgeführt werden müssen. Dies wird bei anderen Unix-/Linux-Systemen oft durch eine externe Datei namens /etc/inittab vorgegeben. Für den init-Prozess der BusyBox gilt die Regel: fehlt die externe inittab, wird die intern eingebaute inittab verwendet.
|/lib32||
|-
|/lib64
|
|-
|-
|/lost+found||wird als Directory vom fsck (file-system-check) genutzt, falls verwaiste Blöcke gefunden werden, werden sie hier abgelegt
|/lost+found||wird als Directory vom fsck (file-system-check) genutzt, falls verwaiste Blöcke gefunden werden, werden sie hier abgelegt
Zeile 60: Zeile 84:
|-
|-
|/root||Home-Directory des Benutzers root (Systemadministrator)
|/root||Home-Directory des Benutzers root (Systemadministrator)
|-
|/run
|
|-
|-
|/sbin||system binaries - Verzeichnis, in dem alle Programme stehen, die spezielle Privilegien benötigen um ausgeführt werden zu dürfen, Systemverwaltungsprogramme, Daemon-Programme (=Server-Programme, Dienste)
|/sbin||system binaries - Verzeichnis, in dem alle Programme stehen, die spezielle Privilegien benötigen um ausgeführt werden zu dürfen, Systemverwaltungsprogramme, Daemon-Programme (=Server-Programme, Dienste)
Zeile 76: Zeile 103:
|-
|-
|/volumeUSB1||Dateisystem-Mount-Point für die erste Partition des externen USB-Laufwerks
|/volumeUSB1||Dateisystem-Mount-Point für die erste Partition des externen USB-Laufwerks
|}
== DSM (DiskStation Manager) 5 und älter ==
Vor der Einführung des DiskStation Manager 6 wurde das Open-Source-Projekt '''BusyBox''' verwendet, um grundlegende UNIX/Linux-Befehle über '''ash''' (Almquist Shell) bereitzustellen, die sich in der Verzeichnisstruktur des DSM im Verzeichnis <code>/linuxrc</code> befanden.<pre>lrwxrwxrwx    1 root    root          11 Aug 13 20:58 linuxrc -> bin/busybox
</pre>Nachfolgend eine kurze Beschreibung der Arbeitsweise
{| class="wikitable"
|+
!/
!root
|-
|/linuxrc
|rc = run commands = Datei mit automatischen Startprogrammen. Ist hier ein Link auf die BusyBox, die sich so als init-Prozess startet. Sie besitzt eine eingebaute Liste der Aktivitäten (inittab), die während der Initialisierungsphase ausgeführt werden müssen. Dies wird bei anderen Unix-/Linux-Systemen oft durch eine externe Datei namens /etc/inittab vorgegeben. Für den init-Prozess der BusyBox gilt die Regel: fehlt die externe inittab, wird die intern eingebaute inittab verwendet.
|}
|}

Aktuelle Version vom 26. Februar 2025, 16:54 Uhr

Auf einem Synology NAS läuft ein ganz normales Linux. Ganz normal? Fast!

Wenn man sich mit einem Terminalprogramm auf der Konsole des DiskStation Managers einloggt (anmeldet), kann man sich mit der Login-Shell (Kommandozeile) unterhalten. Vor der Einführung des DiskStation Manager 6 wurde hier die BusyBox mit ash (Almquist Shell) verwendet, mit der Einführung von DiskStation Manager 6 wurde auf bash (Bourne-Again Shell) umgestellt. bash versteht eine Menge Kommandos (Commands, Befehle zum Aufrufen von Shell-Funktionen und Programmen).

Wenn im DSM der Benutzer-Home-Dienst unter DSM-Hauptmenü > Systemsteuerung > Benutzer und Gruppe > Registerkarte Erweitert > Benutzerbasis > Kontrollkästchen Benutzer-Home-Dienst aktivieren aktiviert wurde, positioniert die Shell bei der Anmeldung des Benutzers im Terminal auf sein Home-Directory (Heimat-Verzeichnis). Den Pfad und Namen dieses Directories kann man sich mit dem Kommando pwd (print working directory) anzeigen lassen.

MyUser@SynologyNAS:~$ pwd
/var/services/homes/MyUser

Das Home-Directory (Heimat-Verzeichnis) des Systembenutzers root befindet sich jedoch im Verzeichnis /root.

root@SynologyNAS:~$ pwd
/root

Aber das nur am Rande. Weitere Informationen zum Thema Benutzer-Home-Dienst findest du in dem Artikel "Einrichtung und Besonderheiten des Benutzer-Home-Dienstes"

DSM (DiskStation Manager) 6 und neuer

Mit der Einführung des DiskStation Manager 6 wurde die BusyBox endgültig abgeschafft und bash (Bourne-Again Shell) als Standard-Kommandozeilenschnittstelle (CLI) implementiert. Des Weiteren gab es einige Änderungen bzw. Anpassungen der grundlegenden Verzeichnisstruktur.

Mit dem Kommando cd / (change directory) positioniert man sich auf die Wurzel (root) des Dateisystems (File-Systems).

Mit dem Kommando ls (list directory sorted) lässt sich eine Liste der Dateien und Unterverzeichnisse erzeugen. Schöner wird diese Liste durch Hinzufügen der Kommando-Option -l, also ls -l oder abgekürzt ll (= LL kleingeschrieben). Führt man den Befehl ls -l aus, erhält man eine Übersichtsliste, die der folgenden ähnlich ist:

root@SynologyNAS:~# cd /
root@SynologyNAS:/# ls -l
total 44
lrwxrwxrwx   1 root root     7 Sep 11 18:46 bin -> usr/bin
drwxr-xr-x   7 root root     0 Feb  4 17:37 config
drwxr-xr-x  16 root root 14000 Feb 24 03:14 dev
drwxr-xr-x  50 root root  4096 Feb 16 16:56 etc
drwxr-xr-x  43 root root  4096 Feb  4 17:37 etc.defaults
drwxr-xr-x   2 root root  4096 Sep  5 08:35 initrd
lrwxrwxrwx   1 root root     7 Sep 11 18:46 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Sep 11 18:46 lib32 -> usr/lib32
lrwxrwxrwx   1 root root     7 Sep 11 18:46 lib64 -> usr/lib
drwx------   2 root root  4096 Sep  5 08:35 lost+found
drwxr-xr-x   2 root root  4096 Sep  5 08:35 mnt
drwx--x--x   3 root root  4096 Sep 11 18:48 opt
dr-xr-xr-x 396 root root     0 Mar  1  2019 proc
drwx------   8 root root  4096 Feb 12 16:43 root
drwxr-xr-x  55 root root  2860 Feb 26 16:36 run
lrwxrwxrwx   1 root root     8 Sep 11 18:46 sbin -> usr/sbin
dr-xr-xr-x  12 root root     0 Feb  4 17:36 sys
drwxrwxrwt  27 root root  2280 Feb 26 16:36 tmp
drwxr-xr-x  12 root root  4096 Jan 20 09:05 usr
drwxr-xr-x  15 root root  4096 Feb  4 17:37 var
drwxr-xr-x  12 root root  4096 Sep 11 18:47 var.defaults
drwxr-xr-x   1 root root   662 Feb  4 17:37 volume1
drwxr-xr-x   3 root root  4096 Feb  4 17:37 volumeUSB1

Wozu gibt es diese Struktur? Was ist nun in den jeweiligen Directories enthalten? Das sind die brennende Fragen. Die Struktur ist hierarchisch, dient der Übersichtlichkeit und gibt es seit der dritten Unix-Version, die 1973 geschrieben wurde. Am Anfang war sie noch sehr schlicht: Es gab nur /bin, /dev, /etc, /tmp, /lib und /usr. Mitte der 90er Jahre ist sie standardisiert worden (POSIX) und ist in fast jedem modernen Betriebssystem vorhanden (sogar in Windows wird sie eingerichtet, wenn man die Unix-Tool-Suite für Windows von Microsoft installiert).

/ root
/bin binaries - Verzeichnis, in dem alle Programme stehen, die von den Benutzern ausgeführt werden dürfen
/config
/dev devices - Gerätedateien = symbolische Namen für die Treiberendpunkte der Geräte
/etc et cetera - alle wichtigen Konfigurationsdateien des Betriebssystems
/etc.defaults die originalen Konfigurationsdateien des Betriebssystems
/initrd (leer) enthält während des Bootens (Startphase) das initialisierende root-directory, welches später zu / wird
/lib libraries - alle wichtigen Standard-Funktionen der Programme, die, da sie wiederverwendbar sind, in sogenannten libraries (Bibliotheken) ausgelagert sind
/lib32
/lib64
/lost+found wird als Directory vom fsck (file-system-check) genutzt, falls verwaiste Blöcke gefunden werden, werden sie hier abgelegt
/mnt mount point - Standard-Mount-Verzeichnis. Ist meist leer. Kann aber für temporäre Mounts benutzt werden. Was ist Mounten? Mounten ist die Verknüpfung zweier Dateisysteme unter Linux.
/opt optional packages - wird durch die Installation des ipkg (Itsy Package Management System) angelegt und enthält die optional hinzugeladenen Programme und Dateien. Ist eine Verknüpfung auf das Verzeichnis /volume1/opt (mount --bind /volume1/opt /opt).
/proc virtuelles Dateisystem, welches ein allgemeines Interface (Schnittstelle, die sich wie ein Dateisystem verhält) zu Kernel und Prozess-Informationen ist
/root Home-Directory des Benutzers root (Systemadministrator)
/run
/sbin system binaries - Verzeichnis, in dem alle Programme stehen, die spezielle Privilegien benötigen um ausgeführt werden zu dürfen, Systemverwaltungsprogramme, Daemon-Programme (=Server-Programme, Dienste)
/sys virtuelles Dateisystem, welches ein allgemeines Interface (Schnittstelle, die sich wie ein Dateisystem verhält) zu Kernel-Einstellungen ist. Hier kann man zur Laufzeit Werte abfragen, aber auch setzen bzw. ändern.
/tmp virtuelles Dateisystem für temporäre Dateien (werden nicht auf der Platte gespeichert). Ist standardmäßig 50% des RAMs groß. Da es im virtuellen Speicher liegt, kann es ausgelagert werden (swap). Wird u.a. benutzt für die Interprozeß-Kommunikation (ähnlich shared Memory).
/usr Directory der User-Verzeichnisse. Hier werden auch die Programme und Einstellungen der Anwendungen abgelegt. Unter Anwendung versteht man die Programme, die nicht direkt zum Linux-Betriebssystem gehören. Ein wenig schwammige Abgrenzung, weil darunter auch die Benutzeroberflächen fallen und viele andere Programme, die man heut zu Tage eher zum Betriebssystem zählen würde
/var various - Verzeichnis, in dem alle Hilfs- oder Protokoll-Dateien liegen.
/var.defaults Verzeichnis, das die Struktur für den Aufbau des various-Verzeichnisse enthält
/volume1 Dateisystem-Mount-Point für die Datenpartition der Platte 1 (bei RAID, des ersten DatenRAIDs)
/volumeUSB1 Dateisystem-Mount-Point für die erste Partition des externen USB-Laufwerks

DSM (DiskStation Manager) 5 und älter

Vor der Einführung des DiskStation Manager 6 wurde das Open-Source-Projekt BusyBox verwendet, um grundlegende UNIX/Linux-Befehle über ash (Almquist Shell) bereitzustellen, die sich in der Verzeichnisstruktur des DSM im Verzeichnis /linuxrc befanden.

lrwxrwxrwx    1 root     root           11 Aug 13 20:58 linuxrc -> bin/busybox

Nachfolgend eine kurze Beschreibung der Arbeitsweise

/ root
/linuxrc rc = run commands = Datei mit automatischen Startprogrammen. Ist hier ein Link auf die BusyBox, die sich so als init-Prozess startet. Sie besitzt eine eingebaute Liste der Aktivitäten (inittab), die während der Initialisierungsphase ausgeführt werden müssen. Dies wird bei anderen Unix-/Linux-Systemen oft durch eine externe Datei namens /etc/inittab vorgegeben. Für den init-Prozess der BusyBox gilt die Regel: fehlt die externe inittab, wird die intern eingebaute inittab verwendet.