Linux 14.983 Themen, 106.385 Beiträge

Kernel kompilieren

Kurt (Anonym) / 3 Antworten / Flachansicht Nickles

Wie kompiliert man seinen Kernel? Was bringt das? Wie bootet Linux? Welche Dateien werden dabei abgearbeitet?
Diese Fragen stellt euch ein absoluter Linux-Anfaenger.

bei Antwort benachrichtigen
qwertz (Anonym) (Anonym) „Spezielle Anpassung des Betriebssystems an die individuelle Hardware des PCs --...“
Optionen

http://www.tu-harburg.de/dlhp/HOWTO/DE-Kernel-HOWTO.html
allgemein alles zum Kernel auf Deutsch

2. Wichtige Fragen und ihre Antworten


2.1 Was macht der Kernel überhaupt?

Der Unix-Kernel stellt eine Art Vermittler zwischen den Anwenderprogrammen und der Hardware des Computers dar. Er verwaltet den Arbeitsspeicher des Rechners und sorgt dafür, daß jedes laufende Programm (Prozeß) angemessene Anteile der Prozessor-Arbeitszyklen zugewiesen bekommt. Der Kernel stellt eine von der speziellen Hardware unabhängige Schnittstelle zum Zugriff auf diese Hardware zur Verfügung.

Es gibt zwar noch eine Menge weiterer Dinge, für die der Kernel zuständig ist, doch sind dies die wichtigsten, über die jeder Bescheid wissen sollte.


2.2 Warum sollte ich auf eine neuere Kernelversion umsteigen?

Zunächst unterstützen neuere Kernels praktisch immer mehr Hardware als die älteren, d.h. sie besitzen zusätzliche Treiber. Sie haben auch oft eine bessere Prozeßverwaltung und arbeiten dadurch manchmal deutlich schneller. Sie können einfach stabiler sein als die alten Versionen und dumme Fehler beheben, die sich in diesen noch versteckt hatten. Der häufigste Grund für einen Kernel-Upgrade sind wohl die Treiber und die korrigierten Fehler.


2.3 Welche Hardware wird von den neuen Kernels unterstützt?

Die Anzahl der unterstützten Hardware ist inzwischen sehr groß und wächst laufend weiter. Das Hardware HOWTO befaßt sich speziell mit diesem Thema. Alternativ kann man sich auch die Datei /usr/src/linux/config.in der Kernel-Quellen ansehen oder einfach bei einem make config schauen, was alles angeboten wird. Dabei wird allerdings nur aufgeführt, was die Standard-Kerneldistribution unterstützt. Darüber hinaus gibt es aber noch eine Unmenge an zusätzlichen Treibern, die unabhängig vom eigentlichen Kernel entwickelt und verwaltet werden. Die PCMCIA-Treiber, die als Module in den Kernel eingebunden werden, sind hierfür ein Beispiel.


2.4 Welche Versionen von gcc und libc benötige ich?

Linus empfiehlt im README der Kernel-Quellen eine Version, mit der dieser Kernel kompiliert werden sollte. Ist diese Version des gcc auf dem eigenen System noch nicht vorhanden, so sollte man sie installieren. Welche Version der libc man für eine bestimmte Version des gcc-Kompilers benötigt, kann man der Dokumentation des Kompilers entnehmen. Dies ist keine sehr schwierige Prozedur, man muß sich nur genau an die Anweisungen halten.


2.5 Was ist ein (ladbares) Modul?

Das sind Teile des Kernels, die nicht direkt in den Kernel eingebunden (linked) sind. Man kompiliert sie separat und kann sie nach Belieben in den laufenden Kernel einbinden und wieder entfernen. Aufgrund dieser extremen Flexibilität ist das inzwischen der bevorzugte Weg, um bestimmte Dinge im Kernel zu programmieren. Viele verbreitete Treiber, wie z.B. die PCMCIA- oder QIC-80/40-Treiber, sind solche ladbaren Module.

2.6 Wieviel Platz auf der Festplatte wird benötigt?

Das hängt etwas von der jeweiligen Systemkonfiguration ab. Die komprimierten Quellen des Kernels der Version 2.0.10 sind bereits fast 6 Megabytes groß, unkomprimiert belegen sie dann etwa 24 MB. Doch das ist noch nicht alles - man will den Kernel ja schließlich auch kompilieren. Für ein »typisches« System (Netzwerk, SCSI, drei oder vier verschiedene Dateisysteme, Unterstützung der seriellen und parallelen Schnittstellen) muß man etwa 30 MB einkalkulieren. Will man die eigentlichen Kernelquellen auch noch in ihrer komprimierten Form aufbewahren, kommen so 36 MB zusammen. Für Systeme, die weit mehr Treiber benötigen, kann es auch mehr sein. Weiterhin sollte man bedenken, daß neuere Kernels mit Sicherheit noch mehr Platz verbrauchen werden. Man sollte also mit Blick in die Zukunft nicht zu knapp kalkulieren. Andererseits ist es bei den heutigen Preisen für Festplatten auch kein allzu großes Problem mehr, bei Platzmangel einfach eine weitere Platte zu kaufen.


2.7 Wie lange dauert der »Kernelbau«?

Für die meisten Leute lautet die Antwort: »Ziemlich lang«. Die Leistungsfähigkeit des jeweiligen Systems sowie der zur Verfügung stehende Arbeitsspeicher geben hier den Ausschlag, ein wenig kann man diese Zeit auch durch die Anzahl der Treiber beeinflussen, die man einbinden will. Auf einem 486DX4/100 mit 16 MB RAM dauert die Kompilierung eines Kernels der Version 1.2 mit fünf Dateisystemen, Netzwerk- und Soundkartenunterstützung etwa 20 Minuten. Ein 386DX/40 mit 8 MB benötigt für dieselbe Konfiguration etwa 1,5 Stunden. Es empfiehlt sich also je nach Ausstattung, in der Zwischenzeit einen Kaffee zu kochen oder zu lesen. Eine andere Möglichkeit besteht darin, den Kernel von einem Bekannten mit einem schnelleren Rechner kompilieren zu lassen. Auf einem Pentium Pro Multiprozessorrechner dauert es nur ein paar Minuten :-).

bei Antwort benachrichtigen