Why Linux/GNU might never succeed on a large scaleI've always wanted to talk about the Linux kernel and how well it supports various hardware devices and recently I got a perfect opportunity when I was asked the following question: "Why can't computer manufacturers work with Linux, FreeBSD and other open source developers to make their hardware work properly first time? I think we all know the answer: Microsoft has a very tight grip over the computer manufacturers and they produce everything for Windows only and dare not offer alternatives in case Microsoft increases the price of Windows or withholds technical information". And here's my answer. Microsoft doesn't actually force anyone to only support Windows and nothing else. If they did that that would be grounds for a massive lawsuit. In reality, independent hardware vendors might be reluctant to support the Linux kernel due to the following reasons:
Supporting Windows on the other hand is easier, cheaper and safer. The open source development model works for standard devices like motherboards (sans ACPI and software suspend), PCI network interface cards, pointing devices, keyboards, USB buses, etc. It's often impossible to apply to GPUs (Radeon/Intel open source drivers don't support many hardware features of respective GPUs), proprietary RAID/storage controllers, Wi-Fi adapters (which too often contain proprietary algorithms to boost the radio signal), cameras (proprietary algorithms to improve image quality), hardware sensors (proprietary algorithms to poll hardware and extract precise data), various devices which implement encryption, protection and central management and many other classes of devices (again due to laws and/or intellectual property). This problem could have been solved if the Linux kernel had provided stable APIs/ABIs for at least five to seven years. Alas, Linus Torvalds et al. will never change their mind. You might have heard about the most successful open source company, Redhat. These guys distribute their enterprise distro with an old fixed kernel version they actually maintain, support and provide stable APIs/ABIs for at least 10 years. Enterprise loves RHEL. We still might be happy that Linux supports so much hardware, yet we need remember that this support might be either incomplete, or limited, or buggy or any combination of above unless we're talking about the already mentioned standard devices (say, a 105 keys US keyboard without multimedia keys). You're going to laugh but a lot of keyboards (right, keyboards) aren't properly supported under Linux. This problem can be perfectly seen in the world of Android: most Android devices run the same very old kernel version. The same very old version which Google alone supports and maintains. And Google are thinking of replacing it with their own alternative. To summarize: in a world of "closed source" hardware it's near impossible to have a fully working open source operating system which supports all these devices properly unless you allow proprietary closed source code to exist in your kernel. It's quite possible that in a distant future Linux/GNU or some other open source operating system will run everything perfectly just because hardware vendors will run out of ideas how to differentiate their devices and all devices will have full documentation, spec sheets and support. We can only hope. © 2017 Artem S. Tashkinov. Last revised . The most current version can be found here. All rights reserved. You can reproduce the entire text verbatim, and you must retain the authorship and provide a link to this document. Return to the main page. |