Menü
Avatar von die kleine Himbeere
  • die kleine Himbeere

mehr als 1000 Beiträge seit 25.10.2012

Welche Auswirkungen hat dies auf die gemeinsame Codebasis aller Architekturen?

PC-User vergessen es zwar oft, aber x86-PCs sind nicht die einzige Hardware-Architektur welche von Linux unterstützt wird.

Die ursprüngliche Idee war, den Großteil des Kernel-Quelltextes Hardware-Plattform-neutral zu halten, und nur einen relativ kleinen Anteil plattformspezifischer Quelltexte im Kernel zu haben.

Der Rest der Unterschiede wurde dann im Wesentlichen durch plattformspezifisch deklarierte Makros realisiert, welche immer gleich aufgerufen werden, aber die konkreten Makro-Definitionen sind abhängig von der Hardware-Plattform.

So schaffte es das Linux-Kernel viele Jahre lang hindurch, dass das Hinzufügen einer neuen Hardware-Plattform ein zwar nicht vernachlässigbarer, aber doch sehr überschaubarer Aufwand blieb.

Man musste nur eine Hand voll plattformspezifischer C- bzw. Inline-Assembler-Quelltexte verfassen, einige davon Header-Files, und das war's dann. Den überwiegenden Großteil der Kernel-Quelltexte brauchte man nicht zu verändern.

Praktisch musste man zudem noch zusätzliche Treiber schreiben, weil nahezu jede Hardware-Plattform auch spezielle Hardware (Video-Controller, DMA Engines etc.) neben der eigentlichen CPU mitbringt. Aber auch dieser Aufwand hielt sich meist in Grenzen.

Wenn ich aber in den letzten Jahren von den verzweifelten Versuchen der Kernel-Entwickler lese, wie sie die völlig verkorksten INTEL-Prozessoren mit ihren zahlreichen Hardware-Design-Bugs irgendwie "wieder sicher machen" wollen, dann sind viele dieser Fixes sehr tiefgehende Einschnitte in die Funktionsweise des Systems.

Und viele davon werden die Performance des Systems verringern, so dass sich die Frage stellt ob diese Änderungen nur für die x86-Plattform (bzw. allgemeiner gesagt nur für CPUs die Speculative Execution betreiben) angewendet werden, oder auf alle unterstützten Hardware-Architekturen.

Im ersten Fall wäre zu befürchten dass die x86-Codebasis sich immer weiter von den anderen Codbasen im Kernel entfernt, während umgekehrt der Anteil der für alle Plattformen gemeinsam nutzbarer Code immer weniger wird.

Das bedeutet dann, dass es immer schwieriger würde neue Änderungen zwischen x86-Plattform und den restlichen Plattformen synchron zu halten. Bzw. mehr Arbeitsaufwand verursachen würde.

Wenn aber keine solche Unterscheidung vorgenommen wurde und die "Fixes" für Speculative Execution auch für solche Hardware-Plattformen angewendet würden welche gar keine solchen Fixes benötigen, würden diese dann im Vergleich zu früher künstlich ausgebremst werden.

Denn dann würden dort CPU-Zyklen für Maßnahmen vergeudet werden, die nur für die verkorksten INTEL-CPUs (bzw. auch andere welche dieselben Bugs aufweisen) einen Sinn machen, während alle anderen Hardware-Architekturen "mit-bestraft" würden obwohl sie keine solchen Design-Bugs enthalten.

Bewerten
- +
Anzeige