Jiffies
Damit der Scheduler überhaupt aktiv werden kann, sind Interrupts notwendig. Daher erzeugt klassischerweise ein Timer-Baustein periodisch (zum Beispiel alle 10 Millisekunden) einen Interrupt. Die Anzahl der Interrupts zählt Linux in der Variablen »jiffies«
mit, sie sind so etwas wie der Herzschlag des Kernels. In Kernel 2.6 hatte Linus Torvalds den zeitlichen Abstand auf 4 Millisekunden reduziert und so das Interaktivitätsverhalten spürbar verbessert. Das geht allerdings zu Lasten der Effizienz, schließlich wird auf diese Art der Kernel häufiger aktiv.
Herz ohne Schlag
Kernel 3.0 ist tickless: Er erzeugt Interrupts nicht mehr periodisch, sondern zu den Zeitpunkten, zu denen sie auch tatsächlich benötigt werden. Die Liste der Vorteile ist beeindruckend: Systemlast reduziert, Effizienz gesteigert, gerade auf mobilen Endgeräten wird durch längere Zeiten der Inaktivität Energie eingespart und die Genauigkeit zeitgesteuerter Aktionen erhöht, da Zeitaufträge nicht mehr zum Zeitpunkt des nächsten periodisch auftretenden Interrupts abgearbeitet werden, sondern punktgenau.
Natürlich gibt es auch Kosten: Mit jedem Interrupt muss der Kernel den nächsten Zeitpunkt berechnen, den Timer-Baustein neu programmieren und die interne Zeitbasis aktualisieren. Jiffies gibt es zwar weiterhin, aber unabhängig davon haben die Linux-Entwickler das Timekeeping mit dem Tickless-System auf Nanosekunden-Genauigkeit umgebaut.
Die zweite wesentliche Komponente des Kernels ist die Speicherverwaltung (Memory-Management). Eine ihrer Aufgaben ist die Adressenumsetzung. Der Kernel sorgt dafür, dass jede Applikation auf einen Hauptspeicher zugreifen kann, der an Adresse 0 startet und dann – je nach Konfiguration – 3 oder 4 oder noch mehr GByte umfasst.
Die Methode, die dabei vor allem zum Einsatz kommt, ist das so genannte Paging. Es teilt den Hauptspeicher in Seiten gleicher Größe (Pages) ein. Typischerweise hat eine Page eine Größe von 4 KByte. Einen 4 GByte großen Hauptspeicher teilt das Betriebssystem somit in eine Millionen Speicherseiten ein. Um eine Millionen Pages zu adressieren, benötigt man 20 Bit; um innerhalb der Page eine Speicherzelle auszusuchen 12 Bit. Auf einem 32-Bit-System (PC-Plattform) ist das normalerweise über eine zweistufige Speicherverwaltung (Two-Level-Paging) realisiert, auf einem 64-Bit-Rechner über eine dreistufige.
Aus Sicherheitsgründen variiert Linux die Adressenlagen der einzelnen Segmente einer Applikation (Heap, Stack, Shared Libraries) um jeweils einen zufälligen Wert. Dass Linux bei dieser Adress Space Layout Randomisation (ASLR) genannten Technik stärker variiert als andere Betriebssysteme, ist ein wichtiges Sicherheitsmerkmal.
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 6 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





