[Cuis-dev] Off topic: Why am I interested in microkernels?
ken.dickey at whidbey.com
ken.dickey at whidbey.com
Wed Sep 6 12:01:20 PDT 2023
Hilaire,
You asked why my interest in Cuis on microkernel OS (on riscv64).
I have to back up a bit to my last project before I retired.
This was doing multi-tier web analytics with fortune 1000 clients, e.g.
banks.
One thing about large company web systems is that they want reliability.
A process may run for, say 3 years, and be taken down by "live
failover" when the server hardware is upgraded. This is very much
opposite to the Unix philosophy of "Processes are cheap. If one
misbehaves, kill it and spawn a new one".
In this environment, live code update is also a requirement.
For our development team, the better choices at the time were Smalltalk
and Common LISP. The code team was more familiar with LISP, so we chose
that. Another way of saying this is "If you can afford to fail, you can
write code in any programming language. We can't afford to fail", so
our language choices were dictated by the project.
We did extreme programming
(https://en.wikipedia.org/wiki/Extreme_programming) which meant pair
programming and having unit test cases for every non-trivial function.
Delivered project in a year with a team of 5 to 6 simultaneously on
Windows NT, Solaris, and Linux with about 2 pages of system specific
code. To match our customer base, this worked with multiple web
interface technologies and multiple encrypted SQL databases.
The first thing we did was sit down and write the live failover code.
So, I have a long term interest in robust, reliable sw development.
More recent commercial practice is to use "restfull interfaces", e.g.
see https://www.manning.com/books/reactive-design-patterns .
Now I am most interested in "personal computing", so what makes sense
for me?
The basic advantages of microkernels are discussed by the Minix3 folks:
https://en.wikipedia.org/wiki/Minix_3 ,
in particular, live OS update and having a process watching for driver
failure and be able to resurrect failed device drivers.
As I mentioned, Cuis has to live somewhere and having a more robust and
minimal/comprehensible OS environment would be a nice home to make.
A microkernel is minimal and has a basic abstraction of sending
messages, which joins well with thinking about a multicore vm. Given
all the multicore SoCs these days, this would be really cool to do.
So, this may be a multi-decade project well beyond my lifetime but is
fun to think about and work on. And who knows? The horse may learn to
sing! ** ;^)
Good on ya,
-KenD
** [
https://www.corps2corporate.com/post/be-patient-be-cool-the-horse-may-learn-to-sing
]
More information about the Cuis-dev
mailing list