[HECnet] two dumb RSX questions

Jerome H. Fine jhfinedp3k at compsys.to
Wed Jan 1 12:32:59 PST 2014


>Johnny Billquist wrote:
>On 2014-01-01 14:19, Jerome H. Fine wrote: 
  >Johnny Billquist wrote: 

RSX can boot from virtual devices. 
Also, you can load and unload device drivers in RSX, but you don't 
normally do that just to bring devices offline or online. That is a 
separate operation from loading and unloading device drivers. But yes, 
if you want to disconnect devices, buses, CPUs or memory, you can do 
that just fine on a running RSX system. And bring them online again 
later, if you want to. Any other trick you'd like to do? :-) 

While it is extremely unlikely that I will ever run RSX-11, the 
above ability surprises me.   Please clarify to make sure that 
I understand.   It is my impression that RSX-11 requires 
all device drivers to be LOADed at boot time and always 
be kept LOADed.   TSX-Plus has this requirement and I 
guess I assumed that RSX-11 was similar. 

Based on your information, I understand that RSX-11 does 
support a device driver UNLOAD and REMOVE commands 
(or whatever syntax is used in RSX-11 since I just used the 
RT-11 syntax).   So please confirm. 

Yes. That is correct. You can load and unload device drivers at runtime. That is actually a very important design feature in RSX. 
So your understanding about RSX have been totally wrong. 

Device drivers that are currently in use can not be unloaded, however. Which means that the boot device can't be unloaded, for instance. 
YES!!   RT-11 has the same requirement.   Sort of obvious to
anyone who actually uses the operating system.
In M+ the ability is even better, as device driver loading and unloading is not related to devices being online or offline. 
RT-11 has the same ability.   A hard drive can be online
without the device driver being LOADed.   If a background
program requests access to a drive, the program can perform
a temporary .FETCH to bring the device driver into memory
and then .RELEASE the device driver when finished.   A system
job can't request RT-11 to perform a FETCH, so any disk
drive needed by the program must have the device driver
LOADed before the program uses the disk drive.   In theory,
a system job could pause and the user could then LOAD
the device driver just before the system job uses it.   MACRO-11
always attempts a .FETCH when a device driver is not already
LOADed.

One aspect of the FETCH is that for a Mapped version of
RT-11, the code can be placed in an address which is not
allowed for LOADed device drivers.   This often takes place
when a background job is executed as a virtual job under
the program VBGEXE and the Low Memory from 1000
octal to 40000 octal is then available.   At least a stub of
all device drivers much be in Low Memory even if the
device driver also uses Extended Memory (one of the
other things that INSTALL does is to set up the Extended
Memory portion of any device driver).
Not sure exactly what your distinction between unload and remove is. 
In RSX terms, you LOAD and UNLOAD device drivers. In 11M, an implicit online of a device is done when you load it, and offline is done on a device before unloading it. In M+ the offline and online steps are separate commands, which just requires that a device driver is loaded. 
In RT-11, a device driver must be INSTALLed and the
name placed into the Permanent Physical Device Table
before a LOAD can be performed.   The INSTALL code
checks that the device driver is compatible with the
operating system parameters, among other things.   A
user may then UNLOAD and REMOVE (in that order)
a device driver if a different version of the device driver
is needed, such as for testing a new version.
Even more fun is M+ is that device drivers do not need to be recompiled if you recompile the kernel. Device drivers are totally independent of the kernel. 
Likewise in RT-11.   In fact, I believe RT-11 has always
been that way.
Also, file systems are also separate, and handled by something called an ACP, which is a separate task. This means that you can have different types of file systems on different disks. 
ACPs hook into device drivers, but device drivers have no clue about ACPs. 
Not available in RT-11 except maybe as part of the actual
user program.
In respect of RSTS/E, is this possible as well or does RSTS/E 
have the same requirement as TSX-Plus?
I think RSTS/E is less flexible, from what I can remember. 
TSX-Plus is similar.   All device drivers must be LOADed and
permanently resident at boot time.

Jerome Fine



More information about the Hecnet-list mailing list