[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian] Treiber-Kompatibilitaet (war: Re: [Dbian 2.2r3] System-Administration)



Eduard Bloch <edi@gmx.de> writes:

> > 2.2.x zu 2.2.x+1 sich nicht die Binärschnittstelle ändert -- es wird eben nur
> > nach besten Möglichkeiten versucht darauf zu achten, dass sich nicht die
> > Sourceschnittstelle ändert, um binärkompatibilität kümmert sich kein
> > Kernel-Hacker (oder zumindest so gut wie keiner).
> 
> Dann erklär uns doch bitte, oh grosser Kernel-Meister, was du denn genau
> unter der binären Kompabilität verstehst!

Binärkompatibiltät meint hier eine fest definierte ABI, die sich nicht ändert
oder zumindest nur bei Wechsel der Hauptversion, also 2.2 zu 2.4 etc.

Schau dir C++ an, dann weißt du, was ich meine. ISO-C++ bietet auch nur
Quelltextkompatibilität und keine Binärkompatibilität, daher gibt es auch den
ständigen Ärger mit shared libraries, die in C++ geschrieben sind. Nimm eine
andere Compilerversion oder gar einen ganz anderen Compiler (für einen Teil
des Programms, die shared library soll nicht neu compiliert werden) und das
war's, da schon das Namemangling unterschiedlich ist, von anderen Details mal
ganz zu schweigen.

Und das passiert auch im Kernel. Da können Details im Speicherlayout mal
geändert werden, so dass zwar bei einer Neucompilierung noch alles
funktioniert, aber eben keine Binärkompatibilität vorhanden ist.

Nimm Netscape mal als Gegenbeispiel. Die Plugin-Schnittstelle hat ein festes
ABI, ist also mithin binärkompatibel, d.h. du kannst alte Plugins auch mit
neueren Netscape-Versionen benutzen und sogar umgekehrt neue Plugins mit
älteren Netscape-Versionen. Man muss nicht Netscape und Plugin passend
füreinander compilieren.

Binärkompatibilität hat natürlich auch Nachteile. Man muss eben eine feste ABI
pflegen und kann somit z.B. nicht mal eben das Speicherlayout von
Datenstrukturen ändern, obwohl man festgestellt hat, das das neue Layout
Platz/Zeit spart etc. Wichtig war den Kernel-Entwicklern aber wohl auch, dass
man so Treiberentwickler eher dazu bringen kann, den Treiber im Quelltext zu
veröffentlichen.

Der Nachteil einer fehlenden ABI ist halt, dass die Benutzerseite schwieriger
wird, denn ich kann eben nicht ein fertiges Treibermodul einfach ins passende
Verzeichnis schmeißen und gut ist. Ich muss also i.d.R. den Treiber selber
compilieren (soweit möglich). Hersteller können eben nicht einfach eine
fertige Treiberdatei bereitstellen (unabhängig davon, ob der Quelltext frei
zugänglich ist oder nicht). Dadurch wird der einfache Einsatz auf dem Desktop
für Privatleute erschwert.

Man muss halt die Vor- und Nachteile einer fehlenden ABI abwägen und die
Entscheidung ist schon vor langer Zeit gefallen.

-- 
Until the next mail...,
Stefan.

-- 
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

827 eingetragene Mitglieder in dieser Liste.


Reply to: