Linked by Eugenia Loli on Wed 10th Oct 2001 16:20 UTC
Original OSNews Interviews Today we have a special guest in the series of interviews we conducting here at OSNews. Linus Torvalds, the well known Linux founder, is with us to discuss everything about the kernel, Microsoft, the naming of GNU/Linux and the future. Read on!
Permalink for comment
To read all comments associated with this story, please click here.
Linux "fragmentation"
by Warren on Wed 10th Oct 2001 22:40 UTC

Mr. J, to some extent I agree with your assessment of Linux's fragmentation in distributions. There are several different kinds of fragmentation: 1. Standard directory structure, locations of config files, and config filenames. This is something distributions are trying to standardize on. It also helps if programmers write their programs to not assume file locations, but to find them the way a user would (in the PATH, in other config files, etc.) 2. Versions of C/C++ libraries expected to be included. This can be nearly as bad in OSs such as Windows, between Win95,Win95OSR2,Win98,WinNT 3.51, WinNT 4.0, Win2k, WinME, WinXP, and other versions. Windows programs solve the problem by "upgrading" you whenever you install a product that needs a newer version. It's not considered polite to do that without asking in the Linux world (though it might be nice to have it as an option). The second problem here is one with C++ -- the binary API has changed from version to version, as they come into compliance with the C++ standard. Hopefully this will be stable sometime soon. 3. Kernel versions. Usually this isn't an issue unless you need a kernel feature that isn't in your kernel, such as driver support. However, it does mean you can't use drivers from a different distribution's kernel. Partly this is due to arbitrarily version numbers given to the kernels by the distributors (such as 2.2.18mdk instead of just 2.2.18), and the Kernel protecting itself from different versions of drivers which could cause havoc. The only real (at least partial) solution to this would be to have distributors agree on standard features to include in kernels, then give all their equivalent kernels identical version numbers. However, then you would limit everyone to the least common denominator. For example, Red Hat kernels might use large memory support, but I might need a kernel compiled for an extremely small address range. 4. Proprietary extensions. VMWare, Win4lin, Open Sound Source (commercial), and Nvidia are all commercial, proprietary vendors who support Linux, and whose software either compiles into the kernel or uses kernel modules. The problem comes when they need different kernels and you want to use them all at once (I do). To some extent this can be solved by vendors building a generic open source module which can either be included in the standard kernel or at least be recompiled on the fly when you install the software. OSS and VMWare both use the latter technique. To the extent that Linux could generalize the interfaces they use, so the extensions no longer have to be added by the vendors, this problem can be solved. However, it requires vendors agreeing on a standard way to do something and proving that it is of general use, not just a way for them to leverage Linux to make money. ---- I've outlined some of the reasons Linux is fragmented, as well as some of the solutions, and I hope you can see that it isn't all cut and dried. Some of these issues are hard to resolve, and even commercial vendors haven't resolved them satisfactorily. Others will be resolved with time. Still others we may never see fully resolved, but hopefully the incompatibilities can be hidden behind layers the user never needs to penetrate if they don't want to.