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
We need your assistance to stay live
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 |
- Fedora 21 Scheduled For Release In October : For Fedora users, just keep calm and use Fedora 20 for now. Fedora Developers has announced that F...1 comment |
- 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 |
- Install LAMP Server (Apache, MySQL or MariaDB, PHP) On Ubuntu 13.10 : Updated January 12, 2014 LAMP is a combination of operating system and open-source software stack. ...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 |
- How to Install uTorrent Client on Ubuntu/Debian/Linux Mint : uTorrent is a lightweight and efficient BitTorrent client for Linux, Windows OS and Mac OS. The inst...0 comments |
- Fedora 21 Scheduled For Release In October
- Install Uget Download Manager In Ubuntu, Fedora, Debian
- Download Elementary OS ‘Luna’ Official Wallpapers
- Install Power Commands 0.1.5 On Ubuntu 14.04/13.10/12.10/12.04
- 5 Android Apps that’s Going to Make Running Your Business Less Stressful
- Puppet agent Install Using Script
- Install Corosync and Pacemaker On CentOS 6.5
- Install Fail2Ban On Ubuntu Server 13.04/13.10
- How To Install Google Chrome in Fedora 20, 19, 18
- How to surf using Tor Browser Bundle
This work by unixmen.com is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Copyright © 2008-2013 Unixmen.com .