[Info-vax] Creating an open source version of VMS, was: Re: OpenVMS Hobbyist Notification

Michael Moroney moroney at world.std.spaamtrap.com
Tue Mar 10 23:09:22 EDT 2020


Dave Froble <davef at tsoft-inc.com> writes:

>On 3/10/2020 6:43 PM, Michael Moroney wrote:
>> Dave Froble <davef at tsoft-inc.com> writes:
>>
>>> I haven't studied it from this particular perspective, and without doing
>>> so would only be guessing.  But I have to ask, why do you state this.
>>> As far as I know the VMS DLM has not much to do with the "kernel" of
>>> VMS, supposing there is a definition of that entity.
>>
>>> Remember, the VMS DLM does no enforcing.  It is strictly a utility that
>>> can maintain a database of locks and cooperating processes can be guided
>>> by the utility.
>>
>> The DLM is all kernel mode code and is intertwined with the cluster logic to
>> ensure it is consistent across the cluster.  Plus parts of the kernel itself
>> use it, as does the file system.
>>

>Interesting.  Want to ask.  Is that implementation specific?  Just seems 
>to me that what it does could be done outside the kernel.

It probably could be, if it was on a single node only dealing with user mode
stuff.

>  Of course, 
>that gets into defining just what is the kernel, right?

I never had a strict definition, but for VMS I would say any part of the
OS which needs to run in kernel mode.

>Does it need to be in the kernel because it's called from things in the 
>kernel?

Yes, and for clusters I think it needs to do things during a "quorum hang" when 
user mode stuff can't run.

>Or, is it in the kernel to allow system level locks without requiring 
>SYSLCK priv?

Kernel mode stuff may need lock synchronization, too.
VMS itself is a big user of the DLM.  Doorbells, dead man switches, the
job controller/queue manager etc.  Any synchronization across cluster nodes.

A BIG user of locks at kernel mode is the shadowing driver.  This is a driver 
so not only is it in kernel mode but runs at elevated IPL.  (It can't use the 
standard $ENQ interface, there are special hooks for elevated IPL DLM access)

All the "events" in a shadowset are tracked by locks.  Members added/removed,
copies/merges/minimerge needed, underway or completed etc. etc.

>By "file system" are you referring to RMS, or lower level stuff?

Yes.

All disk mounts, file opens, etc. are tracked via locks.  This is how read-only 
or read-write access, exclusive or shared, are tracked.  For shared files, 
individual records in a file are locked.  RMS, XQP etc have locks and run at 
exec mode.



More information about the Info-vax mailing list