Quote:
Originally Posted by indienick
I have just one, simple question: FreeBSD's online documentation has a few sections on programming kernel modules (syn. drivers), but would that knowledge carry over to other BSDs (namely OpenBSD)? Is the BSD kernel a standardized thing, across various BSDs?
|
The BSD projects may share some kernel level API's, but they've had a long time to diverge from each other.. no real effort was made to keep things compatible with each other.
FreeBSD for example has a totally different SCSI layer then the other BSD's.. They may still share some common code, it's becoming less easy to port drivers between them.. definitely not plug and play.
NetBSD and OpenBSD have a kernel module framework called
lkm(4), it is supported by both.. but it simply offers a way for modules to be loaded, such modules are free to use kernel functions/symbols which again may not be available or compatible between the two systems.
Also, while OpenBSD does still support
lkm(4).. it is not an active utilizer of it.. as jggimi said, the kernel is monolithic and all supported drivers are compiled into the default kernel binaries.
FreeBSD has deprecated
lkm(4) in favour of their own framework.. they call it
kld(4).
@bsdnewbie999, That kind of question could have been answered easily using a search engine.. was it really necessary to waste our time?