Betriebssysteme: Fehler im Linux-Kernel wegen GCC

Ein Fehler hat Abstürze in einer Testversion des Linux-Kernels 3.16rc6 verursacht. Es handelte sich nicht um einen Programmierfehler der Kernel-Entwickler, sondern um einen Bug im Compiler GCC.

Artikel veröffentlicht am ,
Der Compiler GCC verursachte einen Fehler in der Testversion des Linux-Kernels 3.16.
Der Compiler GCC verursachte einen Fehler in der Testversion des Linux-Kernels 3.16. (Bild: Ben Tubby/CC-BY 2.0)

Ein Fehler in der GNU Compiler Collection hat für einen der berüchtigten Wutausbrüche von Linus Torvalds in der Mailingliste des Linux-Kernels gesorgt. Er führte dazu, dass die sechste Testversion des nächsten Linux-Kernels 3.16 sporadisch abstürzte. Der Bug in GCC ist bereits behoben. Allerdings könnten einige aktuelle Linux-Kernel noch fehlerhaft generierten Code enthalten.

Stellenmarkt
  1. IT-Mitarbeiter (m/w/d) mit Schwerpunkt IT-Sicherheit
    NMI Reutlingen, Reutlingen
  2. Software Developer (m/w/d)
    Zedas GmbH`, Senftenberg
Detailsuche

Aufgefallen war der Fehler in einer Testversion des Linux-Kernels 3.16rc6, der mit GCC 4.9.0 kompiliert wurde. Der Entwickler berichtete von zufälligen Abstürzen der Funktion Load_Balance() im Scheduler des Kernels. Zunächst konnte das Problem nicht lokalisiert werden. Torvalds entdeckte die Ursache etwa eine Woche später. Der mit GCC 4.9.0 generierte Code enthielt einen Fehler, wodurch der Kernel auf Speicher in der sogenannten Red Zone zugreifen konnte.

Dieser 128 Bytes große Speicherbereich direkt unterhalb des Stapelzeigers kann von Anwendungen reserviert werden. Im Kernel ist das nicht der Fall, da Hardware spezielle Berechtigungen benötigt, um auf Stapelspeicher zuzugreifen. Daher wurde zumindest zeitweilig bei der Kompilierung des Kernels der Schalter -mno-red-zone verwendet, um das Red-Zoning abzuschalten. GCC ignorierte jedoch den Schalter in bestimmten Konfigurationen. Das führte dazu, dass Daten von anderen Interrupts in der Red Zone überschrieben werden konnten.

Nachdem Torvalds GCC 4.9.0 als "komplette Scheiße" bezeichnet hatte, begannen die sachliche Ursachenforschung und Fehlerbehebung. Es stellte sich heraus, dass der Fehler bereits behoben war, der Patch aber noch nicht in aktuelle Versionen von GCC umgesetzt wurde, auch nicht in Version 4.9.1. Er bestand wohl seit GCC 4.5, war aber bis dahin nicht aufgefallen. Erst durch Codeänderungen in GCC 4.9.0 trat er zum Vorschein. Die meisten Linux-Distributionen verwenden gegenwärtig GCC 4.8, um ihre Kernel zu kompilieren.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


UNIXOID 29. Jul 2014

Eines ist ziemlich sicher, IHR werdet es nie verstehen... EUCH hat die Microsoft und...

sektion31 29. Jul 2014

Da Linus selbst für Linux kaum noch codet (ja lyncht mich ich sage und schreibe das so...

George99 28. Jul 2014

Lass mich raten: Studiengang Informatik für BWLer? :D *SCNR*

SelfEsteem 28. Jul 2014

Man sollte Phoronix imho anders lesen. Bei Phoronix erfaehrt man eigentlich nur, "dass...

Scorcher24 28. Jul 2014

... und ist wohl eine finnische Eigenart. Wusste das vorher auch nicht. http://www.reddit...



Aktuell auf der Startseite von Golem.de
Samsung Odyssey Neo G9 im Test
Mini-LED im Ultrawide-Format macht den Unterschied

Samsungs Odyssey Neo G9 ist riesig und durch Mini-LED auch kontraststark. Es gibt derzeit keinen besseren (und teureren) 32:9-Monitor für Gaming.
Ein Test von Oliver Nickel

Samsung Odyssey Neo G9 im Test: Mini-LED im Ultrawide-Format macht den Unterschied
Artikel
  1. Deepmind: Riesige Sprachmodelle lösen auch nicht alle Probleme
    Deepmind
    Riesige Sprachmodelle lösen auch nicht alle Probleme

    Die KI-Forscher von Deepmind haben besonders große Sprachmodelle untersucht und sagen, die Skalierung allein helfe nicht, Probleme zu lösen.

  2. Verkehrssicherheit: Teslas werden zu rollender Spielkonsole und zur Gefahr
    Verkehrssicherheit
    Teslas werden zu rollender Spielkonsole und zur Gefahr

    Nach einem Software-Update können bei laufender Fahrt im Tesla drei Spiele gespielt werden. Die Verkehrssicherheitsbehörde ist entsetzt.

  3. Coronapandemie: Leuchtende Maske erkennt Corona-Infektion
    Coronapandemie
    Leuchtende Maske erkennt Corona-Infektion

    Ein japanisches Team hat einen Corona-Test mit einem Farbstoff entwickelt. Der leuchtet, wenn eine Person mit dem Corona-Virus infiziert ist.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • RAM-Module und SSDs von Crucial im Angebot • Acer-Monitore zu Bestpreisen (u. a. 27" FHD 165Hz OC 199€) • Kingston PCIe-SSD 1TB 69,90€ & 2TB 174,90€ • Microsoft Flight Simulator Xbox 29,99€ • Alternate (u. a. Kingston A400 480 GB SSD 37,99€) • Release: Halo Infinite 68,99€ [Werbung]
    •  /