See comments below.
Heinz
On 6/2/2020 2:34 AM, Paul Ruizendaal wrote:
On 5/31/2020
9:46 AM, Warner Losh wrote:
Sorry to top post, but LSX or Miniunix had non
blocking I/O as well.
It was in one of the documents that Clem scanned in the last year. It
specifically was an experiment into how to do it.
Warner
I did add a few new features to LSX to deal with contiguous files
and to handle asynchronous read/write's for real time applications.
They are described in the LSX paper in the 1978 BSTJ on the
UNIX Time-Sharing System.
Heinz
Thanks for highlighting this!
The realm here is async I/O to disk, my original scope was limited to “communication”
files (tty’s, pipes, network connections). Still, I find it an interesting topic.
For others, the paper that you refer to can also be found here:
https://www.tuhs.org/Archive/Documentation/TechReports/Heinz_Tech_Memos/UNI…
If I read correctly, the async functionality was available only in the stand alone
program version of LSX. Is that correct? In any case, the source code appears lost.
Any source code for LSX would be archived somewhere within
Nokia Bell Labs?
From another paper in that set, I get the impression
that the async functionality for LSX builds on earlier work for a very early version of
Unix:
https://www.tuhs.org/Archive/Documentation/TechReports/Heinz_Tech_Memos/TM-…
Yes, as this memo describes, I implemented a very simple version
of large contiguous files and asynchronous file I/O for a special
application. The MERT system developed a little later on, had a
completely integrated of implementation of contiguous files
and asynchronous file I/O.
- - -
When reading through the papers in that TUHS directory, something else caught my
attention: early networking at the labs. For a while I have been puzzled by the “serial
I/O loop” in use at the labs in the early seventies. Last Fall I found some 1970/1971 BSTJ
papers about it, but there it stopped.
Jon Steinhart would have more information
about the serial I/O loo.
I see in the memo on Glance
(
https://www.tuhs.org/Archive/Documentation/TechReports/Heinz_Tech_Memos/TM-…)
that D.R. Weller continued to work on it up to 1973 at least and that it was integrated
with Unix in some way. Is that correct? Did the two memo’s referred to (MM 70-1384-1 and
TM 73-1356-8) survive?
I do not believe that the software for the Glance terminals
was ever
integrated into the standard UNIX software distribution
Then the memo on satellite processors is very
interesting
(
https://www.tuhs.org/Archive/Documentation/TechReports/Heinz_Tech_Memos/TM-…)
This appears to show the serial I/O loop in use as late as 1978, with a very intriguing
use case involving system call forwarding over the network.
Carl Christensen and I
developed this software to handle small
computer systems with disk storage, as described in the memo,
and in the BSTJ article. The satellite diskless computers could be attached
to a powerful central computer by means the serial I/O loop or
various standard DEC controllers. Each of the satellite computers
could run different tailored applications
Can you tell me more about the serial I/O loop and its
use cases?
I think Jon Steinhart has described this elsewhere?