[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