We all know that Linux is a cool operating system, open, sometimes free (yea right!) and is rapidly growing acceptance. With the 2.6 kernel, the ability Linux to support workload with higher requirements (performance, reliability, security, etc) is now a reality. There are several Linux Distributors "shipping" the 2.6 kernel such as RedHat, Novell SUSE, Debian, etc. One might think that these distributions are all the same but upon closer inspection we can see the kernel is made up of architectual specific code to exploit certain server families. The API of the OS is the same so the ability for applications to run on the various architectures is preserved (as long as you compile the application to the proper instruction set and have the proper run time library support and device drivers). So is it all the same then? I think the answer is a resounding NO. It seems these architectual specific nuances can lead to very dramatic differences in application performance and reliability and sometimes even the ability to run at all.
When the Linux Distributors create a distribution, the major ones today tend to implement a common build process. This is good and if I were them I would do the same. However this may lead to differences and non-optimal execution of programs if you wish to run the application on different architectures. Consider one point only: I/O buffer sizes. If there were a popular architecture that shared memory and I/O over a single bus, I would choose a buffer size that would allow the minimal I/O "interference" with memory access. This usually would mean a relatively small size. If I were then to compile the Linux Kernel for a differnet architecture using the same "defaults", but where the "other" architecture had a separate I/O "bus" and memory "bus", it would not be optimized to the architecture. At least with either a recompile of the kernel or a change to the run time environment, I could move the "standard distribution" to a higher performing version by simply changing the I/O buffer size default. Upon inspection there are several instances where the default build parameters for one architecture will not be optimal on another architecture.
This is just one of several examples of where Linux is Linux is Linux, but it is not the same. In future discussions I will go into more details on these and the relative impact of them....and if you want to get a little more performane out of your Linux Kernel, take a look and see how many print daemons exist for printers you do you run....if you turn them off, you will get a little more performance. I wonder why all these print daemons are really in there anyway?
Linux is Linux is Linux is Linux...but is it really all the same?? - Ron Gordon
lopblogger 270000WWDS 2 Comments 647 Visits