[Info-vax] Intel proposal to simplify x86-64

Dan Cross cross at spitfire.i.gajendra.net
Wed Jun 7 15:21:50 EDT 2023


In article <u5qggo$16np4$1 at dont-email.me>,
Simon Clubley  <clubley at remove_me.eisner.decus.org-Earth.UFP> wrote:
>On 2023-06-07, Johnny Billquist <bqt at softjar.se> wrote:
>> Slightly related, I could argue that RSX (and maybe to some extent VMS) 
>> are already slightly down the path of microkernels.
>>
>> In RSX, the file system operations are done in a separate user level 
>> process, which is the F11ACP. And networking is done in yet another user 
>> level process, the NETACP. Task activation as well as rundown are yet 
>> again done by other user level processes (INS and TKTN).
>>
>> This also means that in theory adding support for new file systems is 
>> just a question of writing another ACP and off you go. Unfortunately 
>> there are a few places where there are some assumptions in the system, 
>> making it not that easy to do absolutely everything in another file 
>> system. But for normal file accesses, it works just fine. (In RSX, the 
>> problem is that task checkpointing is done outside of the ACP, but to 
>> the file system.)
>>
>> Which is way more separation than you'll find in any kind of Unix like 
>> system. But it's not as far as true microkernels go.
>
>User mode filesystems are available for a subset of Unix systems however:
>
>https://en.wikipedia.org/wiki/Filesystem_in_Userspace
>
>You can also access some USB devices from user mode as well:
>
>https://libusb.info/
>
>And finally, you can implement network protocols in user mode using
>the TUN/TAP device drivers.
>
>But you are right in that none of this is the same as a proper
>microkernel however.

Userspace filesystems were ubiquitous in Unix's successor
system, Plan 9.  This followed work done in the Research Unix
systems post 7th Edition (e.g., streams and the filesystem
switch in 8th Edition and mountable file descriptors in the 9th:
https://www.bell-labs.com/usr/dmr/www/ipcpaper.html)

Plan 9 extended this with mutable, per-process (group)
namespaces, utilities to manipulate these, and a file protocol
that was used to implement all kinds of things.  The window
system was implemented as a (userspace) file server, as was the
persistent file system (kinda: there were a couple of versions.
The original was actually a dedicated kernel; the one that came
later was a normal userspace process).  The network stack was a
filesystem that was provided by the kernel.

Regardless, Plan 9's kernel implemented a fairly traditional
monolithic model.  When asked why, Dave Presotto infamously
quipped:

"Because you need a brain the size of a planet to design a
microkernel based system and we only have egos that big."
(https://marc.info/?l=9fans&m=111558798106759&w=2)

The issue of userspace access to filesystems is mostly
orthogonal to microkernel implementation.

	- Dan C.




More information about the Info-vax mailing list