Kernel
Aus Ubuntu-Forum Wiki
Inhaltsverzeichnis |
1 Allgemeines
Ein Kernel ist der innerste Kern eines Betriebssystems. Genau genommen ist der Begriff ,,Linux`` nur für den Kernel, zu verwenden. Im Kernel werden die elementarsten Funktionen wie Speicherverwaltung, Prozessverwaltung und Steuerung der Hardware ausgeführt.
- Kerneleigenschaften
Im folgenden wird eine kurze Liste mit den wichtigsten Kerneleigenschaften dargestellt:
- Multitasking: gleichzeitiges Abarbeiten mehrerer Prozesse
- Multiuser-Betrieb: gleichzeitiges Nutzen durch mehrere Anwender
- Paging: Auslagern von Speicher auf die Festplatte bei zu wenig RAM
- Shared Libraries: einmaliges Laden von Bibliotheken mit Systemfunktion, wenn sie von mehreren Prozessen benötigt werden
- Interprocess Communication
- Symetric Multi Processing: Nutzung mehrerer Prozessoren
- Unterstützung von Intel-, DEC-, Sun- etc. Prozessoren
- eigenes Dateisystem (ext2 und reiserfs) mit 255 Zeichen langen Dateinamen und bis zu 4 TByte großen Dateisystemen
- Zugriff auf fremde Dateisysteme: DOS, Windows 9x, NTFS, OS/2, Minix, NFS, etc.
- Palette von Netzwerkprotokollen: TCP/IP inkl. IPnG, IPv6, PPP,SLIP etc.
- Minimalsysteme von Diskette ausführbar
- Stabilität
Betrachtet man als Linux nur dessen Kernel, kann man Linux als außerordentlich stabiles Betriebssystem bezeichnen. Wird es nur als Server für ein Netzwerk oder im Internet verwendet, ist es durchaus möglich, Linuxsysteme zahlreiche Monate ohne Unterbrechung und Komplikationen durchlaufen zu lassen. Problematischer ist der Einsatz der mitgelieferten Software (vgl. Distributionen), unter der die Stabilität von Linux als Einheit (also nicht nur des Kernels) Einbußen erleidet. Meistens ist es aber dann möglich, das bestimmte Programm, welches nicht regulär funktioniert, extra zu beenden, ohne dass Linux neu gestartet werden muss.
1.1 initrd
initrd bedeutet initial ramdisc und funktioniert auf diese Weise: Es lädt eine Partition mit allen benötigten Treibern und Startprogrammen in den Speicher, und startet von dieser das System. Das hat den Sinn, dass nicht zwingend ein Treiber für die Festplatte notwendig ist, um das System zu starten. Auf das initrd kann praktisch immer zugegriffen werden und es stellt eine Standartschnittstelle für diverse Hardware dar, die zwingend für den Systemstart benötigt wird.
initrd ist mittlerweile veraltet und durch initramfs abgelöst
1.2 initramfs
initramfs bedeutet Initial Ram Filesystem und ist der Nachfolger von initrd und funktioniert im Prinzip auf die gleiche Art und Weise.
1.3 Kernel Panic
Kernel Panic kann bei folgenden Voraussetzungen auftreten:
- defekte Hardware
- fehlerhafte Speicherzugriffe
- falsche Kernelkonfiguration (häufigste Ursache)
Es ist vergleichbar mit dem Bluesreen in Windows.
2 Standard-Kernel
Der Standard- oder auch Generic-Kernel soll möglichst viel Hardware unterstützen und möglichst jedes System zum Laufen bringen. Der im Ubuntu ausgelieferte Kernel verfolgt genau dieses Ziel. Normalerweise sollte es daher auch nicht notwendig sein, sich seinen eigenen Kernel zu kompilieren. Die Zeitraum zwischen den Distributions-Upgrades, welche mit der Nutzung des jeweils aktuellsten Kernels einhergehen, ist dabei auf lediglich sechs Monate beschränkt. Zwischendurch werden ebenfalls Kernel-Aktualisierungen ausgeliefert.
Mit dem breiten Spektrum der unterstützten Hardware, offenbart sich auch die Schwachstelle des Standard-Kernels: Um eine möglichst breite Unterstützung der Hardware zu gewährleisten, ist der generische Kernel umfangreicher, aufgeblähter und teilweise auch langsamer als ein auf das jeweilige System optimierter.
Gründe, um zwingend einen eigenen Kernel zu bauen, könnten sein:
- zu alte, zu neue oder exotische Hardware
- Features, die im aktuellen (stabilen) Kernel noch keinen Einzug gefunden haben
- exotische Features
3 Eigenen Kernel kompilieren
Aus o.g. Gründen, aus purer Neugier oder zur System-Optimierung, kann es notwendig sein, dass ein neuer Kernel kompiliert werden muss.
Dieser Schritt erfordert jedoch eine genauere Kenntnis des Systems und der genutzten Hardware.
Fehler können dazu führen, dass das System nicht mehr von sich aus gestartet werden kann!
Mit der Erstellung eines eigenen Kernels befasst sich der folgende Artikel: