|
|
|
|
|
by akavel
3909 days ago
|
|
I'm not sure if I understand well the "rump kernel"/"anykernel" idea as implemented in NetBSD. Could anybody please help me with that - specifically, how this differs from a microkernel? My current idea is that I can take the current NetBSD kernel and: a) for some (any? or only some?) hardware subsystems, ask the kernel (by some switch/config? where?) to run drivers in userspace, in "microkernel-like" way (and thus they reboot transparently in case of failure/bug/crash?), at some performance cost; b) compile out/disable (? by some preprocessor directive?) some subsystems of the kernel, so that I get a "smaller" kernel e.g. for embedded machines which don't have video-card/GPU hardware; and probably also combine the both above approaches together - i.e. build a reduced kernel like in (b), and then optionally run any missing subsystems/drivers like in (a). Is that correct? Or am I wrong? |
|
You can also use rump kernels to make an application that runs directly on Xen, KVM, or hardware or that e.g. uses NetBSD file system code on Linux (or Cygwin) userland. Much of this still need some work to do what you want, but less than writing the drivers from scratch, much less maintining them. rumpkernel.org is starting to have packages for some applications. This doesn't require otherwise using NetBSD.