zurück zum Artikel

Kernel-Log – Was 3.1 bringt (1): Netzwerk

| Thorsten Leemhuis

Verbesserungen an allen wichtigen WLAN-Treibern und Optimierungen bei der Virtualisierung gehören zu den wichtigsten Neuerungen von Linux 3.1.

Eine Woche nach der Freigabe [1] von Linux-3.1-rc1 legte Linus Torvalds in der Nacht von Sonntag auf Montag die zweite Vorabversion von Linux 3.1 nach [2]. Mit ihr erhielt [3] der Ende Mai [4] auf "Sneaky Weasel" getaufte Kernel abermals einen neuen Namen und heißt jetzt "Wet Seal". Hintergründe zur Namenswahl liefert Torvalds nicht – vermutlich hat der Tauch-Lehrgang etwas damit zu tun, bei dem er als "Divemaster [5]" dabei war [6].

In der Freigabe-Mail zur zweiten Vorabversion zeigt sich Torvalds erfreut, dass es nach Ende des Merge Window [7] so ruhig gewesen sei. Bis zur Freigabe von Linux 3.1 nimmt er – von seltenen Ausnahmen abgesehen – nur mehr Korrekturen und kleine, ungefährliche Verbesserungen in den Hauptentwicklungszweig [8] von Linux auf.

Das Kernel-Log [9] kann daher bereits jetzt einen umfassenden Überblick über die wichtigsten Neuerungen der Ende September oder Anfang Oktober erwartete Linux-Version geben. Wie üblich werden sich die Artikel der Serie "Was 3.1 bringt" nach und nach den unterschiedlichen Funktionsbereichen des Kernels annehmen. Den Anfang der Mini-Serie macht die folgende Beschreibung der wichtigsten Änderungen am Netzwerk-Stack und an den zugehörigen Treibern für LAN- oder WLAN-Hardware. In den kommenden Wochen folgen Artikel zur Storage-Unterstützung, Dateisystemen, Architektur-Code, Infrastruktur sowie zu Treibern für sonstige Hardware.

Durch viele kleine und einige größere Änderungen wird Linux 3.1 eine verbesserte WLAN-Unterstützung bieten. So nahmen die Kernel-Entwickler den Treiber Rtl8192de auf (u. a. 1 [10]), der die PCIe-WLAN-Chips RTL8192DE und RTL8188DE von Realtek anspricht; schon bei Linux 3.0 und zwei seiner in den Monaten davor freigegebenen Vorgängern war jeweils ein von Realtek mitentwickelter WLAN-Treiber zum Kernel gestoßen. Diese und andere WLAN-Treiber erhielten zwischenzeitlich Verbesserungen – der Treiber Rtl8192cu etwa unterstützt ab Linux 3.1 nun weitere USB-WLAN-Module [11].

Der Ralink-Treiber Rt2800 spricht von nun an [12] auch die "RT3572/RT3592/RT3592+Bluetooth combo card" an. Die Entwickler haben ferner die Unterstützung für die Ralink-Chipsätze der Serie Rt35xx ausgebaut, dadurch gilt der zuständige Code nun nicht mehr [13] als "nicht funktionierend und nur für Tester und Entwickler gedacht".

Der Iwlagn-Treiber für Intels aktuelle, in vielen Core-Notebooks verbauten WLAN-Chipsätze beherrscht [14] ab 3.1 WoWLAN (Wake on Wireless LAN). Der Treiber kennt nun zwei weitere Modul-Parameter: Über power_save [15] lassen sich die standardmäßig deaktivierten Stromsparfunktionen ein- und ausschalten; über den Parameter power_level [16] kann man die Nachhaltigkeit der Stromsparbemühungen über Werte von 1 bis 5 festlegen.

Der Atheros-Treiber ath9k unterstützt nun auch den Baustein AR9330 (1 [17], 2 [18]). Der verbesserter Ath6kl [19]-Treiber, der den gleichnamigen Staging-Treiber beerbt, hat die Aufnahme verpasst und soll bei Linux 3.2 folgen.

Der Treiber B43 für WLAN-Chips von Broadcom unterstützt nun [20] 802.11n-WLAN-Hardware, die Broadcom's Advanced Microcontroller Bus Architecture (AMBA) verwendet – etwa die Bausteine BCM43224 (PCI-ID 14e4:4353) und BCM43225 (14e4:4357). Maßgeblich vorangetrieben wurden die dafür nötigen Verbesserungen von Rafał Miłecki, der dafür von der Poznan University of Technology unterstützt wurde (1 [21], 2 [22]).

