David Boyes wrote:
I see no reason why a virtual serial connection between vm's can't be
created.
The main reason is because the amount of overhead involved in
implementing a byte-oriented processing paradigm on a block transfer
oriented piece of hardware is known to be prohibitive. Other operating
systems have tried it and failed due to this problem (AIX/370 is a good
example). Everything you've asked for relies almost entirely on
inexpensive single-character, byte-oriented I/O. There are *no*
byte-oriented devices in the zSeries architecture -- all the things that
ever did serial I/O on these boxes did it with outboard front-ends
actually doing the serial port management and assembling entire lines to
send to the host system -- the host CPU never ever saw the individual
keystrokes. You could poll for characters, but that would be
unbelievably expensive in processor time, which you don't have much of
in the first place.
There are things that provide a bit path, like IUCV or APPC, but they
are also block-oriented and require lockstep send/receive processing,
which leads back to the overhead argument. There are CTC and IUCV-based
drivers for network access which leverage the packet nature of network
I/O by doing an I/O to transfer a whole frame or network segment, so
this doesn't look so bad -- but at that point, you're just as well to
get the network working. This is exactly why network access is so
critical to Linux on Z; you'd eat the machine alive if you tried to do
I/O for individual bytes.
The CTC driver for network access relies on a pair of CTCs to basically
emulate a SLIP link over a null-modem cable, plus the physical link
startup processing to decide who's master and who's slave. We used to
have enormous problems with configuring networking because you had to
cross-connect the CTCs and keep track of that to get things to work.
But there has to be a way, and if there isn't, IBM
should create a way.
The Integrated ASCII Console feature of the HMC is basically that
attempt. It doesn't scale very well, and it doesn't virtualize at all.
You can get to it by connecting to the HMC over the network, but that
opens up a whole 'nother can of worms wrt to access control, etc.
Virtual serial connections can be useful for a lot
more than just consoles.
Positing the console problem as a known issue, I guess I'm not following
what else you would propose to do with them that couldn't be handled by
network-based connections or by the existing IUCV driver talking to the
CP *MSG service. If you want to connect to serial ports on external
boxes, you can connect to external terminal servers as reverse milking
machines via network connections or LAT, and if you want to connect
between guests, you can use a network connection just as easily (and
then the same technique works inside and outside the box). There is
already a LAT client and server if you want to attach terminals to
specific applications w/o using telnet. If you just want to log console
output, you can already use SCIF and PROP to handle that.
Could you toss out some examples? I'm just not understanding, which is
why I think we're asking you all these questions.
Excellent information, thank you! An answer like this earlier would
have shut me up right away. This was the "can't be done" or really
"shouldn't be done" answer I needed to stop my dreaming. I really just
didn't get that there was no byte oriented processing here.
As for uses for serial connections and what to use them for, they are
excellent for heart beats, for status and logging daemons, and even
UUCP. Why use such old methods? Because they still work if the network
goes down.
Anyway, thanks for the information, and consider my push for this
dropped. The guys in the mainframe group have seen this thread and one
of them has asked me to leave it alone. (And to recognize you, Boyes,
for the mainframe god that you are...)
Sorry,
*Brandon
----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390