The Challenge of Hardware Support
A very common problem
Every operating system project meant to be run on generic hardware faces this issue, which is to support the widest range possible of hardware configurations. Haiku makes no exception to the rule, and being a small(-ish), volunteer run project, the challenge may seem even more daunting. Heck, even BeOS (Haiku’s inspiration) faced the same issue back in the day with its relatively short hardware compatibility list. Linux and, to a lesser extent, the various BSDs do seem to have an easier time both because of the larger developer community and some corporate backing.
Isn’t it sad, all this work being done separately, without any practicable means to share it? That’s what we thought. Haiku came up with several ways to quickly gain the capacity to use hardware such as network adapters, printers and several others.
Network card adapter drivers in Haiku comes in two main kinds : the native ones, and those adopted almost as-is from FreeBSD. This possibility comes from a compatibility layer, that glues the code from the driver to the native driver API. It brought many good quality, mature drivers to the driver ecosystem in a tiny fraction of the time it would have taken otherwise.
It’s actually that same layer that helped adding wifi support more recently.
OpenSound System (OSS)
The porting of OpenSound System (OSS) helped filling a gap in the sound card drivers arena. Even though great advances are made in the native drivers (especially the HDA driver, and others), it remains very useful.
By making the whole collection of drivers from the Gutenprint project available, it’s over 1300 models of printers that are now usable, and that number is growing release after release.
Gallium 3D project
Still a work in progress, this is a project related to the well known Mesa 3D. It aims to ease the porting of GPU drivers to different operating systems, mostly by separating the specifics of each drivers from the common parts. So, in other words, you would have a common part to each drivers, that would be like “glue code”, implemented in the operating system. It would manage memory allocations, direct access to the hardware, and such; exposing those functions to the drivers. The drivers themselves would basically be portable, as is.
By implementing the Gallium infrastructure, an operating system would gain access to drivers such as Nouveau (open-source NVIDIA driver) or the open source Radeon driver.
It seems that many projects would also benefits from such shared efforts, and some followed a similar path to Haiku’s. Let’s simply hope similar efforts can be done; the time and efforts of those volunteers is better spent innovating and experimenting, than reinventing the wheel over and over again.
Like us on Facebook
This week Top Posts
- Top Things To Do After Installing Ubuntu 13.10 'Saucy Salamander' : Ubuntu 13.10 Saucy Salamander will be released on coming October 17th with many new salient featur...0 comments |
- Configure Your Browser To Use Tor On Ubuntu/Debian/Linux Mint : Tor, The Onion Router, is a network of Virtual Tunnels that allows users to communicate securely and...1 comment |
- Setup A Full Featured ITIL Management System Using Integria IMS On CentOS 6 : Integria IMS is a fully featured ITIL management system, featuring a ticketing system, inventory/C...2 comments |
- How To Upgrade From Ubuntu 13.04 Raring To Ubuntu 13.10 Saucy Salamander : Ubuntu 13.10 Saucy will be released on October 17th. Hope it will come with lot of improvements and ...0 comments |
- OpenLDAP Installation and Configuration in Ubuntu 12.10/13.04/13.10 And Debian 6/7 : OpenLDAP is a free open source Light Weight Directory Access protocol developed by the OpenLDAP proj...0 comments |
- Install lamp with 1 command in Ubuntu 12.10, 13.04 Raring Ringtail & LinuxMint13 : Updated: 10/09/2012 :LAMP (Linux, Apache, MySQL and PHP) is an open source Web development platform ...0 comments |
- OpenLDAP Installation and Configuration in Ubuntu 12.10/13.04/13.10 And Debian 6/7
- Configure Your Browser To Use Tor On Ubuntu/Debian/Linux Mint
- Setup A Full Featured ITIL Management System Using Integria IMS On CentOS 6
- Install LibreOffice 4.1.3 in Elementary OS ‘Luna’
- How To Install Simple Scan in Crunchbang ‘Waldorf’
- Selene Media Encoder: Convert Audio, Video Files To Most Popular Formats
- Linux Kernel 3.12.2 Is Available For Download! Install / Upgrade Instructions
- CentOS 6.5 Has Been Officially Released!
- Format Junkie: Convert Media Files To All Popular Formats
- Setup Squid Proxy Server On openSUSE 13.1
This work by unixmen.com is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Copyright © 2008-2013 Unixmen.com .