Linux users are often at the mercy of hardware vendors when it comes to device drivers. The open source community often needs to turn to reverse engineering to churn out drivers from proprietary ones. As long as the majority of hardware is made for Windows and OS X machines, Linux users will need to wait until the community figures out the nuts and the bolts of a piece of hardware before a Linux driver can be written.
Take Nouveau for example. The open source project started in 2006 with the aim of building high quality drivers for Nvidia graphics cards. Although Nvidia provided a Linux driver several years ago, it was a basic driver with no 3D support. The Nouveau project gained momentum and a year later, its driver soon outperformed Nvidia’s in 2D performance.
While some Linux drivers can be as good as proprietary ones from hardware vendors, others only allow basic functionality with sometimes abysmal performance. My interest in Linux was rekindled recently when I installed Ubuntu 9.10 on my three-year-old Macbook. The basic hardware like the keyboard and graphics worked right out of the box after the installation, with the exception of the iSight webcam which only worked after I installed a software that reverse engineered the right driver out of Apple’s proprietary iSight driver.
Driven by commercial interest through a stranglehold over the unique features of its hardware, it is not in Apple’s interest or any hardware vendor to release open source drivers. A recent feature in Linux Magazine on the Nouveau project pointed out that Nvidia “still gains far too much advantage by keeping their driver closed. They get support for brand new models, extra performance, better power management, extra features like VDPAU, and certain technology components can remain a company secret”.
Meanwhile, Linux users have to continue tinkering with their boxes to make things work, but with the support of the community through hundreds of thousands of forums and interest groups on almost every Linux distro, there’s bound to be a workaround out there. But hey, it’s also what makes computing fun isn’t it?