Wann ist monolithischer Kernel besser
Das ist sicher oft diskutiert und ich lass mich dazu auch gerne auf Links verweisen. Ich las, dass es zB bei einem Router / Firewall aus Sicherheitsgründen besser ist keine Module zu verwenden. Ich frage mich aber auch, ob bei einem "normalen" Office-Client mit 1 GHZ-CPU Module Sinn machen. Bei Modulen wird der Kernel zwar schlanker, aber merkt man den daraus resultierenden Geschwindigkeitsvorteil? Wichtig ist natürlich, dass die Kerneloptionen nicht redundant sind. Alles Unnötige rauszuwerfen ist ziemlich schwer, da kaum rauszufinden ist, welche Chips im Detail zB das Mobo verwendet. Al
Al Bogner
Ich las, dass es zB bei einem Router / Firewall aus Sicherheitsgründen besser ist keine Module zu verwenden. Na klar. Wenn es um sicherheitskritische Dinge geht, sollte man generell einen minimalistischen Ansatz wählen. Jedes eingesetzte Teil könnte buggy sein. Und in Sache Module gabe es vor kurzem z.B. einen Bug / Exploit ...
Ich frage mich aber auch, ob bei einem "normalen" Office-Client mit 1 GHZ-CPU Module Sinn machen.
Nein. Das macht absolut keinen Sinn. Der Rechner hat von allem mehr als genug. Warum Arbeit in etwas stecken, das absolut unnötig ist? Der Standard-Kernel tut es zu 100%. Wenn zum Boot ein Treibe benötigt werden sollte (z.B. SCSI), dann macht dies initrd. Daher ist mein Tipp für "pseudo Produktion": Nimm den Standard-Kernel. Und wenn es Updates / Fixes gibt, dann kannst Du diese schnell und einfach von SuSE beziehen und installieren. "Pseudo Produktion" deshalb, da "Produktion" in meinen Augen etwas grösseres ausdrückt. Und es macht durchaus Sinn für ein grösseres Unternehmen, hier andere Lösungen anzusetzen und z.B. eigene Kernel zu bauen. (Man nehme z.B. einen zentralen Softwareversand für 1000 Server. Da lohnt es sich, durchaus ein paar Manntage pro Monat für sowas auszugeben ...) Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
Hallo Konrad, On 10-Jun-2003 Konrad Neitzel wrote:
Al Bogner
schrieb: Ich las, dass es zB bei einem Router / Firewall aus Sicherheitsgründen besser ist keine Module zu verwenden. Na klar. Wenn es um sicherheitskritische Dinge geht, sollte man generell einen minimalistischen Ansatz wählen. Jedes eingesetzte Teil könnte buggy sein. Und in Sache Module gabe es vor kurzem z.B. einen
ACK
Ich frage mich aber auch, ob bei einem "normalen" Office-Client mit 1 GHZ-CPU Module Sinn machen.
Nein. Das macht absolut keinen Sinn. Der Rechner hat von allem mehr
Einen Sinn sehe ich vor allem darin, dass man sich mal genauer mit dem Kernel und seinen Moeglichkeiten auseinandersetzt. Da mir viele Konfigurationsmoeglichkeiten nichts oder nur wenig sagen, bin ich gezwungen, immer wieder die Hilfe zu konsultieren. Und zumindest mit dem jetzigen Bootkonzept/Kernel von Suse hatte ich auch Probleme, das System ueber Loadlin zu starten. Ob die Ursache an einem zu grossen Kernel oder Problemen mit der Ramdisk lag, weiss ich nicht. Mit einem eigenen Kernel geht es aber jedenfalls problemlos. Okay, Loadlin duerften nur sehr wenige benutzen, so dass dieses Argument kaum zaehlt. Beste Gruesse, Heinz. PS: Das Kompilieren eines eigenen Kernels war eine meine ersten Aktionen unter Linux. Und nein, er bootete natuerlich nicht, sondern stattdessen lernte ich gleich mal das Suse-Rettungssystem kennen. -- Journalisten gegen den Krieg: http://www.pickings.de/tiki/tiki-index.php?page=Krieg http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
h.pahlke@nexgo.de schrieb:
Einen Sinn sehe ich vor allem darin, dass man sich mal genauer mit dem Kernel und seinen Moeglichkeiten auseinandersetzt. Da mir viele Konfigurationsmoeglichkeiten nichts oder nur wenig sagen, bin ich gezwungen, immer wieder die Hilfe zu konsultieren.
Das ist natürlich richtig. Wer sich intensiv mit Linux beschäftigen will, der sollte sich natürlich auch den Kernel ansehen. Aber ich gehe hier mal eher von dem richtigen Benutzen und nicht dem "Selbstzweck" aus. Sprich: Die Internas interessieren den normalen User nicht. Auch die meisten Admins kommen ohne klar (Wenn richtig vorgegangen wird und nicht irgendwelche Hardware gekauft wird!). Das Schöne ist dann, dass man viele Dinge übertragen kann. Man arbeitet einfach auf einer höheren Ebene und dies ist durchaus gut, da Fehler vermieden werden können und Arbeitszeit gespart wird. Dinge wie Support spielen dann evtl. auch noch eine Rolle. Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
On Tuesday 10 June 2003 12:52, Konrad Neitzel wrote:
Ich frage mich aber auch, ob bei einem "normalen" Office-Client mit 1 GHZ-CPU Module Sinn machen.
Nein. Das macht absolut keinen Sinn. Der Rechner hat von allem mehr als genug. Warum Arbeit in etwas stecken, das absolut unnötig ist? Der Standard-Kernel tut es zu 100%.
Ich verstehe nicht ganz, was du sagen möchtest. Ich fragte, ob Module Sinn machen und du antwortest mit nein und schreibst am Ende "der Standard Kernel tut es", der ist aber sehr modular aufgebaut. Hier geht es um folgende Situation. Der Standard-Kernel tut es augenblicklich nicht, es *muß* also ein Kernel kompiliert werden und nun habe ich die Frage, ob ich Module zulassen soll bzw. welchen Nachteil ich habe, wenn ich den Kernel monolithisch baue. Mir ist zB klar, dass es Probleme gibt, wenn zB Hardware getauscht wird. Für diese Situation gibt es dann aber noch immer den Standard-Kernel, der fast problemlos funktioniert und damit kann man nach dem Hardwaretausch wieder einen eigenen Kernel bauen. Al
Al Bogner
On Tuesday 10 June 2003 12:52, Konrad Neitzel wrote:
Nein. Das macht absolut keinen Sinn. Der Rechner hat von allem mehr als genug. Warum Arbeit in etwas stecken, das absolut unnötig ist? Der Standard-Kernel tut es zu 100%.
Hier geht es um folgende Situation. Der Standard-Kernel tut es augenblicklich nicht, es *muß* also ein Kernel kompiliert werden und nun habe ich die Frage, ob ich Module zulassen soll bzw. welchen Nachteil ich habe, wenn ich den Kernel monolithisch baue.
Nunja - da muss ich mich dann entschuldigen. Ich habe nicht aufmerksam genug gelesen! Was ich aussagen wollte ist: Es macht auf Desktops keinen Sinn, einen eigenen Kernel zu bauen. (in 99,9 % aller Fälle ist es unnötig!). Entschuldige bitte, dass ich so an der Frage vorbei geantwortet habe! Ich sehe keinen gewichtigen Gründe für und gegen Module. Ich würde aber vorschlagen so nahe wie möglich am SuSE Kernel zu bleiben. Hintergrund ist, dass wir so am ehesten wissen, was Du für ein System hast und wo Dein Problem sein könnte. Jetzt habe ich aber keine Infos darüber, wo man diese SuSE-Config bekommen kann und wie man hier am günstigsten vor gehen müsste. Aber eine Frage möchte ich mir hier dann doch erlauben: Wieso musst du einen neuen Kernel bauen? Das halte ich für unnötig. Mittels initrd sollte doch auch der Standard-Kernel bootbar sein! Wäre dies für Dich nicht evtl. der bessere Ansatz?
Mir ist zB klar, dass es Probleme gibt, wenn zB Hardware getauscht wird. An den Fall habe ich noch nicht einmal gedacht. Aber das ist durchaus richtig. Nur die Frage ist, wie gewichtig solch ein Punkt ist.
Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
On Tuesday 10 June 2003 15:05, Konrad Neitzel wrote:
Aber eine Frage möchte ich mir hier dann doch erlauben:
Aber klar, nicht so förmlich. Ich bin für jede Anregung dankbar.
Wieso musst du einen neuen Kernel bauen? Das halte ich für unnötig. Mittels initrd sollte doch auch der Standard-Kernel bootbar sein! Wäre dies für Dich nicht evtl. der bessere Ansatz?
Von verschiedenen Seiten werden Probleme mit einem Asus A7N8X bzw. mit nforce und AMD berichtet. Die berichteten Probleme habe ich zwar nicht, aber dafür andere mit mpeg2enc, wie ich auch schon hier diskutiert habe. Ich erwähne die jetzt nicht nochmal, da bereits so ziemlich alles woran man vordergründig denkt, ausgeschlossen werden kann. Eventuell mag nforce keine PCI-Grafikkarten, aber hier merke ich oberflächlich keine Probleme mit meiner ATI Mach64VT. Demnächst werde ich daher eine AGP-Karte einbauen, doch da das Board mit alten AGP-Karten leider auch nicht glücklich ist, muss ich erst mal überlegen, was ich da rein gebe. Es ist ja alles Luxus, nachdem der PC remote administriert wird. Jedenfalls will ich bei der weiteren Suche gefixte Probleme von Seiten des Kernels ausschließen. http://www.kernel.org/pub/linux/kernel/v2.4/testing/patch-2.4.21.log erwähnt auch diesbzgl. Änderungen, die im SuSE-Kernel noch nicht integriert sind. Ich habe diesbzgl. extra Hubert Mantel angeschrieben. Weiters würde ich auch noch gerne grsecurity verwenden. Ob das notwendig ist, ist eine andere Sache, aber, wenn ich schon einen Kernel baue, dann geht das in einem. Auf einem Celeron läuft schon ein 2.4.21-rc7-grsec (ohne Module) und bis jetzt kann ich nicht klagen. Al
Hallo! Danke für die Erläuterungen. Das kann ich durchaus nachvollziehen. Mit den besten Grüßen, Konrad
Al Bogner wrote:
und nun habe ich die Frage, ob ich Module zulassen soll bzw. welchen Nachteil ich habe, wenn ich den Kernel monolithisch baue.
Wenn du den grundsaetzlichen Modul-Support im Kernel laesst, kann man manch lustige Erweiterung im laufenden Betrieb dazu kompilieren und aktivieren. (iptables helper modules z.B.)
Mir ist zB klar, dass es Probleme gibt, wenn zB Hardware getauscht wird.
Dieser summiert schon alle Nachteile eines Nicht-Modul faehigen Kernel. Ein monolitischer Kernel ist und bleibt der Linux-Kern. Im Gegensatz dazu die Hurd Implementation, die das Microserver-Konzept umsetzt. Peter
Peter Wiersig schrieb:
Al Bogner wrote:
und nun habe ich die Frage, ob ich Module zulassen soll bzw. welchen Nachteil ich habe, wenn ich den Kernel monolithisch baue.
Wenn du den grundsaetzlichen Modul-Support im Kernel laesst, kann man manch lustige Erweiterung im laufenden Betrieb dazu kompilieren und aktivieren. (iptables helper modules z.B.)
Wenn man NVIDIA-Treiber nutzt o.ae., wird man gar nicht umhin kommen, Module-Support zuzulassen. Ich wuerde dann z.B. auch raten, AGP-Support als Modul zu uebersetzen, denn dann kann man zwischen Kernel-AGP und NVIDIA-AGP waehlen. Je nach Motherboard und Konfiguration ist mal das Eine mal das Andere stabiler. Module koennen auch von Vorteil sein, wenn es um Re- sourcenvergabe geht. Hatte schon das Problem, dass sich manche Treiber um die gleichen Resourcen gestritten ha- ben beim Booten. Beides als Modul konfiguriert und erst bei Bedarf geladen, und das Problem war beseitigt. Ich wuerde alles, was zum Booten oder oft und staendig ge- braucht wird, in den Kernel packen, alles andere als Mo- dul realisieren. Mit Modulen ist man einfach flexibler. CU, Thomson
Al Bogner wrote:
Ich las, dass es zB bei einem Router / Firewall aus Sicherheitsgründen besser ist keine Module zu verwenden.
Der Sicherheitsaspekt ist aber sehr gering. Wer ein gehacktes Modul laden kann, kann auch den Kernelspeicher direkt beschreiben (ok, mit grsecurity oder SE-Linux kann das anders aussehen.)
Bei Modulen wird der Kernel zwar schlanker, aber merkt man den daraus resultierenden Geschwindigkeitsvorteil?
Nein, nicht wirklich. Ein typischer Desktop-Rechner wartet 95% der Einschaltzeit auf Eingaben vom Benutzer. Was man "merkt" sind sicherlich einkompilierte Netzwerkmodule bei einem ausgelasteten Server. (Ich ziehe diese Zahlen jetzt mal sonstwoher): Ich las im Internet einen Benchmark der eine Groessenordnung wie 5% ergab. (Jeweils der Geschw.-vorteil eines Systems ohne Module gegenueber dem eines mit Modulen.)
Alles Unnötige rauszuwerfen ist ziemlich schwer, da kaum rauszufinden ist, welche Chips im Detail zB das Mobo verwendet.
Glaub mir, wenn das ein Server ist, der irgendwo ins Rechenzentrum gestellt wird, wirst du froh sein, wenn deine Hardware-Dokumentation durch aufschrauben und abschreiben/-fotografieren entstanden ist. Jeder Chip sollte dir vorher bekannt sein. Inklusive der Releasenummern. Peter
participants (5)
-
Al Bogner
-
h.pahlke@nexgo.de
-
Konrad Neitzel
-
Peter Wiersig
-
Thomas Hertweck