A common definition of trifecta is "a slang term used to describe any successful phenomenon that comes in threes." The Novell Partner Linux Driver Process (PLDP) is a prime example of such a three-pronged advantage. Whether you are an end user updating to the most recent version of the SUSE Linux kernel, a hardware or software vendor developing device drivers for SUSE Linux, or an active member of the open source community, the benefits are significant.
> Before the Partner Linux Driver Process
Each piece of hardware and some software applications need a driver that interfaces with the operating system kernel to enable the device or application to function correctly (e.g., printer, network card, video card, virus scanner). Sometimes modifications to the kernel—whether associated with a scheduled update or addressing a security need—can break drivers pre-compiled for earlier kernel versions (this is the case with any external drivers or drivers not included as part of the kernel itself). This incompatibility can cause significant system down time and potentially corrupt data.
"Working with the opensource community and our hardware and software partners, and welcoming the participation of other Linux distributors, we are allowing customers to efficiently obtain needed drivers independent of our SUSE Linux Enterprise release cycles. We will continue to support third parties delivering open source drivers to kernel.org for release directly with our Linux products, but this new process fills the driver gap between releases that can be critical to customer and partner success."
When a problem occurs, the driver must be recompiled against the new kernel version which could require changes to the driver source code. This type of recompilation and adjustment to the driver's source code requires skilled system administrators the likes of which aren't always on staff and available (or affordable).
Before Novell introduced the Partner Linux Driver Process, updating to the most recent version of the kernel often required hardware and software vendors to recompile their drivers inhouse. If these recompiled drivers were not updated at the same time as the kernel, all previously compiled drivers would break making them completely unusable (no more 3-D desktop effects or multi-path IO).
Although Novell provides updated drivers with product service packs, this is not really an ideal solution since service packs often release months after new hardware hits the market. To take the burden off system administrators—allowing them time with their children (successfully avoiding another case of "...the cat's in the cradle and the silver spoon..."), the Partner Linux Driver Process provides a clean integrated infrastructure for partners, enabling them to provide drivers for new hardware—independent of SUSE Linux release cycles or corresponding to kernel updates.
Before the Partner Linux Driver Process, only Novell could provide supported drivers for SUSE Linux Enterprise based products and customers who needed updated drivers not supported by Novell were on their own.
> Trifecta: Part One—
The Independent Software and Hardware Vendors
Even with the manpower to recompile a driver after a kernel update, software and hardware vendors are typically slow out of the gate as a result of the kABI (Kernel Application Binary Interface) security embargo (a period of time where the kABI is frozen to allow for proper testing). Once the embargo is lifted and changes to the kABI are released, only then can vendors begin the recompilation process. This creates quite a hassle and lengthy delay for vendors dedicated to offering compatible hardware seamlessly with updated kernel versions.
1. kABI Notification Service
Realizing this disconnect and the potential for disrupted business, Novell offers, as part of the PLDP, to track the kABI (the set of in-kernel symbols used by drivers and other kernel modules) and inform hardware vendors when, and in what way, they need to update a driver to address an upcoming change.
The mainstream Linux kernel is a dynamic entity— experiencing frequent changes to the kABI as a result of the open source community's encouragement to innovate on your own terms.
While SUSE Linux engineering teams strive to maintain a stable kABI between service pack releases, security updates and new hardware may occasionally necessitate kABI changes. Not only does this service provide Novell partners with information about how their modules could be affected by upcoming kABI changes, it also allows the SUSE Linux engineering teams to proactively assess how proposed kABI changes might affect partner modules.
2. PLDP Build Service
Depending on a vendor's technology partner level, Novell may offer to take the driver code into a build service so the driver is automatically rebuilt by Novell during the kernel security embargo.
Novell recommends the best place for partners to develop kernel drivers is upstream in the kernel.org source tree, where kernel driver code benefits from thorough review and community involvement.
When a partner provides source code for the PLDP Build Service, Novell Partner Engineering places the code into a partner module build area which is fully integrated with the SUSE Linux automated build system. The partner's modules can then be rebuilt with every new version of the SUSE Linux kernel. Once the new module is completed, Novell Partner Engineering hands it over to the partner for testing and verification. Participation in this Build Service ensures that partners can provide their customers with updated kernel modules at the same time Novell provides a new SUSE Linux kernel.
3. PLDP Hosting Service
With the Partner Linux Driver Process Hosting Service, Novell hosts partner drivers (GPL-licensed only!) on a Novell updated site which integrates with SUSE Linux installation and update utilities. If a vendor chooses, they may opt out of the Hosting Service and provide their own drivers (usually proprietary) on a host site or a physical CD.
"The new process is simply another way for us to help customers run their businesses reliably and cost effectively."
> Trifecta: Part Two—The Customer
Before the PLDP, customers occasionally found themselves locally managing the recompilation of external drivers after each update to the kernel. This happens, for example, when a customer purchases new hardware that does not have driver support in the current Linux kernel. Each time the kernel updates they were forced to go back and scrutinize a patch, modifying it to work with the new kernel.
Additionally, when an unsigned external driver is incorporated, the customer creates what is called a "tainted kernel", jeopardizing their service agreement altogether. When considering this kind of situation, administrators with such driver issues might choose not to reboot after a kernel update or, worse, decided not to install kernel security updates at all to avoid the issue of incompatible drivers.
The second prong of the Trifecta benefits the customer by streamlining the process of updating the SUSE Linux kernel and participating drivers. As an end-user, if you happen to use drivers that are part of the Partner Linux Driver Process, you experience minimal to no time lapse between kernel updates and updated drivers. Additionally, because SUSE Linux is considered progressive in supporting new technologies and hardware, it's dedicated to keeping up with the latest in both hardware and security updates so you know you're getting the best options available from the open source community.
It's worth juxtaposing the Novell PLDP with the Red Hat approach which attempts to avoid all the hassle by maintaining a very stable kABI at all cost. Red Hat believes that by leaving the kABI unchanged, external drivers will work even when the customer has updated to the latest Red Hat kernel version.
PLDP was introduced as a limited solution with SUSE Linux Enterprise 9 SP3. Starting with SUSE Linux Enterprise 10, the PLDP is fully supported.
With this dedication to a super-rigid kABI, however, comes a static kernel moving further away from the ever-changing mainline tree. As a result, Red Hat has a hard time supporting new hardware because it becomes increasingly difficult to back port the functionality without changing the binary interface.
Rather then keep the kernel unchanged, Novell introduced the Partner Linux Driver Process to keep pace with new hardware and be more responsive to the ever-changing needs of the customer.
> Trifecta: Part Three—Open Source Community
As an active member of the open source community, Novell created the PLDP to broaden Linux hardware support and simplify the process of acquiring, installing, and updating device drivers. By simplifying the experience for hardware and software vendors compiling drivers for the Linux kernel AND creating a clean and integrated experience for the end-user, Novell promotes the strength and viability of the open source community.
"Our customers can now update to the latest drivers for our hardware, without the cost and resource related to rebuilding kernel drivers or waiting for kernel patches."
The technology behind the PLDP is all open source and included in the openSUSE.org distribution of SUSE Linux. Novell continues to provide and explain the inner workings of this technology to the industry and other Linux vendors with the intention of furthering the general adoption of Linux.
In the end, no matter your role (vendor, customer or a member of the open source community), the Novell Partner Linux Driver Process provides a strategic, forward-looking and interrelated approach to kernel and driver updates. Novell and its technology partners work together to provide their customers with the infrastructure they rely on to successfully run their businesses within their own open enterprise. With the Partner Linux Driver Process firmly in place, all involved will notice the sky seems a little bluer, the air smells a bit sweeter and, well, their teeth appear even whiter. The trifecta is here and it's here to stay!
Additional Novell Resources can be found at: