To view parent comment, click here.
To read all comments associated with this story, please click here.
You are confusing the internal API (which is used by drivers and other kernel code) with the user space API. Research the matter and you will see that I am right. In fact, it is because so many people hold the same misconception that I took care to clarify the matter. Otherwise I would not have bothered.
If you still disagree, please point out a specific example for us to examine.
Edited 2008-09-23 23:13 UTC
a long time ago i looked at a webcam driver. to see for yourself take a look at :
http://alpha.dyndns.org/ov511/download/ov51x/ov51x-1.65-1.12-mark/o... . This is what i meant with the linux (KERNEL WISE) not being backwards compatible. The internals drastically changed, and it shows. freebsd has for example ABI binary backwards compatibility for the major releases. you have to also specifically enable this. i could not find such a thing for linux.
and as for the kernel api : i also highly doubt libc for linux 1.0 also runs on linux 2.6, but it might be possible. when using binary backwards compatibility the structures you give to the kernel can not change. i highly doubt linus did this.
as a simple test i took siginfo.h and checked if it changed between 2.4 and 2.6 and it did. the siginfo structure is NOT binary backwards compatible. changing int's to longs makes a lot of difference. it not even source level compatible. and this is the first file with the first large strucure i could find which is used by a the kernel api (the sys_* calls). maybe i'll not allowed to use the variables deeper in the structure. but guess what, it's not documented and linux always tells me to read the source.
could you maybe point out somewhere where linus states he preserves backwards compatibility? i couln't find it.
please note that binary backwards compatibility is also about supporting code relying on bugs and stuff "you are not supposed to do". so if it runs on linux 2.4 it must also run on a newer version, no matter what.
i have to admit the kernel api is small and more backwards compatible than i expected. i'll give you that one 




Member since:
2007-04-29
uhm, no sorry. linux (kernel wise) is not backwards compatible in any way. the kernel interface even changes between minor versions. this does not really matter since all drivers are included in the kernel anyway.
libc/gtk/qt/x11 and stuff like that are quite stable and properly versioned.
but more on topic. the first time i experienced windows undocumented calls was with emm, somehow windows was able to take over emm but i was not. sucks to be the one left out.