Eduard Bloch <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] die im Subject "unsubscribe <deine_email_adresse>" enthaelt. Bei Problemen bitte eine Mail an: [EMAIL PROTECTED] ----------------------------------------------------------- 827 eingetragene Mitglieder in dieser Liste.