Linked by Thom Holwerda on Fri 22nd Mar 2013 14:20 UTC
Ubuntu, Kubuntu, Xubuntu This could potentially be quite big for Ubuntu and Linux in general. Canonical and the Chinese government have announced a collaboration to build a version of Ubuntu specifically for the Chinese market, which will become the reference architecture for standard operating systems in the country.
Thread beginning with comment 556338
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: Re:
by moondevil on Sat 23rd Mar 2013 06:31 UTC in reply to "RE[2]: Re:"
moondevil
Member since:
2005-07-08

And just to make the ABI thing clear, the Linux kernel DOES NOT BREAKS THE PROGRAM ABI/API. It has been solid for over two decades. You can trow in a binary game from about the year 2000 like Unreal Tournament and it will happily run.


This is not true.

If you would be talking about commercial UNIX I would believe you, given how they keep backwards compatibility, but not when talking about Linux distributions.

Unless the application is statically linked, there is a high probability that the required dynamic libraries are no longer the same.

Additionally, around 2000 there were was the egcs/gcc war, so there is a high probability that an application around those days was compiled with egcs instead of gcc, which increases the probability of not executing nowadays.

And of course we also have the issue that not all distributions respect the LSB, specially around 2000, so the probability of an application not finding certain paths is high.

This is all motivated with the excuse that you can always compile from source and commercial closed software is not welcome anyway.

Reply Parent Score: 2

RE[4]: Re:
by WereCatf on Sat 23rd Mar 2013 08:31 in reply to "RE[3]: Re:"
WereCatf Member since:
2006-02-15

Unless the application is statically linked, there is a high probability that the required dynamic libraries are no longer the same.


You're confusing things. The person you responded to was talking about the kernel API/ABI whereas you are talking about userland APIs/ABIs. That is to say that you are both correct: old applications often refuse to run because the userland has become incompatible, but alas, the kernel ABI is still fully-compatible and that isn't the thing stopping the app from running.

Do say if you need a more in-depth explanation.

Reply Parent Score: 5

RE[5]: Re:
by moondevil on Sat 23rd Mar 2013 10:28 in reply to "RE[4]: Re:"
moondevil Member since:
2005-07-08

Do say if you need a more in-depth explanation.


Thanks, but I was already coding for UNIX commercial systems before Linus came up with Linux and I use GNU/Linux since the 1.0.9 kernel.

As for my explanation, yeah maybe I should have explained it better, because both kernel and userland ABIs are required for applications to run. Unless you code something using direct kernel calls only, without any runtime library.

So what applications there are, compiled around 2000, which make use of kernel only stable APIs that run in actual distributions without recompilation?

Reply Parent Score: 3

RE[4]: Re:
by AdrianoML on Sun 24th Mar 2013 02:14 in reply to "RE[3]: Re:"
AdrianoML Member since:
2010-08-13

You are somewhat right, applications that are distributed by the distribution and have source code available are packaged in a way that can easily break, not with the kernel program ABI, but with all the supporting libraries themselves. Though, in reality, it does not break because the distribution always updates any application that is about to break by changes made by newer libraries. In return we end up with binaries that are somewhat always compiled with the latest compiler improvements and a very minimal overlap of libraries.

This does not work for commercial applications, so, good packaging by the vendor part is done by statically linking as many libraries as possible, and only relying on system libraries if they have good backwards compatibility. This is somewhat similar to what windows applications tend to do. Admittedly, not all applications do this right, so applications and games might break if they are not updated by the vendor.

Luckly Loki Games had the decency of crating the freaking SDL library that interfaces with most things a game needs, and with a very solid abi/api that is still in use today by new games. The result is that you can run some of their really old games with no trouble in new systems. You still get stuff like sound missing due to no OSS support anymore, but you can fix it by installing a OSS backend for pulseaudio.

There is also the fact that binary applications do not tap into the distribution package manager, so they can't check if the necessary system libraries are all installed. This ends up as a unfortunate burden to the user...

Edited 2013-03-24 02:17 UTC

Reply Parent Score: 3