Zusammen mit dem bei Linux 3.0 integrierten AMBA-Treiber Bcma spricht der schon lange zum Kernel gehörende B43-Treiber dadurch einige der Broadcom-Chips an, die zuvor schon der Treiber Brcmsmac [23] unterstützte. Letzterer ist aus dem Brcm80211-Treiber hervorgegangen, den Broadcom im September 2010 [24] veröffentlicht hat. Er liegt allerdings im Staging-Bereich, da er die Qualitätsansprüche der Kernel-Hacker nicht erfüllt – einige wenige Linux-Distributionen liefern ihn daher nicht mit.

Trotz der Verbesserungen für B43 arbeitet Broadcom weiter am Treiber Brcmsmac, damit er den Staging-Bereich verlassen kann. Normalerweise vermeiden die Kernel-Entwickler allerdings, zwei Treiber für ein und dieselbe Hardware im Kernel zu haben. Miłecki hat die Broadcom-Entwickler schon auf diesen Umstand hingewiesen [25] – zu einer Klärung, welcher Treiber das Rennen machen soll, hat das jedoch nicht geführt, denn der Broadcom-Entwickler scheint [26] auf den Hinweis nicht eingegangen zu sein. Da der B43-Treiber aber auch viele andere Broadcom-Chips unterstützt und schon zum WLAN-Subsystem gehört, ist er ein bisschen besser positioniert, auch wenn er einige Funktionen der von ihm angesprochenen WLAN-Chipsätze möglicherweise bislang nicht so gut unterstützt wie Brcmsmac.

Die bei 2.6.39 [27] aufgenommene Unterstützung für Ipset [28] erhielt eine Reihe von Verbesserungen, um die vom Firewall-Code konsultierten Tabellen mit Filter-Informationen flexibler und einfacher nutzen zu können. So lassen sich nun [29] Adressen und Interface-Namen als Paar mit eigenem Namen übergeben, was für Egress- oder Ingress-Filterung interessant ist; der Kernel kann kann zudem als IP-Bereiche übergebene Adressen automatisch in die korrekten Subnetz-Definitionen konvertieren [30].

Der experimentelle und standardmäßig ausgeschaltete Zero-Copy-TX-Support für Macvtap [31] und Vhost-net [32] soll die Netzwerkperformance beim Virtualisieren verbessern, da es die Kopiervorgänge für Netzwerkpakete eliminiert, die KVM-Gastsysteme verlassen. Die Unterstützung in Vhost-Net ist allerdings als experimentell gekennzeichnet und muss über die Modul-Option experimental_zcopytx aktiviert werden.

Viele kleinere, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste mit den englischen Commit [53]-Überschriften der jeweiligen Änderung. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend [54] des von Linus Torvalds gepflegten Git-Zweigs mit den "offiziellen" Kernel-Quellen auf Kernel.org. Der über diese Links angezeigten Commit-Kommentar und der darunter ausgegebene Patch [55] liefern zahlreiche weitere Informationen zur jeweiligen Änderungen.

Vor jedem Link finden sich in eckigen Klammern einige Buchstaben und Zahlen. Ein "C" kennzeichnet Patches mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten, die bei der Kernel-Konfiguration über "make menuconfig" oder "make xconfig" angezeigt werden. Ein "D" steht bei Patches, die die Dokumentation verändern, die im Kernel-Zweig unterhalb von Documentation/ liegt. Ein "N" weist Änderungen aus, die eine neue Datei anlegen. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" kennzeichnet Änderungen, die inklusive Kommentar zwischen 10 und 20 KByte groß sind, eine "2" für solche, die zwischen 20 und 30 KByte Umfang haben; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.

LAN

WLAN

Various

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs [130] auf heise open [131]. Neue Ausgaben des Kernel-Logs [132] werden auf den Identi.ca [133]- und Twitter [134]-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H [135]" erscheinenden Übersetzungen auf den Identi.ca [136]- und Twitter [137]-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca [138] und Twitter [139] als "@kernellogauthor". (thl [140]). (thl [141])


URL dieses Artikels:
https://www.heise.de/-1323216

