[Info-vax] New filesystem mentioned

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Thu May 16 19:24:02 EDT 2019


On 2019-05-16 18:24:44 +0000, Robert A. Brooks said:

> On 5/16/2019 2:10 PM, Dave Froble wrote:
> 
>> I should shut up now, but let me ask, does getting loaded as part of 
>> the OS boot indicate that all such modules are part of the kernel?
> 
> "The kernel" is composed of any number of execlets.
> 
> While a distinction may be drawn between "the kernel" and "a device 
> driver", from a practical standpoint, it's a very narrow distinction, 
> especially when you consider the difference between a port driver 
> (which touches hardware) and a class driver, which is concerned with 
> higher layer stuff, like DKDRIVER, which is the SCSI class driver.
> 
> Then there is the shadowing driver . . .


In more general terms, all of the loadable bits and all of the driver 
bits and all of the supervisor-, executive-, and kernel-mode system and 
app code is all considered part of the so-called trusted computing base 
(TCB), as it's all necessarily trusted.

Buggy or malicious or vulnerable code in a driver, or in an execlet, or 
in a user-written system service, or in the base image, can corrupt and 
can compromise and can crash OpenVMS.

Anybody remember that floating point register corruption in that device 
driver interrupt routine that arose a while back?  That was fun.  Not.  
Some device driver code was corrupting floating point register data, 
and which could then be benign or catastrophic, depending on what other 
code had been interrupted, and what that other code was storing in the 
effected registers.

Rather than (mostly) sharing the same address space, another operating 
system design approach involves formalizing the interfaces among the 
various modules, to scale down the kernel to the message-passing and 
some related features, and to run many of the operating system 
functions in what amount to processes.   This design was quite slow, 
but performance of the message-passing has gotten significantly faster 
due to better software designs and due to faster processors, and the 
increasing numbers of cores available also helps here.

This design can be implemented in the operating system:

https://www.systems.ethz.ch/sites/default/files/file/aos2012/slides/06-MicrokernelsAndIPC.pdf 

https://ts.data61.csiro.au/publications/nicta_full_text/8988.pdf
http://l4hq.org/docs/manuals/l4uman.pdf
https://web.archive.org/web/20171110115139/http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf 



...Or a somewhat similar design can be implemented in the app and 
networking software:

http://erlang.org/download/armstrong_thesis_2003.pdf  (RIP)
https://learnyousomeerlang.com





Debates over the existence of loadable modules and of the fun that can 
be the single kernel address space and of the trade-offs of modular and 
hybrid and monolithic kernel designs aside, call back when new file 
systems can be loaded into the kernel, and other new file systems can 
be loaded into user space.



-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list