Hi LUG!
Ich habe meinen Kernel bisher immer ohne (soweit das möglich war) Module gebaut. Ich hab das bisher so gemacht, weil ich keine Lust hatte mich noch um das laden und entladen der Module zu kümmern. Was sind eigentlich die Vor- und Nachteile beider Varianten?
Hallo Andre,
On Sat, 2007-01-20 at 21:44 +0100, Tietz, André wrote:
[..] Ich hab das bisher so gemacht, weil ich keine Lust hatte mich noch um das laden und entladen der Module zu kümmern. Was sind eigentlich die Vor- und Nachteile beider Varianten?
meine Sicht der Dinge:
Ladbare Module: + kleinerer Kernel (wichtig bei floppy boot etc.) + geeignet als default-Variante für Distributionen + wichtige Updates kommen vorkompiliert vom Distributor
Alles fest einkompiliert: + keine Chance für Rootkits, die sich als Kernelmodul einklinken - größeres Kernel-Image - ungeeignet als generische Lösung für eine Distribution - muss selbst gebaut werden - bei jedem Bugfix/Security-Update muss ein neuer Kern gebaut werden + man muss sich nicht mit initrd rumärgern
Grüße, Christoph
Hi Christoph,
On Sun, Jan 21, 2007 at 17:13:15 +0100, Christoph Mueller wrote:
Alles fest einkompiliert:
[...]
- man muss sich nicht mit initrd rumaergern
Ein modularer Kernel setzt nicht zwingend den Einsatz einer initrd voraus. Die zum Mounten des Rootfilesystem noetigen Treiber kompiliere ich immer fest in meine Kernels ein, den Rest baue modular.
Gruss, Chris
Chris,
On Sun, 2007-01-21 at 18:13 +0100, Christian Perle wrote:
Ein modularer Kernel setzt nicht zwingend den Einsatz einer initrd voraus. Die zum Mounten des Rootfilesystem noetigen Treiber kompiliere ich immer fest in meine Kernels ein, den Rest baue modular.
Das stimmt schon, bloß wollte ich hier die beiden Extreme beleuchten. Und genau die initd hat mich in den letzten Tagen mächtig geärgert.
Gruß, Christoph
Am Sonntag, 21. Januar 2007 18:44 schrieb Christoph Müller:
Chris,
On Sun, 2007-01-21 at 18:13 +0100, Christian Perle wrote:
Ein modularer Kernel setzt nicht zwingend den Einsatz einer initrd voraus. Die zum Mounten des Rootfilesystem noetigen Treiber kompiliere ich immer fest in meine Kernels ein, den Rest baue modular.
Das stimmt schon, bloß wollte ich hier die beiden Extreme beleuchten. Und genau die initd hat mich in den letzten Tagen mächtig geärgert.
IMHO: Bis man eine Kernel-Konfiguration hat, die ohne initrd bootet, kann dieselbe Zeit vergehen, wie für eine initrd gebraucht wird.
Ich habe es gerade mit C7/VN700-Via board mit SATA hinter mir. Dank Christian weiß ich jetzt, warum ich da SCSI fest einkompilieren muß...
Bernhard
Tietz schrieb:
Ich habe meinen Kernel bisher immer ohne (soweit das möglich war) Module gebaut. Ich hab das bisher so gemacht, weil ich keine Lust hatte mich noch um das laden und entladen der Module zu kümmern. Was sind eigentlich die Vor- und Nachteile beider Varianten?
Vorteile der Modulvariante: - Es wird nur geladen was auch gebraucht wird. - Man kann Treiber zur Laufzeit nachladen (ohne sowas wäre Hardwareerkennung ohne Reboot nicht möglich). - Hardwarehersteller kann binären Treiber zur Verfügung stellen
Vorteile der modullosen Variante: - Wasserkopf zur Verwaltung der Module und fürs Laden/Entladen entfällt - Hardwarehersteller kann keinen binären Treiber zur Verfügung stellen - Man weiss dass der Treiber da ist...
Bei einem reinen Desktoprechner an dem evtl. auch immer mal rumgebastelt wird, sind Module schon praktisch, aber bei Servern und Embedded-Zeugs (Achtung, Fachbegriff!) weiss man genau welche Treiber langfristig benötigt werden, muß sich nicht auf die Modulladelogik verlassen und spart am Ende noch ein paar Byte Speicher (bei "normalen" Servern egal, aber bei Kleinstservern {386er mit 8MB} oder Controllern spielt das schon eine Rolle).
HTH, Eric
Hi Andre,
On Sat, Jan 20, 2007 at 21:44:00 +0100, Tietz, Andre wrote:
Ich hab das bisher so gemacht, weil ich keine Lust hatte mich noch um das laden und entladen der Module zu kuemmern. Was sind eigentlich die Vor- und Nachteile beider Varianten?
Vorteile beim modularen Kernel:
* Module lassen sich entladen und mit Modulparametern neu laden, ohne Module waere ein Reboot noetig (Stimmt nicht ganz, manche Treiber koennen ueber /sys/module/*/parameters auch im geladenen Zustand neue Parameter annehmen)
* Nicht laden/entladen von Modulen, so dass der Kernel bestimmte Hardware nicht (mehr) blockiert, die man dem Gast in einer virtuellen Maschine bereitstellen will (z.B. usb-storage)
* Breite Hardwareunterstuetzung, ohne ein Riesenkernelimage zu brauchen
* Hinzufuegen von weiteren Treibern ist in vielen Faellen ohne Reboot moeglich (make menuconfig modules modules_install)
Nachteile beim modularen Kernel:
* Durch die Modulschnittstelle kann zur Laufzeit Code in den Kernel eingebracht werden (allerdings existiert die Moeglichkeit ueber /dev/mem auch im nichtmodularen Kernel)
Gruss, Chris
lug-dd@mailman.schlittermann.de