Linux-Magazin 20 Jahre Linux (Vorschau)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
opensourcepress.de<br />
Bücher<br />
User<br />
Kernel<br />
4G/ 4G-Patch<br />
Auf einem 32-Bit-System sind Adressenregister<br />
32 Bit breit und geben damit Zugriff<br />
auf 4 GByte virtuellen Hauptspeicher.<br />
Der Versuch einer Applikation, diesen Adressraum<br />
komplett zu nutzen und auf eine<br />
Adresse oberhalb von 3 GByte zuzugreifen,<br />
scheitert jedoch kläglich mit einem Segmentation<br />
Fault. Im Adressraum der Applikation<br />
haben die Kernelentwickler das oberste Gigabyte<br />
für den Kernel reserviert. Konkret: In<br />
dem Page-Directory einer jeden Task stehen<br />
in den höchsten Adressen exakt die gleichen<br />
Einträge, während die übrigen Einträge Taskspezifisch<br />
sind (Abbildung 7).<br />
Dadurch kann der Kernel mit dem Page-Directory<br />
jeder gerade aktiven Task auf seine<br />
dort referenzierten Speicherbereiche – den<br />
Kernelspace – zugreifen. Ohne diesen Trick<br />
müsste <strong>Linux</strong> bei jedem Systemcall und bei<br />
jedem Interrupt das Page-Directory, also den<br />
Einsprung in die Speicherverwaltung, austauschen.<br />
Dazu gehörte dann auch das Leeren<br />
des Translation Lookaside Buffer (TLB), des<br />
Cache für die Speicherverwaltung. Das ist<br />
zeitlich betrachtet ein teurer Vorgang.<br />
Sollte eine speicherhungrige Task doch den<br />
Bedarf nach 4 GByte virtuellem Speicher<br />
haben, kann der Admin das 4G/ 4G-Patch aktivieren,<br />
das dem Kernel ein eigenes Page-Directory<br />
zuweist. In einem solchen Fall sollte<br />
er allerdings vorzugsweise den Umstieg auf<br />
ein 64-Bit-System erwägen.<br />
3 GByte<br />
1 GByte<br />
0-60 GByte<br />
Userspace<br />
Kernelspace<br />
Highmem<br />
halten gemacht. Nicht<br />
zuletzt dank des deutschen<br />
Kernelentwick-<br />
Anwendungen<br />
lers Thomas Gleixner,<br />
der seine Realtime-<br />
Patches in „schmackhafte,<br />
Trojanische<br />
Pfer de“ verpackt hat<br />
[6], stehen dem Architekten<br />
eines Echtzeitsystems<br />
mit <strong>Linux</strong><br />
viele Möglichkeiten<br />
offen: Hochauflösende<br />
Timer (Hrtimer) erlauben sehr genaue<br />
Zeitsteuerungen, Realtime-Mutexe bieten<br />
Prioritätsvererbung und die bisher nicht<br />
erwähnten CPU-Sets fixieren Rechenprozesse<br />
exklusiv auf spezifischen Rechnerkernen<br />
eines Multicoresystems.<br />
Hinzu kommen die erwähnten Techniken<br />
Threaded Interrupts, Kernel-Preemption<br />
und Tickless Kernel. Das unter Entwicklern<br />
berüchtigte Big Kernel Lock (BKL),<br />
das in den alten Versionen mal eben Interrupts<br />
auf sämtlichen Prozessoren gesperrt<br />
hat, ist ebenfalls rechtzeitig vor der<br />
Veröffentlichung von 3.0 aus dem Kernel<br />
verschwunden.<br />
Code zum Anfassen<br />
0x0000.0000<br />
logischer Adressraum<br />
0xbfff.ffff<br />
0xc000.0000<br />
0xffff.ffff<br />
Abbildung 7: Da alle Page-Directories in den höchsten Adressen die gleichen<br />
Einträge aufweisen, ist beim Übergang in den Kernel kein Umschalten der<br />
Speicherbereiche notwendig.<br />
Der <strong>Linux</strong>-Kernel 3.0 präsentiert sich aus<br />
vielen Gründen als spannendes Stück<br />
produktiver Software. Nicht nur, weil er<br />
objektorientiert aufgebaut ist, ohne eine<br />
objektorientierte Programmiersprache zu<br />
verwenden, und weil er eine ungewöhnliche<br />
Skalierbarkeit und Portierbarkeit aufweist<br />
oder weil er die Ideen und die Programmierfähigkeiten<br />
unterschiedlichster,<br />
weltweit verstreuter Entwickler vereint,<br />
sondern auch, weil er dank seiner Open-<br />
Source-Lizenz ein Stück Hightech zum<br />
Anfassen ist. (mhu)<br />
n<br />
Infos:<br />
[1] Linus Torvalds, „<strong>Linux</strong> 3.0-rc1“:<br />
[http://thread. gmane.org/gmane.linux.<br />
kernel/1147415]<br />
[2] Quade, Kunst, „Kern-Technik“, Folge 33<br />
(Multicore): <strong>Linux</strong>-<strong>Magazin</strong> 05/ 07, S. 52<br />
[3] Quade, Kunst, „<strong>Linux</strong>-Treiber entwickeln“,<br />
3. Auflage: Dpunkt-Verlag, <strong>20</strong>11, S 232 ff.<br />
[4] Quade, Kunst, „Kern-Technik“, Folge 23<br />
(VFS): <strong>Linux</strong>-<strong>Magazin</strong> 10/ 05, S. 90<br />
[5] Quade, Kunst, „Kern-Technik“, Folge 39<br />
(Tempfs): <strong>Linux</strong>-<strong>Magazin</strong> 05/ 08, S. 98<br />
[6] Thomas Gleixner, „Forced threaded interrupt<br />
handlers“: [https://lkml.org/lkml/<br />
<strong>20</strong>11/2/23/ 510]<br />
Die Autoren<br />
Eva-Katharina Kunst, Journalistin, und Jürgen<br />
Quade, Professor an der Hochschule Niederrhein,<br />
sind seit den Anfängen von <strong>Linux</strong> Fans von Open<br />
Source. Mittlerweile ist die dritte Auflage ihres<br />
Buches „<strong>Linux</strong> Treiber entwickeln“ erschienen.<br />
ISBN 978-3-941841-42-0<br />
328 Seiten · brosch. · 29,90 [D]<br />
ISBN 978-3-941841-26-0<br />
248 Seiten · brosch. · 24,90 [D]<br />
Kurse<br />
05.- 09. September<br />
10. - 14. Oktober<br />
Neu<br />
Vorbereitung auf LPIC-2<br />
Vorbereitung auf LPIC-1<br />
Diese Kurse bereiten Sie auf die Prüfungen 101<br />
und 102 bzw. <strong>20</strong>1 und <strong>20</strong>2 des <strong>Linux</strong> Professional<br />
Institute vor. Am letzten Kurstag können Sie die<br />
Prüfungen bei uns ablegen!<br />
Auswahl Kurstermine August -Oktober <strong>20</strong>11<br />
TCP/IP-Analyse mit Wireshark<br />
Python<br />
OTRS::ITSM<br />
Qt für Fortgeschrittene<br />
Vorbereitung auf LPI 301<br />
Nagios Advanced<br />
Novell 3102<br />
C++: STL und Boost<br />
Performance-Analyse mit collectd<br />
Samba in heterogenen Netzen<br />
Virtualisierung mit KVM<br />
IPv6<br />
08/<br />
<strong>20</strong>11<br />
ISBN 978-3-941841-44-4<br />
ca. 300 Seiten · brosch. · 24,90 [D]<br />
ISBN 978-3-941841-36-9<br />
343 Seiten · brosch. · 34,90 [D]<br />
Dozent:<br />
Michael<br />
Gisbers<br />
31.08 – 02.09.<br />
31.08 – 02.09.<br />
01. – 02.09.<br />
08. – 09.09.<br />
12. – 16.09.<br />
15. – 16.09.<br />
19. – 23.09.<br />
26. – 27.09.<br />
26. – 28.09.<br />
26. – 28.09.<br />
04. – 07.10.<br />
10. – 12.10.<br />
opensourceschool.de<br />
Sonderpreise<br />
für Studierende