On 2012-04-13 17:20, Paul_Koning at
Dell.com wrote:
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.
Yeah, I suspected as much.
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.
That could be an issue. RSTS/E are otherwise rather more stream-oriented than RSX, so I
would have thought it would be easier to adapt there. But the network driver sounds like
it's a bit different than the basic RSTS/E philosophy.
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.
Really? I didn't know that, but then I stopped using RSTS/E after V8, so things after
that are a bit more unknown to me. How did they implement it? The existing user operations
don't have any obvious place that AST hooks could fit, that I remember. Some spare
field in the FIRQB that could hold the AST address?
Johnny
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