[moR-pH-euS]
Magnum P.I.
Der NetBSD Kernel ist ein monolithischer Kernel, d.h. das alle devices bzw.
die Hardware-Treiber in den Kernel statisch eingebunden weren. Wobei es auch beim
NetBSD-Kernel LKM (Loadable Kernel Modules) gibt.
Die Kernel-Sourcen bekommt ihr vom NetBSD-FTP:
ftp://ftp.netbsd.org/pub/NetBSD/<euer-NetBSD-release>/source/sets/syssrc.tgz
Wenn ihr die Kernel Sourcen habt, muesst ihr sie nur noch nach /usr/src entpacken:
# cd /
# tar xzfv /pfad/zu/syssrc.tgz
1. Sicherheitseinstellungen im NetBSD-Kernel
Die Kernel-Konfigurationsdatei findet ihr jetzt unter /usr/src/sys/arch/i386/conf.
Ihr solltet eine Kopie von GENERIC anlegen und eure neue Datei dann editieren.
# cp GENERIC MYKERNEL
Es gibt einige Einstellungen die man beim NetBSD-Generic-Kernel aendern sollte, wenn
man einen sicheren Server betreiben will.
options INSECURE
sollte auskommentiert werden, da sonst das System im "unsicheren Modus" laeuft, (Ebene -1)
d.h. es sind alle Geraete und unveraenderliche Dateien zugaenglich. Wenn das
auskommentiert wird laueft der Server im "sicheren Modus" (Ebene 1), d.h. das
unveraenderliche Dateien auch nicht veraendert werden koennen und manche Geraete nicht
mehr modifiziert werden koennen.
Diese Option kann auch in der /etc/rc.conf auf 2 gesetzt werden (ist im zusammenspiel mit file flags wichtig)
options LKM
sollte auskommentiert werden, da es bei NetBSD sowieso keine wichtigen Module gibt
und man am besten alles in den Kernel statisch einbindet auf einem Server.
Zuallerletzt sollte man alles was man nicht braucht auf dem Server (usb, audio,
joystick, IPv6 etc.) rauschmeissen bzw. auskommentieren.
Hier kann euch das Perl-Script adjustkernel helfen, das ihr in dem pkgsrc findet.
/usr/pkgsrc/sysutils/adjustkernel
Ich selbst habe es noch nie getestet, aber es erstellt anhand von dmesg eine
Kernel-config womit zwangslaeufig alles rausfliegt was unnoetig ist an Hardware
und es soll auch ganz gut funktionieren.
Im Anhang findet ihr meine Kernel-Config auf der alles geloescht bzw. auskommentiert
wurde was nicht an Hardware vorhanden ist (das gleiche gilt fuer Dateisysteme,
Treiber fuer Netzwerkkarten etc.). Diese Kernel-Config ist nur als Beispiel
gedacht da sie nur auf meinem Rechner laeuft, wenn ihr sie verwenden wollt
muesst ihr sie dementsprechend anpassen (die richtigen Treiber fuer die
Netzwerkkarte setzen, etc.)
2. Kernel kompilieren und installieren
Mit folgenden Kommandos kompiliert man den Kernel:
# config MYKERNEL
also im Verzeichniss /usr/src/sys/arch/i386/conf diesen Befehl aufrufen mit dem
Namen eurer Kernel-Config.
# cd ../compile/MYKERNEL
in das verzeichniss wechseln in dem die Dateien liegen die zum Kompilieren benoetigt
werden und durch das config angelegt wurden.
# make depend
# make
mit make depend wird ueberprueft was neu kompiliert werden muss und make erzeugt den
Kernel. Das make depend hat auf meinem Pentium 200Mhz mit 56MB Ram beim Generic 5Min.
gedauert, bei meinem angepassten 2:30Min, das make beim Generic fast eine Stunde und
beim angepassten 25Min.
danach muss der frisch gebackene Kernel noch nach / verschoben werden. Vorher
sichern wir den alten, damit falss etwas schief ging, wir noch von ihm booten koennen
# mv /netbsd /netbsd.old
hier gehe ich davon aus ihr immernoch im Kompilierungsverzeichniss des Kernels seid
(/usr/src/sys/arch/i386/compile/MYKERNEL)
# cp netbsd /netbsd
und hier ist noch ein kurzer vergleich der groesse des Generic-Kernels und
dem angepassten Kernel:
morpheus@netbsd-gw# ls -la netbsd*
-rwxr-xr-x 1 root wheel 1825789 Jan 11 15:46 netbsd
-rwxr-xr-x 1 root wheel 6254651 Jan 5 16:07 netbsd.old
morpheus@netbsd-gw# du -m netbsd*
2 netbsd
6 netbsd.old
d.h. von 6MB auf 2MB verkleinert, wodurch er auch wieder weniger Speicher fressen
wird was auf alten Maschinen auch sinnvoll ist.
wenn ihr mehr ueber den Kernel wissen wollt, oder wenn beim kompilieren etwas schief
ging schaut am besten in das Handbuch von NetBSD:
http://www.netbsd.org/guide/en/chap-kernel.html
bei fehlern bitte eine pm an mich...
die Hardware-Treiber in den Kernel statisch eingebunden weren. Wobei es auch beim
NetBSD-Kernel LKM (Loadable Kernel Modules) gibt.
Die Kernel-Sourcen bekommt ihr vom NetBSD-FTP:
ftp://ftp.netbsd.org/pub/NetBSD/<euer-NetBSD-release>/source/sets/syssrc.tgz
Wenn ihr die Kernel Sourcen habt, muesst ihr sie nur noch nach /usr/src entpacken:
# cd /
# tar xzfv /pfad/zu/syssrc.tgz
1. Sicherheitseinstellungen im NetBSD-Kernel
Die Kernel-Konfigurationsdatei findet ihr jetzt unter /usr/src/sys/arch/i386/conf.
Ihr solltet eine Kopie von GENERIC anlegen und eure neue Datei dann editieren.
# cp GENERIC MYKERNEL
Es gibt einige Einstellungen die man beim NetBSD-Generic-Kernel aendern sollte, wenn
man einen sicheren Server betreiben will.
options INSECURE
sollte auskommentiert werden, da sonst das System im "unsicheren Modus" laeuft, (Ebene -1)
d.h. es sind alle Geraete und unveraenderliche Dateien zugaenglich. Wenn das
auskommentiert wird laueft der Server im "sicheren Modus" (Ebene 1), d.h. das
unveraenderliche Dateien auch nicht veraendert werden koennen und manche Geraete nicht
mehr modifiziert werden koennen.
Diese Option kann auch in der /etc/rc.conf auf 2 gesetzt werden (ist im zusammenspiel mit file flags wichtig)
options LKM
sollte auskommentiert werden, da es bei NetBSD sowieso keine wichtigen Module gibt
und man am besten alles in den Kernel statisch einbindet auf einem Server.
Zuallerletzt sollte man alles was man nicht braucht auf dem Server (usb, audio,
joystick, IPv6 etc.) rauschmeissen bzw. auskommentieren.
Hier kann euch das Perl-Script adjustkernel helfen, das ihr in dem pkgsrc findet.
/usr/pkgsrc/sysutils/adjustkernel
Ich selbst habe es noch nie getestet, aber es erstellt anhand von dmesg eine
Kernel-config womit zwangslaeufig alles rausfliegt was unnoetig ist an Hardware
und es soll auch ganz gut funktionieren.
Im Anhang findet ihr meine Kernel-Config auf der alles geloescht bzw. auskommentiert
wurde was nicht an Hardware vorhanden ist (das gleiche gilt fuer Dateisysteme,
Treiber fuer Netzwerkkarten etc.). Diese Kernel-Config ist nur als Beispiel
gedacht da sie nur auf meinem Rechner laeuft, wenn ihr sie verwenden wollt
muesst ihr sie dementsprechend anpassen (die richtigen Treiber fuer die
Netzwerkkarte setzen, etc.)
2. Kernel kompilieren und installieren
Mit folgenden Kommandos kompiliert man den Kernel:
# config MYKERNEL
also im Verzeichniss /usr/src/sys/arch/i386/conf diesen Befehl aufrufen mit dem
Namen eurer Kernel-Config.
# cd ../compile/MYKERNEL
in das verzeichniss wechseln in dem die Dateien liegen die zum Kompilieren benoetigt
werden und durch das config angelegt wurden.
# make depend
# make
mit make depend wird ueberprueft was neu kompiliert werden muss und make erzeugt den
Kernel. Das make depend hat auf meinem Pentium 200Mhz mit 56MB Ram beim Generic 5Min.
gedauert, bei meinem angepassten 2:30Min, das make beim Generic fast eine Stunde und
beim angepassten 25Min.
danach muss der frisch gebackene Kernel noch nach / verschoben werden. Vorher
sichern wir den alten, damit falss etwas schief ging, wir noch von ihm booten koennen
# mv /netbsd /netbsd.old
hier gehe ich davon aus ihr immernoch im Kompilierungsverzeichniss des Kernels seid
(/usr/src/sys/arch/i386/compile/MYKERNEL)
# cp netbsd /netbsd
und hier ist noch ein kurzer vergleich der groesse des Generic-Kernels und
dem angepassten Kernel:
morpheus@netbsd-gw# ls -la netbsd*
-rwxr-xr-x 1 root wheel 1825789 Jan 11 15:46 netbsd
-rwxr-xr-x 1 root wheel 6254651 Jan 5 16:07 netbsd.old
morpheus@netbsd-gw# du -m netbsd*
2 netbsd
6 netbsd.old
d.h. von 6MB auf 2MB verkleinert, wodurch er auch wieder weniger Speicher fressen
wird was auf alten Maschinen auch sinnvoll ist.
wenn ihr mehr ueber den Kernel wissen wollt, oder wenn beim kompilieren etwas schief
ging schaut am besten in das Handbuch von NetBSD:
http://www.netbsd.org/guide/en/chap-kernel.html
bei fehlern bitte eine pm an mich...
Zuletzt bearbeitet: