Talk:Incompatible Timesharing System

From Computer History Wiki
Revision as of 13:41, 5 February 2024 by Jnc (talk | contribs) (Move dest)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Many configuration-related entries have been moved to Talk:ITS machine configurations.

Timeline

Comment on "after Multics was done". I believe both Multics and ITS were developed around the same time. User:Larsbrinkhoff 11:11, 15 December 2017 (CET)

Well, the planning for Multics I believe started first; 1964 or so (the timeline on the Multicians site doesn't give the exact date, but they selected GE in 1964, so it was certainly underway then). The first boot of a Multics came in December '67. As for ITS, the AI Lab history, "A Marriage of Convenience: The Founding of the MIT Artificial Intelligence Laboratory" implies that it was started, and finished, sometime in '67, on a PDP-6 already owned by the Lab, but no specific date is given. Jnc (talk) 14:49, 15 December 2017 (CET)
It seems right that Multics implementation started well before that of ITS. But they become operational at about the same time; actually ITS was first. Project MAC Progress Report IV has this to say: "A time-sharing system for the PDP-6 went into operation in July 1967." User:Larsbrinkhoff 15:31, 15 December 2017 (CET)
Good find! I'll add that to the article. Jnc (talk) 15:43, 15 December 2017 (CET)

PCLSRing

I found this posted to alt.sys.pdp10: "The [TENEX] exception model for system calls was as ugly as their hardware, instead of adopting an ITS-like PCLSR approach - another step backwards from the 940 system, which in essence had simplified PCLSR." Larsbrinkhoff (talk)

KL10 ITS ucode

So I have a hardcopy of a document ("Running ITS on the KL10") which lays out the plans for adopting the KL10 ucode (from DEC), and the KL10 generally, to run ITS (and vice versa). I'm trying to work out if that is still available in machine-readable form, so I don't have to scan it in. (My copy was printed on the Dover, from I think MC, but I don't remember.) I also know neither the directory, nor the file name; nor who wrote it (likely MOON or GLS, I think). Help!?

BTW, which directory is the KL10 ucode in (if we have it; I vaguely recall it being online on MC, but maybe it wasn't); the file might be there, or in the author's directory. Jnc (talk) 15:21, 12 June 2021 (CEST)

That sounds very interesting. I'm not sure if I have seen anything like that. The directory for the KL10 microcode is UCODE, and if it were there, I would have seen it and placed it on GitHub. I think the best way is if you send me some phrases I can grep for. That will usually turn up the file. Larsbrinkhoff (talk) 17:10, 12 June 2021 (CEST)
Well, I looked in the master version of MOON's directory, and also UCODE; didn't see it. Google Advanced Search on target phrases didn't find it, but that's known not to be perfect. But here you go: "only modification that Project MAC plans to make", "an exact copy of the existing ITS pager". Good luck! Jnc (talk) 18:12, 12 June 2021 (CEST)
I find that text in RG; KLPAG 18 dated 1975-07-15. There are no other KLPAG versions in the backups, but there is an XGP file which I would assume is what you have in hardcopy. This file will probably be difficult to extract out of the archives, so if it's not too much trouble to scan that would be good. Larsbrinkhoff (talk) 21:23, 12 June 2021 (CEST)
RG, huh? Yes, it does read like something he wrote. Is it on Github somewhere? I couldn't find it in 'RG;' in 'its-vault' or 'its'. I'd like to compare it with my hardcopy to make sure it's the same.
I'm pretty sure this was printed on the Dover (it's on regular paper), and it has formatting commands (".ce") in it, so I'm pretty certain I just printed out the source. (The machine my scanner is attached to suffered a hard drive failure which I have yet to deal with, so it wouldn't be trivial to scan it.)
I'll have to look at the KL ucode to see how it handled page cache misses/faults. Oh, BTW, the uassembler is in MOON;MICRO > in 'its-vault'; it's not in 'its'. Jnc (talk) 13:06, 13 June 2021 (CEST)
Oh, the KS one was a modified version of the KL one Jnc (talk) 13:13, 13 June 2021 (CEST)
The KL10 MICRO is in SYSENG; any copy in MOON is probably work in progress. Larsbrinkhoff (talk) 20:40, 13 June 2021 (CEST)
I was interested to read the documentation on the TENEX pager; along with the details on how the KI10 and KL10 were made to support TENEX-style paging (in Origins and Development of TOPS-20), it provides an interesting view of it.
We should really make RG's memo on how the KL10 was made to support ITS-style paging available; we could upload it here, a la ITS DDT Guide. My scanner is down at the moment; any chance you could upload the source (so I don't have to OCR a scan of it)? If that would be an issue for you under the terms under which you have access to that material, is sending it to me via email OK? Otherwise I'll have to buckle down and get my scanner working! Jnc (talk) 13:38, 16 January 2023 (CET)

Knight TV keyboard

I think the CADR keyboard was not quite exactly the same as a Knight TV keyboard; very, very close, for sure, but I seem to recall they weren't quite exactly identical. (Maybe just keycap colours, or something minor, though; I just never knew the fine details of either.) Jnc (talk) 21:39, 1 January 2022 (CET)

That's right. I have the layouts here: http://www.keyboard-layout-editor.com/#/gists/6e0e07418bfd79865c895431a2fb2dcc
and here: http://www.keyboard-layout-editor.com/#/gists/8e93982d5ab19f5af8afe2d45c6d87ad
As for the exact history of keyboards used with the CADR, I don't claim detailed knowledge myself but a Lispm person I trust explained they first used the Knight keyboard, and later switched to Kulp's new "space-cadet" keyboard. The story seems to check out from my examination of backup file records. Larsbrinkhoff (talk) 21:57, 1 January 2022 (CET)
Work on getting the keycap symbols: https://raw.githubusercontent.com/larsbrinkhoff/Knight_and_SAIL_keyboard/lars/knight/svg/Knight-Keyboard-KeycapTrace_STROKES_PRESERVED.svg
Larsbrinkhoff (talk) 06:57, 26 October 2022 (CEST)

Complete ITS 1.5 Reference Manual

Richard Alderson provided this file, where page 19 has been added by Mark Crispin from his copy. https://github.com/larsbrinkhoff/its-archives/blob/master/ailab/AIM-161A_MRC_corrected.pdf

Oh, OK; I turned up my original hardcopy, and scanned in the page missing from David Carter's nice ASCII version (easier reading, searchable, cut-and-pasteable, etc), so he could fix his copy; I've been in touch with him, and he says he'll try and get to it at some point. Jnc (talk) 08:23, 8 June 2023 (CEST)

System functionality

I have added a brief description of the system's functionality, in "Architecture and features". What did I miss? Lack of any protection? What else? Jnc (talk) 02:51, 27 July 2023 (CEST)

Lack of protection extends to the system ("monitor") core image, and indeed many admin tasks (initially even creating a new directory!) required poking the memory of a running system.
Speaking of memory, maybe something about shared memory with PDP-11 front ends?
"FOO <" opened 'FOO 24' , oops should be 22.
In the "interrupt handling" paragraph, maybe add something about PCLSRing.
"Early versions of the system only supported swapping" Are you sure? Early memos describe the system as user jobs being core resident. That's why it was important to acquire the large moby memory, so that it was feasible for a reasonable number of users to run at the same time. (Apparently the DM PDP-6 had 32K core, and their PDP-10 started with 64K; this is something that is still remembered painfully!) I don't think there was swapping on the PDP-6; certainly not when it only had DECtapes. Fred Wright claims (and I'm inclined to trust his recollecions) virtual memory was planned from the very beginning, but of course they needed disk for that. Since the first two disk systems didn't pan out, it took until the KA10 to get going with paging. I believe there was no swapping in between.
Larsbrinkhoff (talk) 07:24, 27 July 2023 (CEST)
'No' on the PDP-11 memory, I think; I'm trying to filter out the 'big ideas' that the whole system was organized around (so that the writeup of system functionality is crisp and concise - my goal for most of the content here, as so much of the original documentation is extant for so many things), and the PDP-11's don't count - can't count - because only the KA AI and the KL MC had them, so they clearly can't be 'fundamental things in ITS', if you could leave them out and still have an ITS! But clearly the basic capabilities of the system were such that the memory-mapped PDP-11's could be easily supported - I might throw in a clause about that.
I will think about PCLSRing - would an ITS without PCLSRing still have been ITS?
Good catch (perhaps) on the swapping. I just assumed early ITS had it, but maybe it didn't. (I thought I had a vague memory of it being mentioned somewhere.) I'll check.
Is there no original document which is 'a brief introduction to programming on ITS for the newb'? (The 'complete detailed list of all system calls' is useful, but clearly not it.) Ellen's thing is 'a brief introduction to users of the applications on ITS', which is a very different thing.
I clearly ought to add a sentence or two about the I/O, and a clause about where process interrupts could come from.
Did you know that ITS supported locks in files, so that if the system crashed, it could come up with the lock still locked? (There's a mechanism to detect that, and clear the lock.) Not a major organizing principle, of course, but somewhat interesting.
Well, let me take another pass, and you can see what's still missing. Jnc (talk) 13:32, 27 July 2023 (CEST)
PCLSRing is something that hackers will bring up as one of the best ideas in ITS. I believe it's quite integral to how software interrupts are handled, and in a way that are transparent to user jobs. I certainly miss it in Unix when read() or write() occasionally return early.
The INFO; PDP-10 file, and possibly LISP, would be the newb programming guides.
I have seen things about locks in passing, but nothing that registered in my mind. There's a LOCK: device, but I never checked what it does.
Larsbrinkhoff (talk) 15:01, 27 July 2023 (CEST)

Internals documentation creation project?

So, I think we should start a page here to form a document explaining the internals of ITS, similar in spirit to the KT11-B Technical Manual, which exists in parallel to the KT11-B Paging Option page (which is itself quite extensive, but is more of a 'users manual' than an 'internals manual').

Why here, and not on Github? In part because I propose to work on it extensively, and I don't know how to use Github; but at least as important, because Mediawiki has decent tools for formatting text - and is very good for supporting collaborative writing projects, where several people are simultaneously working on an evolving document (which this surely would be). In addition, if we do this, I would attempt to recruit a few more people, from the 'its-hackers' list, to help, once we have a framework for the document worked out. (Mediawiki is good at letting several people edit separate sections of a document, in parallel; once we have the framework set up, we'd automatically be in a position to have several people working on it simultaneously.)

If you're OK with this, we can start by alternating working on the outline; I can start it (if you don't feel inspired), or you can (if you have an idea of what it should contain, and in what order). If we do this, what should we call it - ITS Internals Manual? Jnc (talk) 10:00, 10 September 2023 (CEST)

Here is fine with me. I'm not picky about the particular medium, especially if someone's offering to help! In the future, I'd like to possibly add this to the GitHub "ITS Manual". In case there's a faint possibility for a print book, it would be good to consider collecting permission from contributors.
I don't have an outline in mind right now, so please go ahead. My recent post to its-hackers could go somewhere.
The title is good. Let's go with that for now. I have thought about something like "Design and Implementation of the ITS Operating System" with a cute dragon, riffing of the BSD book. Larsbrinkhoff (talk) 10:51, 10 September 2023 (CEST)

NoCrew BUG-ITS archive disappeared

The NoCrew BUG-ITS archive, here, seems to have gone missing. I know the content is still there on GitHub, but that archive was very useful; one could hyper-link to individual messages (which I did, in several places). Jnc (talk) 02:39, 3 November 2023 (CET)

Thanks for the heads up! I'll have to look into it. Many years ago, I made a script which picked individual messages apart for presenting them as an email arvchive, and the result is what you have linked into. However, it was still a work in progress, so maybe it's time to finish it off properly and put it in a more permanent location. Larsbrinkhoff (talk) 14:05, 4 November 2023 (CET)
Sure. If anyone wants to read the messages I linked to individually (above), they are all in this file. Interestingly, in looking for them, I found a message from Alan Bawden (Date: 25 July 1984 16:56-EDT) which says "I moved the various notes and things that used to be taped to the inside front door of the first MF10 into the first MH10", which seems to indicate that the MF10's were physically replaced with MH10's, not merely upgraded into MH10's. Jnc (talk) 15:15, 4 November 2023 (CET)

ITS before PDP-6?

So I don't understand this recent time-line entry:

1967 - First version for PDP-6 — ITS 1.0 3/19/67

Did ITS run on something else before the PDP-6? The AI Lab History doesn't mention anything? Perhaps the previous line:

* 1966 - Moby memory acquired and TTY device added four more teletypes; preparing for timesharing?

is not ITS history, but the history of the hardware on which ITS later ran; in other words, it is ITS pre-history?

If so, perhaps that entry would be better worded:

1967 - First version of ITS; ran on PDP-6 — ITS 1.0 3/19/67

I've always found that if people can mis-read something, some will - which I seem to have done here! :-) (When I'm writing posts, I always look for ways in which they can be mis-read, and re-word the posts to try and eliminate them.) Jnc (talk) 14:28, 30 November 2023 (CET)

By "first version for PDP-6" I mean that later versions ran on PDP-10s, or more precisely KA10, KL10, and KS10 PDP-10 processors.
No, there was no ITS before the PDP-6. (But there was a thriving toolset running standalone.)
I thought it an interesting ITS "milestone" (maybe it's a negative mileage!) to note that apparently preparations where being made for timesharing a year ahead ITS went into operation. Maybe it's pre-history, or maybe events that led directly to X can be part of X history.
Your rewording looks good to me.
Larsbrinkhoff (talk) 15:09, 30 November 2023 (CET)

Add a Category:ITS?

I think we've got enough ITS-related articles to make it worthwhile to have a Category:ITS. (I thought maybe it should be Category:Incompatible Timesharing System, but that's pretty long and clunky. Still, might be the right thing.) What does everyone think? Jnc (talk) 15:20, 12 January 2024 (CET)