A few days ago when I shared the biggest problems with Linux
as judged by the Phoronix community
, at least a few people took issue with the fact that some of the ugly issues with Linux were pointed out.
There's some that think this was just about attacking Linux or that I'm somehow anti-open-source and pro-Apple pro-Microsoft for showing off the flaws of Linux. I'm just a realist and acknowledge that Linux isn't perfect. Linux's problems and other shortcomings can't be addressed unless they are first acknowledged. It's tough love. And example as pointed out in the original article, "if you were asked by a company what are the biggest problems facing Linux or where can a given company invest to fundamentally improve Linux and make it more attractive to the masses, what would your answer(s) be?...I was asked that question recently by a major company near Redmond that's looking to heavily invest in Linux."
One of the main Linux problems that was brought up with came down to "many Linux hardware driver issues." This was expressed by many Phoronix readers in the forums and I absolutely agree with this being an important issue. However, some think this is totally incorrect (or "totally wrong") and that Linux has better hardware support than Windows.
For Linux on consumer grade hardware at least, the Linux driver support (sadly) isn't superior to Windows. Linux may have some fundamental hardware support advantages like nice "out of the box" support where the drivers are bundled with the kernel so you aren't forced to download packages from a vendor's web-site and how a Linux installation can be migrated to another system without needing to blow out the installation, but when it comes down to the quality and completeness of the drivers, Linux generally loses. Linux also supports more obscure hardware and peculiar architectures, but again, it's not hardware that's under everyone's desk, on their lap, or in their pocket.
Among the most pressing Linux driver related issues that are still outstanding include -- and illustrate sore spots compared to Mac OS X and Windows -- are listed below. Since this is what Phoronix covers the most, first up are some of the graphics driver problems.
- The open-source graphics drivers are almost always slower than the proprietary graphics drivers
. There's only a few exceptions when it comes to select older graphics processors and some low-end GPUs, but generally speaking, the proprietary drivers are faster. At least with NVIDIA and AMD they have these specialized proprietary drivers under Linux, but the Intel open-source Linux driver is the only option there and they have the most widespread integrated graphics while lose poorly to their Windows driver
- These graphics drivers aren't always feature-complete and lack fundamental features like timely support for the latest OpenGL specifications, NVIDIA Optimus, NVIDIA SLI, AMD CrossFire, advanced anti-aliasing modes, etc. Even the most basic items like PCI Express 2.0
and HDMI audio aren't enabled by default in some drivers.
- Configuring the drivers isn't as easy for end-users on Linux as it is with Windows. With Windows most users can fire up a graphical user-interface and tune their hardware's parameters, etc. Under Linux, users generally have to go through and edit poorly-documented system configuration files, after working out any distribution differences, making sure the changes are relevant to their hardware, etc. Afterwards, it's a matter of seeing whether the change to one of these text-based configuration files worked or left your system in a borked state.
- Upgrading the graphics drivers is also a tough task for a novice Linux desktop user compared to just clicking a binary under Windows. Upgrading the graphics stack when it comes to the mainline open-source drivers requires upgrading the Linux kernel, its DRM library, Mesa, and the DDX drivers, plus any other prerequisites that are introduced by the updated user-space components. Pulling in a full new kernel can be problematic or not even available for your non-rolling-release distribution without resorting to third-party packages, etc.
- Having drivers be open-source and/or providing documentation doesn't mean developers will magically appear and begin hacking on the drivers. AMD's rate of change even with their official open-source support is sluggish at times, there's still a lot of VIA hardware out there and older open-source code with some documentation but very little progress, and there's many other older drivers out there that haven't been updated to take advantage of new infrastructure / interfaces, etc.
- The Linux support doesn't always come at the same-time or in a same state as the Windows support, just look back last year at the huge Intel Sandy Bridge debacle when the new processors were first appearing.
- Some features just outright aren't being implemented in the (open-source) Linux drivers due to patent fears, or the features are concealed and not exposed by default, e.g. S3TC texture compression and floating-point textures.
When it comes to some of the other Linux hardware issues:
- Major Linux distributions generally are still burning through more power than their proprietary competition. Burning through excess power when running popular Linux distributions compared to a stock Windows installation is still a problem, even after the numerous power regressions corrected last year, ACPI improvements, and other work. With any of my laptops I can't even think of one of them where I get better battery life under Linux than with Windows or Mac OS X.
- Some sound cards are still slow to be supported
- Linux printer support can still be a bit pesky.
- The peripheral coverage isn't even great for some of the gaming products, etc. Many of the gaming keyboards and specialty gaming mice don't have the necessary support for controlling all of the buttons and features under Linux. There's also various other peripherals and external devices that are only catered to Microsoft or Windows use.
What else is missing from the list?
Fortunately, Linux hardware support has matured quite a lot in the past half-decade. Some of the older sore spots, like support for the latest WiFi/WLAN chipsets and web-cameras, is mostly a memory of the past. The quality of many of the Linux kernel drivers have improved a lot in terms of reliability and completeness. There's also infrastructure work continuing to develop
to better allow for supporting modern hardware features under Linux. Linux hardware support is moving in the right direction, but there's still generally a lot for Linux desktop end-users to desire on consumer hardware.