Links in diesem Artikel:
[1] https://www.heise.de/hintergrund/Kernel-Log-Erste-Vorabversion-von-Linux-3-1-1319235.html
[2] http://thread.gmane.org/gmane.linux.kernel/1179341
[3] http://git.kernel.org/linus/93ee7a9340d64f20295aacc3fb6a22b759323280
[4] https://www.heise.de/news/Erste-Vorabversion-von-Linux-3-0-erschienen-1252084.html
[5] http://de.wikipedia.org/wiki/Divemaster
[6] https://plus.google.com/102150693225130002912/posts/RLmbspKyr68
[7] https://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[8] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[9] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[10] http://git.kernel.org/linus/f9fc51365d0cf66d1f95f47618566f27177ecbbc
[11] http://git.kernel.org/linus/03f18fa16cd805916a56d027b4ee52ba26e6d6ab
[12] http://git.kernel.org/linus/872834dfb38edc6f72cfc783a5ce78f2a9f36ec5
[13] http://git.kernel.org/linus/0f93c79404e1eaa5207f6d8a7aea14119808d382
[14] http://git.kernel.org/linus/c8ac61cf6e53fefb3b439fc58390fb65d2730e63
[15] http://git.kernel.org/linus/0172b02926493863e2e3a35f1d7bf13e935e655c
[16] http://git.kernel.org/linus/f7538168915271083070a60ebb10def11fce0cb0
[17] http://git.kernel.org/linus/999a7a88f1b062af5617fa55df317446af86a3da
[18] http://git.kernel.org/linus/e9b7c5914d4f3a066efcab272b1431d1dbb77297
[19] http://linuxwireless.org/en/users/Drivers/ath6kl
[20] http://git.kernel.org/linus/6f89062a66d8b88ca89a15a6cebc0bc0db284441
[21] http://zajec.net/blog/view/2011-thank-you-poznan-university-of-technology
[22] http://thread.gmane.org/gmane.linux.kernel.wireless.general/73828
[23] http://linuxwireless.org/en/users/Drivers/brcm80211
[24] https://www.heise.de/news/Broadcom-veroeffentlicht-Open-Source-WLAN-Treiber-fuer-Linux-1076480.html
[25] http://thread.gmane.org/gmane.linux.kernel.wireless.general/72878/focus%3D72879
[26] http://thread.gmane.org/gmane.linux.kernel.wireless.general/72878/focus%3D72913
[27] https://www.heise.de/hintergrund/Kernel-Log-Was-2-6-39-bringt-1-Netzwerk-Treiber-und-Infrastruktur-1226097.html
[28] http://ipset.netfilter.org/
[29] http://git.kernel.org/linus/e385357a2f214e4d4e79c6118f1bede2572e0701
[30] http://git.kernel.org/linus/d0d9e0a5a8db05b2179c2ffb25d1c2850cce3c8e
[31] http://git.kernel.org/linus/97bc3633bec7ed0fdfbda6b9cf86c51e4f58f8e2
[32] http://git.kernel.org/linus/bab632d69ee48a106e779b60cc01adfe80a72807
[33] http://git.kernel.org/linus/a73105b8d4c765d9ebfb664d0a66802127d8e4c7
[34] http://git.kernel.org/linus/cc47f66e6b9ec7e7d465f74739a6fc9844593894
[35] http://linuxwireless.org/en/users/Drivers/mac80211_hwsim
[36] http://git.kernel.org/linus/7882513bacb176ab4aacceefdd035ca9479da4fb
[37] https://github.com/cozybit/wmediumd#readme
[38] http://git.kernel.org/linus/3c9ada227c56c6f41e24b01d183b00b007c7ac93
[39] http://git.kernel.org/linus/14205aa21c8041d7e940ee9bcde87824dc00a08a
[40] http://git.kernel.org/linus/3e256b8f8dfa309a80b5dece388d85d9a9801a29
[41] http://git.kernel.org/linus/c7fe3b52c1283b8ba810eb6ecddf1c8a0bcc13ab
[42] http://git.kernel.org/linus/23b7869c0fd08d73c9f83a2db88a13312d6198bb
[43] http://git.kernel.org/linus/4d12b8b129f170d0fc3188de1e51a2a1b0f87730
[44] https://www.heise.de/hintergrund/Kernel-Log-Was-3-0-bringt-1-Netzwerk-1257064.html
[45] http://git.kernel.org/linus/0ca87f05ba8bdc6791c14878464efc901ad71e99
[46] http://git.kernel.org/linus/dc99f600698dcac69b8f56dda9a8a00d645c5ffc
[47] http://git.kernel.org/linus/95ec3eb417115fbb2c73b59e2825f6dd5d2f6cf6
[48] http://git.kernel.org/linus/7736d33f4262d437c51ed7a28114eacbfca236ff
[49] http://www.heise.de/glossar/entry/Git-Pull-Request-397971.html
[50] http://thread.gmane.org/gmane.linux.kernel/1170240
[51] http://article.gmane.org/gmane.linux.kernel/1170796/
[52] http://article.gmane.org/gmane.linux.network/202535/
[53] http://www.heise.de/glossar/entry/Commit-397925.html
[54] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
[55] http://www.heise.de/glossar/entry/Patch-395546.html
[56] http://git.kernel.org/linus/c074304c2bcf4b45e2b7ff86011beaa035ee52fd
[57] http://git.kernel.org/linus/3c8def9776c3d4636291432522ea312f7a44be95
[58] http://git.kernel.org/linus/c9ee92062424375fe6e73c4af5d52df289ccf9eb
[59] http://git.kernel.org/linus/a89a1d4a738668ccb2270ac218cddd30f0bef2a0
[60] http://git.kernel.org/linus/9380bb9e88831bd3d85636b3e4fec30e330d5266
[61] http://git.kernel.org/linus/6583e33baefbe4dea04999ec91be1a1371cd1528
[62] http://git.kernel.org/linus/e4d78f120c039bbd18ae449a6b2af3df83ca02bf
[63] http://git.kernel.org/linus/d1976b2e6478a1b8ff2dc35979e7791e2d668285
[64] http://git.kernel.org/linus/b96368e9365a4db7429da87cfd25bb54b24954f8
[65] http://git.kernel.org/linus/a3d72d5d01b82a86f3b16ca1918d2040b1acba8c
[66] http://git.kernel.org/linus/2c670b5bd794ef93c81bf8797b7d6393c8453fc6
[67] http://git.kernel.org/linus/9612de92e023bff0d1cd5725ee65293accc70c56
[68] http://git.kernel.org/linus/3bea123791d36a7b15f0d14ba5af9bdeb0c51cfc
[69] http://git.kernel.org/linus/1b9c4134c126aa8ae00a57672d4a4eaecc436b54
[70] http://git.kernel.org/linus/69785b79ca9b1acb62098ff059f897bfe59d443f
[71] http://git.kernel.org/linus/ca2cc333920690db87a03c2ee3bd6f43adb3e7fb
[72] http://git.kernel.org/linus/619c5cb6885b936c44ae1422ef805b69c6291485
[73] http://git.kernel.org/linus/e1428d26b404133dcbcc8f758f0f4f6575afd7b7
[74] http://git.kernel.org/linus/22c8c9343258feda9ea9ebb9e5f8cbb727b69454
[75] http://git.kernel.org/linus/93a3aa25933461d76141179fc94aa32d5f9d954a
[76] http://git.kernel.org/linus/70090424e59652c4b2e777b533cc23134b176b83
[77] http://git.kernel.org/linus/a6686f2f382b13f8a7253401a66690c3633b6a74
[78] http://git.kernel.org/linus/57d6fa37f56ca594a1becaf5b8774382ddb7d720
[79] http://git.kernel.org/linus/5a9d69179f294691bdfd1278f64212a9a7815b0e
[80] http://git.kernel.org/linus/4fb99cd6ac4fe6d03a334a6f4ebb2bbfc4b479ed
[81] http://git.kernel.org/linus/4ec8f0ca2ab6e1f89fd0ea73ede92a2e2d7409ef
[82] http://git.kernel.org/linus/5cf6fa784a979dce59a5c1b7085e59ee130369e8
[83] http://git.kernel.org/linus/3c65ab62c5869a9d6ce5d9c28f7042b0e7e57891
[84] http://git.kernel.org/linus/482f05386218a028309a71ad36066ee64b7a820d
[85] http://git.kernel.org/linus/aec7ffdf4ff24df1fe85ed5bc9e050c4dd77617b
[86] http://git.kernel.org/linus/d7520b1d2a9ffae94323ffac9dc37d92f656051f
[87] http://git.kernel.org/linus/1d738e64f3d957d56c1b51e64ebdef986a8760e3
[88] http://git.kernel.org/linus/91fa4b0a6b92ebef3d5e26b709faf62a3b44beb0
[89] http://git.kernel.org/linus/54e9c409a5f9e58465d80d6774afd85a449a4615
[90] http://git.kernel.org/linus/300d0834ebd3f3c57b0063c2fd6bc26d8405626c
[91] http://git.kernel.org/linus/207ecc5eab908843449c167f7264a35d7d5d5e0b
[92] http://git.kernel.org/linus/5a3d9882b84edf5fa8e8ca33a5d6df25e2e727a5
[93] http://git.kernel.org/linus/77dbbb138986b26cb99f868d4b6410577ef4c040
[94] http://git.kernel.org/linus/43bf8c245237b8309153aa39d4e8f1586cf56af0
[95] http://git.kernel.org/linus/71e0b38c2914018b01f3f08b43ee9e3328197699
[96] http://git.kernel.org/linus/b8b1ec61c006ed1d3104093556544e858cc2ddd1
[97] http://git.kernel.org/linus/276b02e2a0ada2e0196852c312560ffdabcebddc
[98] http://git.kernel.org/linus/95dac04f881322b510c45e5ae83f0dbee4f823a2
[99] http://git.kernel.org/linus/308859097831831a979f2e82cbeef0a94f438080
[100] http://git.kernel.org/linus/e6100a2541987b84af37e4c4247d989644a3aa69
[101] http://git.kernel.org/linus/d22ef0bc83c5a4e7ca9f2791e658dc8949d31ff4
[102] http://git.kernel.org/linus/88ba43b662b6b944c6278ad81a114fa559807776
[103] http://git.kernel.org/linus/7d24ddcc1140d2f796436e476c8d69469610588b
[104] http://git.kernel.org/linus/a7a595f675f1b33dc73167147321dba5c4395acc
[105] http://git.kernel.org/linus/da85e5e5afeb72bb6e6b5192a2d252861fafc3e7
[106] http://git.kernel.org/linus/3a0259bb80cec7595a2d085a150412d23ba28c81
[107] http://git.kernel.org/linus/eb492e0169974ac6d168f11d1fc1e2753fe1f3b4
[108] http://git.kernel.org/linus/655f8919d549ad1872e24d826b6ce42530516d2e
[109] http://git.kernel.org/linus/025890b4ed433b9c9e0f221bb806d42d049c87fe
[110] http://git.kernel.org/linus/40d69043fce579378eb185d31445b6ff66abbd93
[111] http://git.kernel.org/linus/2bda8a0c8af5294b869da1efd2c2b9a562f50dcf
[112] http://git.kernel.org/linus/4aa3a715551c93eda32d79bd52042ce500bd5383
[113] http://git.kernel.org/linus/2b77bdde97ae8241dcc23110a4e837acfbc83438
[114] http://git.kernel.org/linus/4b9d9be839fdb7dcd7ce7619a623fd9015a50cda
[115] http://git.kernel.org/linus/178edcbc6b539dfc21062fed9bf31701a8952e1c
[116] http://git.kernel.org/linus/e5b1de1f5ebe0200e988e195fefb6c7396de6e20
[117] http://git.kernel.org/linus/56c07271307b4a20802005692b2b70dfe13d72e8
[118] http://git.kernel.org/linus/0209bcd4d9ee66569d4ea76f9ab2de3a9c740c71
[119] http://git.kernel.org/linus/6e5714eaf77d79ae1c8b47e3e040ff5411b717ec
[120] http://git.kernel.org/linus/d804c6f2122ae4ffac21757c7774007e38093390
[121] http://git.kernel.org/linus/89dc79b787d20e4b6c4077dcee1c5b1be4ab55b8
[122] http://git.kernel.org/linus/ac8cc925d35fc5a05da2bd097e602f20de2478a4
[123] http://git.kernel.org/linus/c46ee38620a2aa2b25b16bc9738ace80dbff76a4
[124] http://git.kernel.org/linus/dd51be0f5484b450b8d48c9226ed86ce3dd5102e
[125] http://git.kernel.org/linus/8f0ea0fe3a036a47767f9c80e81b13e379a1f43b
[126] http://git.kernel.org/linus/557e2a394de0d142ba930ff3cdb2909419414e06
[127] http://git.kernel.org/linus/9ad7c049f0f79c418e293b1b68cf10d68f54fcdb
[128] http://git.kernel.org/linus/a6e1204b82d3e8d7ba1baca35bdb595c722105eb
[129] http://git.kernel.org/linus/6539fefd9bec5faf948b03aec9f9078691d0be6b
[130] http://www.heise.de/open/kernel-log-3007.html
[131] http://www.heise.de/open/
[132] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[133] http://identi.ca/kernellog
[134] http://twitter.com/kernellog
[135] http://www.h-online.com
[136] http://identi.ca/kernellog2
[137] http://twitter.com/kernellog2
[138] http://identi.ca/kernellogauthor
[139] http://twitter.com/kernellogauthor
[140] mailto:thl@ct.de
[141] mailto:thl@ct.de