24.03.2014 Aufrufe

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!