Linked by Amjith Ramanujam on Tue 22nd Jul 2008 15:55 UTC, submitted by LinucksGirl
Linux Linux loadable kernel modules are on of the most important innovations in the Linux kernel. They provide a kernel that is both scalable and dynamic. Discover loadable kernels, the ideas behind them, and learn how these independent objects dynamically become part of the Linux kernel.
E-mail Print r 10   9 Comment(s)
Order by: Score:
"Innovations"?
by danieldk on Tue 22nd Jul 2008 16:15 UTC
danieldk
Member since:
2005-11-18

Didn't System V R4.2 introduce loadable kernel modules two or three years before Linux (~1992)?

RE: "Innovations"?
by mmu_man on Tue 22nd Jul 2008 16:53 UTC in reply to ""Innovations"?"
mmu_man Member since:
2006-09-30

Well even AmigaOS could load kernel modules of some sort ;)
BeOS, AFAICR, had kernel modules as well, but in a much cleaner fashion than what linux does.

> how these independent objects dynamically become part of the Linux kernel.
And participate in the global mess...

Linux finally got hierarchically organized modules (BeOS had those 10 years ago), but they still explicitely link to each other making it a pain to have them loaded in correct order, and insmod is still required, even if it's hidden by udev.
In BeOS (and Haiku) modules only link to the kernel, and access other modules via a clean API where they ask which module the need and get given a list of functions then can call.
This makes the whole much cleaner and stable than the driver framework in linux, or rather the absence thereof.

RE[2]: "Innovations"?
by Vanders on Tue 22nd Jul 2008 19:00 UTC in reply to "RE: "Innovations"?"
Vanders Member since:
2005-07-06

These days Linux is actually unusual in not having some sort of proper driver API and stable ABI. They have their reasons, even if you don't agree with them.

RE[3]: "Innovations"?
by mmu_man on Tue 22nd Jul 2008 21:00 UTC in reply to "RE[2]: "Innovations"?"
mmu_man Member since:
2006-09-30

Yes, the reason they give is that all drivers are in the source tree anyway, and it allows for faster development.
The first one is wrong, there are things like OSSv4 which (tries to) support Linux by requiring an ugly glue full of #ifdefs on the kernel version. Of course some integrists just discard it saying all driver must be in the source tree or just not be at all. That's a bit pathetic but eh.
As for faster dev, well, maybe, but sometimes it's better to take the time to see where one is going before running to it.

RE: "Innovations"?
by asgard on Tue 22nd Jul 2008 17:06 UTC in reply to ""Innovations"?"
asgard Member since:
2008-06-07

I think they mean innovations in the sense restricted to Linux only, not as innovations in general.

RE: "Innovations"?
by rob_mx on Wed 23rd Jul 2008 14:42 UTC in reply to ""Innovations"?"
rob_mx Member since:
2005-08-04

From the article linked:


Linux is not the only monolithic kernel that can be dynamically altered (and it wasn't the first). You'll find loadable module support in Berkeley Software Distribution (BSD) variants, Sun Solaris, in older kernels such as OpenVMS, and other popular operating systems such as Microsoft® Windows® and Apple Mac OS X.


So yes, you're right, it wasn't the first one. ;)

v Linux modules = Windows services
by casuto on Wed 23rd Jul 2008 07:37 UTC
kaiwai Member since:
2005-07-06

Linux modules = Windows services


They're nothing of the sort. Linux loadable modules are nothing more than drivers. The equivalence of Windows Services would be daemons.

Very Useful
by computrius on Wed 23rd Jul 2008 15:54 UTC
computrius
Member since:
2006-03-26

Disagreements aside about how innovative Linux is, this is a very nice, and exceptionally clear article on how to get started with kernel modules.