Re: Welches Linux zu Beginn und wo drauf?



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
.



Relevant Pages

  • Re: Messgeraete-Steuerung ueber Excel etc?
    ... Doch, kannst du, natuerlich kann man auch unter Windows eine serielle ... Diese Programmiermethode hat es nicht in Lunux geschafft, weil bei Linux Leute ... wie Kai sitzen, die meinen, mit dem primitiven flie API wäre alles erledigt. ... Dort bleiben bis heute Programme einfach stehen, ...
    (de.sci.electronics)
  • Elektra 0.7.0
    ... Projekt geht es um eine API und Datenstrukturen um alle anderen Libraries ... und natürlich auch eigenen Parser und Generatorcode mittels Backends ... Der erste Schritt war die Festlegung der API, ... Der wichtigste Nebeneffekt einer solchen Abstraktion (das Programme ...
    (de.comp.os.unix.programming)
  • Re: using serial port using APIs
    ... API solution would help you, MSComm could not have possibly be slower than ... > programme that there is data available? ...
    (microsoft.public.vb.winapi)
  • Re: about bluetooth status detect???
    ... API to retrieve system state information, ... stack you can P/Invoke the BthGetMode API, ... I'v developed a programme by Vb & .Net and it works well in wm5.0. ... In the programme bluetooth working as a COM port.But there is a problem: ...
    (microsoft.public.pocketpc.developer)