Re: Welches Linux zu Beginn und wo drauf?
- From: Josef Moellers <josef.moellers@xxxxxxxxxxxxxxxxxxx>
- Date: Wed, 04 Feb 2009 09:02:33 +0100
Sieghard Schicktanz wrote:
Hallo Josef,
Du schriebst am Tue, 03 Feb 2009 12:47:54 +0100:
...ABI-Wechsel neu kompiliert werden. Wenn es einen ABI-Wechsel gibt,
steigt die Major Version Number. Und jetzt rate mal, warum die
Natürlich, Markus schrieb aber "nur bei einem ABI-Wechsel" und dem mußte ich widersprechen.
A) Wo steht oben was von "nur"?
"In dem Fall muss nur bei einem
ABI-Wechsel neu kompiliert werden."
Hatte ich auch zitiert, muß man nur lesen, aber beim Quoten nicht weglassen ;-)
B) Bedingt nicht eine "API"-Änderung eine "ABI"-Änderung?
Nein. Natürlich kann man über Begriffe streiten, aber ein ABI regelt IMHO generische Dinge, die für *alle* Programme gültig sind und bezieht sich auf die Binär-Ebene, insbesondere Machinenarchitektur (Endianness, Speicherachitektur), Aufrufkonventionen (wie werden welche Argumente an Unterprogramme übergeben, wie werden welche Rückgabeparameter an den Aufrufer zurückgegeben, wie werden Unterprogramm überhaupt angesprungen), während ein API sich IMHO i.d.R auf ein Anwendungsgebiet bezieht: es gibt ein API zur Benutzung von PNG-Dateien, es gibt ein API für KDE- oder Gnome-Programme etc, während es ein Linux-auf-ix86-ABI, ein Linux-auf-x64-ABI, ein Linux-auf-PPC-ABI gibt, wobei sich das ABI im Laufe der zeit inkompatibel geändert hat.
D.h. wenn ich festlege, daß zum Öfnnen einer PNG-Datei zuerst die Library-Version abgefragt werden *muß*, so ist das eine API-Änderung, die also eine Modifikation des Quelltextes erfordert. Ebenso wäre eine (abwärtskompatible) Änderung in einer struct (z.B. wenn neue Felder für neue Kompressionsmethoden eingeführt werden) eine API-Änderung, die aber lediglich die Neu-Übersetzung des unveränderten Quelltextes *zwingend* erfordert ("lediglich", falls man diese neuen Kompressionsmethoden nicht unterstützen muß/will/braucht). Beide Änderung sind aber *keine* Änderung im darunterliegenden ABI: Integers werden wie vorher im Speicher abgelegt, Gleitkommazahlen haben nach wie vor die selbe Anzahl an Mantisse- und Exponenten-Bits, Parameter werden auf die selbe Art und weise übergeben wie vorher, etcpp.
Ein ABI bezieht sich, wie gesagt, auf die Binärebene, ein API auf Quelltextebene.
--
These are my personal views and not those of Fujitsu Siemens Computers!
Josef Möllers (Pinguinpfleger bei FSC)
If failure had no penalty success would not be a prize (T. Pratchett)
Company Details: http://www.fujitsu-siemens.com/imprint.html
.
- Follow-Ups:
- Re: Welches Linux zu Beginn und wo drauf?
- From: Sieghard Schicktanz
- Re: Welches Linux zu Beginn und wo drauf?
- References:
- Re: Welches Linux zu Beginn und wo drauf?
- From: Markus Wichmann
- Re: Welches Linux zu Beginn und wo drauf?
- From: Josef Moellers
- Re: Welches Linux zu Beginn und wo drauf?
- From: Michael Baeuerle
- Re: Welches Linux zu Beginn und wo drauf?
- From: Josef Moellers
- Re: Welches Linux zu Beginn und wo drauf?
- From: Sieghard Schicktanz
- Re: Welches Linux zu Beginn und wo drauf?
- Prev by Date: Re: Ralink RT2500: Bremse unter Ubuntu
- Next by Date: Re: Ralink RT2500: Bremse unter Ubuntu
- Previous by thread: Re: Welches Linux zu Beginn und wo drauf?
- Next by thread: Re: Welches Linux zu Beginn und wo drauf?
- Index(es):
Relevant Pages
|