Ei kai distrojen binääriyhteensopivuudessa ole juurikaan kyse kernel rajapinnasta, koska ei se juurikaan muutu. Kirjastothan siellä on eri versioissa ja pakattu eri tavalla, minkä vuoksi eri distrojen binäärit ei toimi.
No samat versiot voi saada distroon. Mikään ei kuitenkaan rajoita distroa säilyttämästä toista kernel API:ia, koska Linux ei takaa standardi-API:ia, koska avoimena lähdekoodina sitä saa muuttaa. POSIX:iakin rikotaan vaikka kuinka paljon.
Näin ollen, jos teet ohjelman distrolle X,
niin mikään ei sinänsä takaa, että se toimii myös distrolla Y, vaikka ne ovat kaikki Linuxeja.
Do Linux system calls Linux API depend on Linux distributions (e.g. Debian, Fedora, Ubuntu, Arch, Gentoo, ...), and/or Linux kernel?
stackoverflow.com
news.ycombinator.com
Toisaalta:
en.wikipedia.org
BSD:eissa tämä on siistimmin jaoteltu, koska kukaan ei edes oleta, että BSD:lle X tehty ohjelma toimisi BSD:llä Y, koska ne ilmaisevat selkeästi, että ne ovat kaikki eri käyttöjärjestelmiä. Ohjelman kääntäminen toiselle onnistuu kuitenkin melko usein vähällä vaivalla.
Linuxeissa on ollut kauhea sotku noissa, johon yritetään vastata yritteillä kuten:
Linux apps that run anywhere
appimage.org
Oikeasti tuo pitäisi kuitenkin taata matalammalla tasolla, mutta tämä on mahdotonta, koska eri distroilla on eri tavoitteet.
Näin ollen paras kokemus saavutetaan edelleen natiivina, mutta esimerkiksi FreeCAD:in AppImage on yllättävän toimiva.
Lisäksi AppImage on huomattavasti parempi kuin aiemmat kokeilut:
Omasta mielestäni distrojen pitäisi kuitenkin sopia keskenään yhtenäinen kernel API, eikä AppImage:n kaltaisia systeemejä.
Tämän takia käytän itse
vain Debiania.