
Ist es möglich, die standardmäßige Unix/Linux-Verzeichnisstruktur zu ändern? Ich meine durch Konfiguration und ohne dass der Kernel geändert werden muss. Oder wenn der Kernel bearbeitet werden muss, wie schwierig ist diese Aufgabe? Ist die standardmäßige Verzeichnisstruktur (alle diese /usr
, /bin
, /etc
Verzeichnisse) im Kernel fest codiert?
Ich brauche ein Stammverzeichnis ( /
), in dem jeder Benutzer seine eigenen Dateien/Verzeichnisse erstellen kann, und ein /Linux
Verzeichnis, in dem alle Betriebssystemdateien (wahrscheinlich in der ursprünglichen Struktur) einschließlich aller Konfigurationsdateien vorhanden sind. Es sollte überhaupt kein „Home“-Verzeichnis geben und alle Konfigurationsdateien sollten für alle Benutzer gleich sein und nur vom Systemadministrator bearbeitet werden können.
Antwort1
Ja, das ist möglich. Es erfordert jedoch viel Aufwand, um das gewünschte Ziel zu erreichen.
Weitere Einzelheiten finden Sie unterGobo LinuxProjekt.
GoboLinux ist ein kostenloses und quelloffenes Betriebssystem, dessen hervorstechendstes Merkmal eine Neuorganisation des traditionellen Linux-Dateisystems ist. Anstatt wie die meisten Unix-ähnlichen Systeme dem Filesystem Hierarchy Standard zu folgen, hat jedes Programm in einem GoboLinux-System seinen eigenen Unterverzeichnisbaum, in dem alle seine Dateien (einschließlich der für dieses Programm spezifischen Einstellungen) zu finden sind. So hat ein Programm „Foo“ alle seine spezifischen Dateien und Bibliotheken in /Programs/Foo. Laut den GoboLinux-Entwicklern führt dies zu einem übersichtlicheren System.
Antwort2
Ist die Standardverzeichnisstruktur (all diese /usr-, /bin-, /etc-Verzeichnisse) im Kernel fest codiert?
Nein, das meiste davon bedeutet für den Kernel nicht viel. Es füllt jedoch Dateisysteme, die an standardisierten Orten wie /proc
und gemountet sind /dev
.
Ist es möglich, die standardmäßige Unix/Linux-Verzeichnisstruktur zu ändern?
Absolut nicht. Der Grund dafür ist einStandard für das Root-Dateisystemliegt daran, dass diese Verzeichnisse einen bestimmten Zweck haben und durch den Pfad identifiziert werden. Es macht nicht wirklich viel Sinn zu sagen: „Na ja, ich hätte lieber, wenn mein /etc
Verzeichnis hieße /masterconf
.“ Wenn Sie auf das zugreifen möchten, was alle und alles andere /etc
als betrachten /masterconf
, können Sie gerne einen symbolischen Link hinzufügen ln -s /etc /masterconf
, aber lassen Sie es /etc
dabei, da so ziemlich alle und alles andere danach suchen werden.
Analog dazu könnte jemand sagen: „Ich möchte alle Standard-Dienstprogramme – mkdir
, ls
, cd
, usw. – umbenennen, so dass sie nur unter den Namen existieren, die ich ihnen gegeben habe.“ Auch hier können Sie symbolische Links zwischen ihnen erstellen, aber um einen Standard zu erstellen, der es dem System ermöglicht, Namen für Standard-Dienstprogramme anstelle der normalen zu konfigurieren, müsste Folgendes geschehen:
- Viel komplizierter.
- Dies führt mit ziemlicher Sicherheit zu zusätzlichem Mehraufwand, da die installierten Dienstprogramme ständig eine Art Suchlauf durchführen müssten, um Ihr neuartiges Benennungsschema zu sortieren.
- Für über 99,9999 % der Benutzer völlig sinnlos.
Die Punkte 1 und 2 sind erhebliche Nachteile, die im Hinblick auf 3 nicht gerechtfertigt werden können, weshalb es kein solches System gibt. Gleiches gilt für die Umbenennung von Teilen des Standarddateisystems.
Was ich brauche, ist …
Auch hier können Sie mit symbolischen oder Hardlinks machen, was Sie wollen (siehe man ln
), und diese dann verwenden, wenn Sie sie bevorzugen. Aber vermasseln Sie nicht den Dateisystemstandard,es ist nicht optional.
Antwort3
Im Allgemeinen wird die Verzeichnisstruktur nicht vom Linux-Kernel vorgegeben, sondern von Dateisystemstandards wie diesem:Dateisystemhierarchiestandard. DerGleichnamiger Wikipedia-Artikelerklärt es auch ganz gut.
Zu Ihrer Frage zum Verschieben/Ändern. Ich würde sagen, davon wird dringend abgeraten, es ist jedoch möglich, da es auf einem Windows-System Standardspeicherorte gibt wie:
- C:\Windows
- C:\Benutzer und Einstellungen
- C:\Programme
- usw.
Sowohl für die Softwareentwickler als auch für die Benutzer der Systeme ist es von Vorteil, die Systeme aus Verpackungssicht ähnlich aussehen zu lassen.
Antwort4
Viele Distributionen haben je nach Sachlage ihre Verzeichnisstrukturen und sogar ihre Namen geändert. Microtic ist eine Appliance gemäß GNU/Linux, aber sein Kernel ist lediglich Linux.
Wenn Sie dies tun möchten, sollten Sie die folgenden Schritte ausführen:
- Code des Kernels ändern
- Ändern Sie den Code Ihres Bootvorgangs oder schreiben Sie selbst einen.
upstart
- Ändern oder implementieren Sie das Verzeichnis der Runlevel, oder ändern Sie diese gemäß den RC-Dateien, wenn Sie UNIX verwenden.
- Verlassen Sie die Paketverwaltung oder jedes Software-Verzeichnis. Das ist sehr wichtig. Vergessen Sie es nicht.
- Ändern Sie abschließend die Verzeichnisstruktur.