Appendix A - Sources Of Information
The information that is needed to develop the driver is in most cases not fully available from the manufacturer. There are however a lot of alternative sources of information available.
Possible sources are:
- The manufacturer.
- Linux (or freeBSD).
- The internet.
- Testing the card to get more specifications.
- Last but not least, reverse engineering.
In this Supplement we dig some more in these possible sources.
3 - Kernel Driver
The part of the graphics driver that exists in the kernel space serves one purpose, to give the accelerant access to the video card. During video driver startup, the kernel driver 'transfers' as much resources as possible to the accelerant in order to allow the accelerant direct access to the video card, without taxing the kernel any further. Resources and information that can not be transferred are instead accessed through the API of the kernel driver component in simple functions.
2 - BeOS API Classes For Video Card Drivers
For normal use in BeOS the BScreen class from the Interface Kit is of great importance, because it is the main class that will control the driver.
For special application categories such as games or multimedia, there are two classes from the Game Kit that are important; BWindowScreen and BDirectWindow. These special classes are used to enable fast direct access to the graphics card memory (the framebuffer).
1 - Introduction
The are a lot of programmers in the world but almost none of them know how to write a driver. Drivers are required for any operating system, in order to talk to the hardware. The lack of knowledgeable driver programmers is a serious problem, and one that I hope to rectify with this document.
This document offers practical support on this issue, and is written for people who are interested in knowing basic information about the makeup of a driver and how to write it. The basics of writing a video card driver will be explained here, along with directions to follow, using the Be Operating System (BeOS henceforth) as our working environment.
Lessons by DarkWyrm

ISBN: 978-0-557-53969-7 (lulu.com)In January of 2010, I started publishing lessons on learning to program for
Haiku, aimed at people who want to be able to write simple
programs to get stuff done, but never had anyone around teach them. Years ago,
I started teaching myself and am an active developer. It's my turn to give back.
The basic installation of Haiku contains several standard system network services including an FTP, Telnet, and SSH server.
Setting your user password
A good first step is to set the password for your user account (default name is 'user'), in order to secure your system before opening it to the world.
~> passwd
new password:
repeat new password:
To access your Haiku system remotely, you will need to know its network address.
Haiku's default hostname is shredder. If shredder doesn't resolve, you can simply launch the
Network preference applet to find your system's network address.
You can change the hostname by editing /system/settings/network/hostname.
ftpd - FTP server daemon
Haiku can easily be made to listen for incoming FTP connections to serve its files.
DISCLAIMER: ftpd does not support SFTP or FTPS so network traffic is unencrypted.
The Haiku project has been accepted to participate in Google Summer of Code&trade 2010! Qualifying students can apply for a Haiku project (see the list of suggested projects below) between March 29th and April 9th, 2010. For details about how to apply, please check out Students: How to Apply for a Haiku Idea.
According to other mentor organizations, the most successful Google Summer of Code projects are the ones proposed by the students themselves. The following list represents our ideas and the current needs of our project. However, suggesting your own idea is encouraged!
This year, 5 out of 7 students completed their projects
 | Haiku single sheet flier (2010 version)- Mid-resolution PDF (adequate for on-demand printing): US Letter | A4
- Original files in InDesign format: US Letter
Designed by Jorge G. Mare. Released under a Creative Commons Attribution, Noncommercial, Share Alike license. |
Additionally, Haiku's Haiku Vector Icon Format (HVIF) icons are available in Haiku's source repository, along with miscellaneous artwork files.
Accessing BFS outside of Haiku
What is FUSE? FUSE is an acronym for "Filesystem in USErspace" and in essence
allows an operating system to communicate with a file system through a
userland progam. By providing this functionality outside of kernel space,
adding support for a new filesystem is a simple matter of installing the
respective FUSE module. As a comparison, the typical paradigm involves
altering the operating system's kernel to support the filesystem.
For more information, visit the
FUSE project page.
The initial implementation of a BFS FUSE module was added in
hrev31409