Modular Kernel: Difference between revisions

Jump to navigation Jump to search
no edit summary
[unchecked revision][unchecked revision]
No edit summary
Line 3:
==What is a Modular Kernel==
 
A modular kernel is an attempt to merge the good points of kernel-level drivers and third-party drivers. In a modular kernel, some part of the system core will be located in independantindependent files called _modules_ that can be added to the system at run time. Depending on the content of those modules, the goal can vary such as:
* only loading drivers if a device is actually found
* only load a filesystem if it gets actually requested
Line 9:
* etc.
 
The basic goal remains however the same: keep what is loaded at boot-time minimal while still allowing the kernel to perform more complex functions. The basics of modular kernel are very close to what we find in implementation of _plugins_''plugins'' in applications or _dynamic''dynamic libraries_libraries'' in general.
 
==What does a Modular Kernel look like ?==
Line 19:
: this is a part of the system that will be responsible of preparing a module file so that it can be used as if it was a part of the core itself.
;the kernel symbols table
: This contains additionnaladditional information about the core and loaded modules that the module loader needs in order to _link_''link'' a new module to the existing kernel.
;the dependencies tracking
: As soon as you want to _unload_''unload'' some module, you'll have to know whether you can do it or not. Especially, if a module _X_''X'' has requested symbols from module _Z_''Z'', trying to unload _Z_''Z'' while _X_''X'' is present in the system is likely to cause havoc.
;modules
: Every part of the system you might want (or don't want) to have.
Line 37:
==See Also==
===Threads===
 
*[[Topic:10031|Design of a basic module loader]]
*[[Topic:9921|Calling a function knowing its name]]
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu