[HECnet] Web-server under RSX-11M-PLUS

Paul_Koning at Dell.com Paul_Koning at Dell.com
Fri Apr 13 16:20:23 PDT 2012


You're right, drivers in RSTS have nothing whatsoever in common with any other OS.   They aren't all that complicated, just different.   Also undocumented...   And they come in four flavors: disk, terminal port, other non-network device, network (DECnet) device.   The last two have a bunch of similarities, but the   first two are completely unrelated to anything else.

The other thing about RSTS networking is that the existing networking user API doesn't use device drivers or I/O calls, but rather send-message operations.   It would make sense for other protocol stacks to do likewise.   The main complication is that those message operations are packet based, which makes them a fairly poor fit for the TCP stream-based semantics.

Oh yes, RSTS does have asynchronous I/O with ASTs, starting with V9.0.   They are only really async for selected devices: disk file I/O, and streaming tapes (TS11 and TMSCP).   That was done to make backup to streaming tapes run at civilized performance.

	paul

-----Original Message-----
From: owner-hecnet at Update.UU.SE [mailto:owner-hecnet at Update.UU.SE] On Behalf Of Johnny Billquist
Sent: Friday, April 13, 2012 9:39 AM
To: hecnet at Update.UU.SE
Subject: Re: [HECnet] Web-server under RSX-11M-PLUS

There are parts that are pretty common, and there are parts that are miles apart...

Device drivers, as well as I/O in general, is very different in RSX than RSTS/E.
The same goes for the concepts of processes/tasks, which in RSTS/E are a job, which is tied to a terminal, while in RSX tasks are more self-contained in the same way as under Unix. So you can run several tasks at the same time from one terminal, and tasks can run other tasks without exiting themself, and that is the normal way of life. RSTS/E is in another category of design.

All I/O is also asynchronous in RSX... And you have ASTs that tells you when things actually have happened.

Not that I want to rack down on RSTS/E, or discourage you from trying something, but you should expect this to be in the rather difficult category of work... :-)

	Johnny

On 2012-04-13 15:32, Steve Davidson wrote:
Well...

While the two Oses ARE different they do share quite a bit.   I used to 
support RSX (and IAS) at the internals level when I worked in the 
Corporate Operations Group/Software Services/Real-time Group (RTG) at 
DEC so I'm quite at home with the RSX family of systems.   I use RSTS/E 
in day-to-day tasks here.   I am out of practice but it wouldn't take 
that much to come back up to speed programming wise.   I also used to 
teach MACRO-11 to Software Services Personnel.

This could be fun!   It will certainly be different!

-Steve

-----Original Message-----
From: owner-hecnet at Update.UU.SE
[mailto:owner-hecnet at Update.UU.SE] On Behalf Of Johnny Billquist
Sent: Friday, April 13, 2012 09:22
To: hecnet at Update.UU.SE
Subject: Re: [HECnet] Web-server under RSX-11M-PLUS

Some parts possibly, but it would be very complex. Much of the actual 
TCP/IP implementation is in the form of device drivers.

In RSX, there is (now) IF:, which is the basic device interfaces, 
IP:, which talks raw IP (and ICMP), UD:, which talks UDP, and TC:, 
which talks TCP.

The TC: driver, as well as the UD: driver internally then talks to 
the
IP: driver. The IP: driver in turn talks to the appropriate
IF: driver, depending on the routing tables.

TC: even understands file specifications, so you can do things like:

PIP TI:=TC:"130.238.19.212";17, which will give you the quote of the 
day on your terminal (that's what port 17 is). (Try it on MIM:: :-) )

Device drivers are very different in the different OSes, so the basic 
code that deals with the protocol bits can pretty much be used 
straight off, but all the code dealing with the interfacing to the 
OS, memory, other drivers, and user applications, will be totally 
different. I'm not sure exactly how a device driver in RSTS/E works.

Also, for ethernet, I make use of a feature in RSX called an ACP, 
which is like a user level program that extends the functionality of 
a device.
So the ethernet device is an ACP attached to the IF: driver (for the 
specific unit), and which in turn implements all the logic of 
communicating over ethernet, including ARP.

And then of course, is the tools, which are perhaps a bit more OS 
specific, but they are smaller and simpler for the most part.
Applications (if everything else was ported) would probably work 
without any changes.

	Johnny

On 2012-04-13 14:55, Steve Davidson wrote:
Johnny,

Could it be ported to RSTS/E V10.1?   That's what PLUTO:: is.

-Steve


-----Original Message-----
From: owner-hecnet at Update.UU.SE
[mailto:owner-hecnet at Update.UU.SE] On Behalf Of Johnny Billquist
Sent: Friday, April 13, 2012 08:41
To: hecnet at Update.UU.SE
Subject: [HECnet] Web-server under RSX-11M-PLUS

This is perhaps slightly offtopic, but fun enough that I like to 
announce it anyway...

===

Ok. I just thought I'd stir some interest and just general
noise by
announcing that I've written a small web-server running under RSX.
It's written in BASIC+2, and uses the TCP/IP stack for RSX
that I've
also written. There are probably a bunch of bugs and issues still 
around, so I'm happy to take any bug reports, comments or whatever.

The url is http://madame.update.uu.se/, and if anyone is curious 
about the code, it's at mim.update.uu.se (same machine, other IP), 
under MIM::DU:[HTTPD]WWW.B2S (also on HECnet)

If people have any interest in this stuff, or something else/more, 
I'm interested in hearing about it. The TCP/IP stack will
eventually
(soon) be available for others to download and use, and apart from 
the web server, I've also written a telnet client, and a few small 
services under TCP, as well as some tools for
administration. I have
some polishing to do, I need to finish a DNS resolved, and
I'd like
to also finish FTP and a telnet server, but I might be open to 
distributing things before I've finished all those things,
especially
if someone is interested in helping writing stuff.

I have interfaces completed for BASIC+2, PDP-11 C, Macro-11.
FORTRAN 77 should also work, but I haven't tried it yet.

This all runs under RSX-11M-PLUS V4.6, but I think it should be 
possible to get running under almost any M+ version, but
there might
be some hacking needed for some versions.
It will not work under 11M, and I never expect it to. One or two 
drivers as well as one or two tools really are big enough
that I need
to use the split I/D space feature in M+.
Rewriting stuff to not need that is way too much work.

            Johnny

--
Johnny Billquist                                   || "I'm on a bus
                                                                        ||   on a psychedelic trip
email: bqt at softjar.se                         ||   Reading murder books
pdp is alive!                                         ||   tryin' to stay hip" - B. Idol



--
Johnny Billquist                                   || "I'm on a bus
                                                                      ||   on a psychedelic trip
email: bqt at softjar.se                         ||   Reading murder books
pdp is alive!                                         ||   tryin' to stay hip" - B. Idol



-- 
Johnny Billquist                                   || "I'm on a bus
                                                                    ||   on a psychedelic trip
email: bqt at softjar.se                         ||   Reading murder books
pdp is alive!                                         ||   tryin' to stay hip" - B. Idol



More information about the Hecnet-list mailing list