Mono Lizzy: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
Created page with "Lizzy prefers a single big kernel like Linux, Windows or BSD. == Pro's & Con's == Pro: * easier to program because it's all in the same memory space Con: * harder to maintain..."
 
Kicking Andy Microbaum out of monolithic kernel territory! Also tightenning it up a bit
Line 1: Line 1:
Lizzy prefers a single big kernel like Linux, Windows or BSD.
Lizzy prefers a single big kernel all compiled at once.


== Pro's & Con's ==
== Pro's & Con's ==
Pro:
Pro:
* easier to program because it's all in the same memory space
* Faster because there's no context switches between drivers
Con:
Con:
* Driver bugs may corrupt data in kernel space and/or cause panics
* harder to maintain because it's kind of spaghetti code.
* Beginners may not realize they need to organize a monolithic kernel just as carefully as a microkernel if not more so
* All the drivers get loaded into memory at once; loading drivers at run-time requires an extra system


== Going further than Lizzy ==
== Going further than Lizzy ==
* Add a module system to your kernel so you can load drivers at run-time
Consider splitting up the kernel.
* Add good IPC and a system to allow userspace programs to access certain hardware, giving you a hybrid kernel
Note that neither are necessarily good ideas. Monolithic or microkernel is a matter of choice, not rungs on the ladder to progress. A module system may seem more obviously good, but it depends how many drivers you have.


== Lizzy's bookshelf ==
== Lizzy's bookshelf ==
Books on traditional Unix, Linux, and BSD kernel design. Unix v6 or xv6 source code, perhaps the source of some BSD.
Probably Windows or Unix APIS/ABI books or texts (for example POSIX).


== Lizzy's opponents position ==
== Lizzy's opponents position ==
Line 18: Line 22:
== People and OSes related to Lizzy ==
== People and OSes related to Lizzy ==
* Linux
* Linux
* Windows
* BSD
* BSD
* Unix v6
* xv6

''Not'' Windows; that's a hybrid.


[[Category:Developer Archetype]]
[[Category:Developer Archetype]]

Revision as of 18:33, 22 June 2020

Lizzy prefers a single big kernel all compiled at once.

Pro's & Con's

Pro:

  • Faster because there's no context switches between drivers

Con:

  • Driver bugs may corrupt data in kernel space and/or cause panics
  • Beginners may not realize they need to organize a monolithic kernel just as carefully as a microkernel if not more so
  • All the drivers get loaded into memory at once; loading drivers at run-time requires an extra system

Going further than Lizzy

  • Add a module system to your kernel so you can load drivers at run-time
  • Add good IPC and a system to allow userspace programs to access certain hardware, giving you a hybrid kernel

Note that neither are necessarily good ideas. Monolithic or microkernel is a matter of choice, not rungs on the ladder to progress. A module system may seem more obviously good, but it depends how many drivers you have.

Lizzy's bookshelf

Books on traditional Unix, Linux, and BSD kernel design. Unix v6 or xv6 source code, perhaps the source of some BSD.

Lizzy's opponents position

Microkernel and similar (layered, modular).

People and OSes related to Lizzy

  • Linux
  • BSD
  • Unix v6
  • xv6

Not Windows; that's a hybrid.