A device driver ties an input/output hardware device to the computer's operating system. To develop a driver, you have to know about both ends of that link:
Hardware specifications and manuals can provide you with the first kind of information; this documentation can help only with the second--that is, with information specific to the Be operating system. On the next page, you'll see a list of recommended documentation for the DMA controller, the PCI bus, and other hardware found inside the BeBox. This book is concerned solely with how a driver must be structured to work with Be system software.
On the BeBox, device drivers run as dynamically loaded add-on modules --as extensions of a host component of the operating system. The Application Server, the part of the operating system that's responsible for all graphics operations, is the host for graphics card drivers. The Print Server hosts drivers for printers. The kernel acts as the host for all other drivers. The kernel and the two servers load drivers on demand, and can unload them when they're no longer needed.
Because drivers are linked to their hosts and run in the host's address space, they must play by the host's rules. The kernel and servers impose three different kinds of restrictions on loadable drivers:
Although the kernel, the Application Server, and the Print Server all impose these three kinds of restrictions on their loadable drivers, they each impose a different set of restrictions. The kernel's rules are not the Application Server's rules, and the Application Server's are not the same as the Print Server's.
To learn the rules that apply to the type of driver you intend to develop, begin with the section listed in the following chart:
To develop: | Go to: |
---|---|
A driver for a graphics card | "Developing a Driver for a Graphics Card" |
A driver for a printer | < Wait until the next release, or contact Be developer support. The interface for printer drivers is under development and not yet documented. > |
All other drivers | "Developing a Kernel-Loadable Driver" |
For information on the PCI bus:
PCI Local Bus Specification, revision 2.1, June 1, 1995, PCI Special Interest Group, PO Box 14070, Portland OR 97214, (800) 433-5177 or (503) 797-4207
For information on the ISA bus, ISA 8259 interrupt controller, and ISA-standard 8237 DMA controller:
82378 System I/O (SIO), August 1994, order number 290473-004, Intel Corporation, 2200 Mission College Boulevard, PO Box 58119, Santa Clara, CA 95052
For information on the SCSI common access method (CAM):
Draft Proposed American National Standard SCSI-2 Common Access Method Transport and SCSI Interface Module, ASC X3T-10, revision 12, December 14, 1994, American National Standards Institute, 11 West 42nd Street, New York, NY 10036
The Be Book, HTML Edition, for Developer Release 8 of the Be Operating System.
Copyright © 1996 Be, Inc. All rights reserved.
Be, the Be logo, BeBox, BeOS, BeWare, and GeekPort are trademarks of Be, Inc.
Last modified September 6, 1996.