[openbeos] Re: Add-ons/Module problems/ideas??
- From: "Daniel Reinhold" <danielr@xxxxxxxxxxxxx>
- To: openbeos@xxxxxxxxxxxxx
- Date: Wed, 31 Jul 2002 13:37:58 CDT
>This brings up a simple question I was curious about (being a
>non-driver programmer). What really is the difference between modules
>and drivers? I know that modules are there to provide common
>functionality to many drivers, but is that it? Seems like there's
>something else I'm missing, otherwise why doesn't the kernel treat
>modules and drivers as the same thing, and let them decide whether
>they publish devices or export APIs?
>
>Rudyatek
Hmm.. good question. Here's my take on it:
The driver interface is a long standing practice from the Unix
community. Long ago, it was decided that treating hardware devices as
files simplified the programming interface. Rather than treating
keyboards, mice, hard drives, etc. each as separate unique cases, the
Unix IO model just treats them all as files that you can use open(),
read(), write(), close(), and ioctl() on. The files are published in a
"device" directory which is usually /dev.
Extending the kernel is a more recent idea. Allowing the kernel to
invoke other kernel level code at run time makes the kernel more
modular and easily enhanced by the work of others. It also reduces the
size of the kernel by not requiring everything to be statically linked
in with the kernel itself.
There is no requirement that drivers be dynamically loaded. Until
recently, most drivers were build into the kernel. However, the trend
now is definitely to let the drivers be loaded on demand at run time.
These kind of drivers, therefore, have to be written as some kind of
kernel extension.
Modules are the BeOS specific way of extending the kernel. With a
module, you can write kernel level code that can be loaded and run at
anytime. It will behave virtually no different than if the code had
been part of the kernel proper. Most BeOS drivers are written as
modules to allow the system to be more flexible -- only enough drivers
needed to boot are statically linked in with the kernel. This makes the
BeOS very flexible -- you can change hardware drivers as you go w/o
needing to reboot.
Since the driver interface (/dev) is so well known to the programming
community, the BeOS supports this interface too. Therefore, modules
that wished to be accessed and programmed like a device can publish
themselves in the /dev filesystem. It is not so much a requirement as a
standard practice.
But not all modules have to be drivers. Some can simply export common
code -- essentially a kernel level library.
Ok, that's my take. Anyone care to add to this or disagree?
- Follow-Ups:
- [openbeos] Re: Add-ons/Module problems/ideas??
- From: Rudy Gingles
- [openbeos] Re: Add-ons/Module problems/ideas??
- From: Fred K Ollinger
Other related posts:
- » [openbeos] Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- » [openbeos] Re: Add-ons/Module problems/ideas??
- [openbeos] Re: Add-ons/Module problems/ideas??
- From: Rudy Gingles
- [openbeos] Re: Add-ons/Module problems/ideas??
- From: Fred K Ollinger