Raphael H. Becker wrote:
> Ob das Kind jetzt devfs heisst oder irgendwie anders: Mir
> ging es um den Unterschied zwischen der Lösung und einem
> Workaround. Wenn mknod tatsächlich die LÖSUNG ist, dann will
> ich das ja garnicht infragestellen, lediglich mein Erstaunen,
> dass auf aktuellen Systemen damit noch gearbytet wird.
/dev/console ist da ein Spezialfall. Der Kernel selber öffnet
/dev/console, noch bevor irgend ein Userspace die Chance hatte zu
laufen, also vor /sbin/init und den Startskripten. Wenn man also udev
verwendet oder devfs von einem Startskript mounten lässt, dann muss
/dev/console im Root-Dateisystem (sei das nun ein HDD-Dateisystem, eine
initrd oder ein initramfs) vorhanden sein, bevor der Kernel gestartet
wird, sprich es muss bei der Installation bzw. beim Erstellen der initrd
/ des initramfs per mknod angelegt werden. Wenn devfs vom Kernel
gemountet wird (CONFIG_FS_DEVFS_MOUNT oder so ähnlich), dann sorgt devfs
für das Erzeugen von /dev/console.
Warum der Kernel überhaupt die Datei /dev/console öffnet und das ganze
nicht einfach "intern" regelt, hat aber so richtig noch niemand
vernünftig erklären können.
Ein zweiter Kandidat ist übrigens /dev/null, denn viele Startskripte
verwenden Umleitungen nach /dev/null, um Ausgaben zu unterdrücken, auch
Skripte, die eventuell vor dem Mounten von devfs bzw. vor dem Start von
udev laufen.
BTW: udev macht auch nichts anderes, als für jedes gefundene Geräte
mknod aufzurufen (-; Allerdings nicht das Programm sondern die
Bibliotheksfunktion gleichen Namens.
jwm
Received on Wed Sep 7 15:55:07 2005