Difference between revisions of "Talk:Incompatible Timesharing System"

From Computer History Wiki
Jump to: navigation, search
(KL10 ITS ucode: KS one was a modified version of the KL one)
m (Move dest)
 
(34 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==AI PDP-6==
+
''Many configuration-related entries have been moved to [[Talk:ITS machine configurations]].''
 
 
I'm pretty sure that by the time I got to Tech Sq (in 1977), the PDP-6 was no longer in use. It wasn't physically removed until some years later, though. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 15:43, 14 December 2017 (CET)
 
 
 
: Right. I have collected all information I have found on each of the classical ITS machines here: [https://github.com/PDP-10/its/issues/181], but I figured it was too much for this page. [[User:Larsbrinkhoff]] 18:14, 14 December 2017 (CET)
 
  
 
==Timeline==
 
==Timeline==
Line 19: Line 15:
 
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." [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]])
 
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." [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]])
  
==MC configuration==
+
== KL10 ITS ucode ==
  
So I'm trying to work out MC's configuration. (I know, I know, I could look in CONFIG >, but I'm lazy.) Here's what I remember/can work out:
+
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!?
  
* 8 [[MF10]]'s
+
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. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 15:21, 12 June 2021 (CEST)
* (later) An Ampex? 'external' memory box was added
 
* 3 [[RP04]]'s
 
* So, therefore, some sort of MASSBUS controller, but since it was a KL10 Model A, not an [[RH20]]; probably an [[RH10]]
 
* That would have needed a [[DF10]]
 
* A [[TM10]] of some sort; dunno if that had a separate DF10, or shared the one the RH10 used
 
* Some sort of high-end DEC magtape drive
 
* A [[DL10]]
 
* Later, first one, and then a second Trident drive, attached to the DL10 PDP-11
 
* The front-end -11 had a bunch of serial lines, probably a [[DH11]]
 
* CHAOSNET eventually on the DL10 PDP-11
 
* I'm not sure why they initially acquired the DL10+PDP-11 (i.e. what it did to begin with); probably more serial lines
 
  
Well, that's a start. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 17:09, 12 April 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. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 17:10, 12 June 2021 (CEST)
  
:: According to [https://github.com/PDP-10/its-vault/blob/master/files/sysdoc/poor.mc SYSDOC;POOR MC], the tape drive was a TU40 or TU41 (probably TU40). Also, it seems from things said there that it did have its own DF10. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 17:20, 13 April 2021 (CEST)
+
: Well, I looked in [https://github.com/PDP-10/its-vault/tree/master/files/moon 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! [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 18:12, 12 June 2021 (CEST)
  
: I have tried to summarize changes to CONFIG > for all machines over the years: https://github.com/PDP-10/its/issues/1168
+
:: I find that text in RG; KLPAG 18 dated 1975-07-15There are no other KLPAG versions in the backups, but there is an XGP file which I would assume is what you have in hardcopyThis 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. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 21:23, 12 June 2021 (CEST)
: Most of what you wrote seems spot on.  I can see there was a third T-300Yes, initially the DL10 front end was just a normal DC76 handling terminals. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 17:29, 12 April 2021 (CEST)
 
  
: Where is CONFIG > now? I looked here: https://github.com/PDP-10/its/tree/master/src/system here but it doesn't seem to be there. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 17:47, 12 April 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 [https://github.com/PDP-10/its-vault/blob/master/files/moon/micro.48 MOON;MICRO >] in 'its-vault'; it's not in 'its'. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:06, 13 June 2021 (CEST)
 +
:: Oh, the [https://github.com/PDP-10/its/blob/master/src/kshack/micro.117 KS one] was a modified version of the KL one [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:13, 13 June 2021 (CEST)
  
:: Many (all maybe?) versions are here: https://github.com/PDP-10/its-vault/tree/master/files/system/ [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 17:51, 12 April 2021 (CEST)
+
::: The KL10 MICRO is in SYSENG; any copy in MOON is probably work in progress. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 20:40, 13 June 2021 (CEST)
  
:: Ah, thanks.
+
:: 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 [https://opost.com/tenex/hbook.html Origins and Development of TOPS-20]), it provides an interesting view of it.
:: It looks like it doesn't say what kind of tape drive it was; it was a TU77, or something. If we ever get good photos of the machine, we should be able to tell (also, if there was a second DF10).
+
:: 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! [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:38, 16 January 2023 (CET)
:: I wonder why they did the whole DL10 thing just to get a few more serial lines. Maybe the DTE20 one was maxed out?
 
:: I see from the IOELEV/KLDCP source that the DTE20 -11 had a TU56; I vaguely remember that. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 18:53, 12 April 2021 (CEST)
 
  
::: I only know of one photo of MC when at MIT, the one on the [[ITS]] page, but there's no tape drive.  I saw MC in LCM storage, but I don't remember any peripherals. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 18:59, 12 April 2021 (CEST)
+
== Knight TV keyboard ==
  
:: [[:File:MC-KL Layout.jpg|Here]] is the layout of the machine, as best as I can remember it. The tape drive would not have been in the field of that image.
+
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.) [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 21:39, 1 January 2022 (CET)
:: A couple of notes. I'm sure of the CPU, MF10's, <s>Fabridrek</s> Ampex, RP04's, Tape, Trident and DL10 locations. The RH10/DF10 were ''I think'' in that corner, but I'm not positive, and I don't remember which order. Ditto for the order of the DL10 and its PDP-11 (which I think was an 11/40). I ''think'' the TM10 was there somewhere, but I'm kind of guessing; I don't think it was next to the drive, but it might have been. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 20:34, 12 April 2021 (CEST)
 
  
:: Ah, looking at that image, it's taken from just in front of the Ampex; you can see a corner of it. The RH10/DF10 are indeed in that corner; you can also see a bit of the RP04's behind them. The tape drive would be behind the camera; too bad we don't have a shot in that direction. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 21:51, 12 April 2021 (CEST)
+
: 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. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 21:57, 1 January 2022 (CET)
  
Very interesting, thanks!  I suggest copying your comment to [[File_talk:Mit-mc.jpg]]. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 20:58, 12 April 2021 (CEST)
+
: Work on getting the keycap symbols: https://raw.githubusercontent.com/larsbrinkhoff/Knight_and_SAIL_keyboard/lars/knight/svg/Knight-Keyboard-KeycapTrace_STROKES_PRESERVED.svg
 +
: [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 06:57, 26 October 2022 (CEST)
  
: Probably [[Talk:Incompatible Timesharing System]] would be better. I'll move the whole thread there. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 21:51, 12 April 2021 (CEST)
+
== Complete ITS 1.5 Reference Manual ==
  
:: Done. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 14:05, 13 April 2021 (CEST)
+
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
  
I wish we could confirm what the new memory was; it was ''probably'' an Ampex ARM10, since other KL10's are reported to have had those (e.g. [http://www.shiresoft.com/pdp-11/kl-10/ Guy S's machine]); maybe some mail log file, or Moon's ITS  changes log file, will mention it. Ah, there's an image of one the CHM has/had [https://archive.computerhistory.org/resources/physical-object/ampex/102691296.lg.jpg here] (inside [https://archive.computerhistory.org/resources/physical-object/ampex/102691296.1.lg.jpg here]), and that is indeed what was added to MC. (Well, I don't remember the inside well, but the outside matches.)
+
: 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. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 08:23, 8 June 2023 (CEST)
  
Every so often a module (CHM image [https://archive.computerhistory.org/resources/physical-object/ampex/102618529.lg.jpg here]; they were huge, physically) would fail, and we'd have to take the machine out of 4-way interleave; same thing when an MF10 failed. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 14:05, 13 April 2021 (CEST)
+
==System functionality==
  
:: Also, in [https://github.com/PDP-10/its-vault/blob/master/files/sysdoc/poor.mc SYSDOC;POOR MC], MOON (who knew more about MC than any other human) refers  to "MH10 C". So maybe my memory flaked (again, sigh) and they're actually MH10's, not MF10's. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 17:20, 13 April 2021 (CEST)
+
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? [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 02:51, 27 July 2023 (CEST)
:: But [https://github.com/PDP-10/its-vault/blob/master/files/sysdoc/kl10.flklor SYSDOC;KL10 FLKLOR] refers to MF10's. So maybe they were upgraded at some point? [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 17:32, 13 April 2021 (CEST)
 
  
: There is a lot about failing Ampex ARM10 modules in Moon's files, so I would assume that confirms your recollection.  I don't have any good, clear information about which ITS machines had what kind of memory, but Ampex is generally mentioned a lotGiven a lot of time, one could probably dig out an uneven coverage of part numbers, serial numbers, prices, dates, etc. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 14:29, 13 April 2021 (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 thatSince 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.
 +
: [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 07:24, 27 July 2023 (CEST)
  
== DM/ML configuration ==
+
:: '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. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:32, 27 July 2023 (CEST)
  
It shouldn't be too hard to figure out DM and ML's configuration; between my (and if needed, other people's) memory, CONFIG >, and similar sources.
+
::: 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.
 +
::: [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 15:01, 27 July 2023 (CEST)
  
Both had [[RP10]]'s with a [[DF10]]. ML had [[RP03]]'s (I think; definitely RP0x's), but I forget how many; DM I vaguely recall also had DEC disks. I recall that ML's had a slanted top front panel, which I think made them RP03's; those on DM had vertical panels, I think, which I think were [[RP02]]'s. Per [https://github.com/PDP-10/its-vault/blob/master/files/sysdoc/poor.mc SYSDOC; POOR MC], both DM and ML (and also AI) had TU20 tape drives; one had a [[TM10]]A (no DF10, just an I/O bus connection), and one a TM10B (with DF10, but I don't know if the DF10 was shared with the RP10, or a separate one - a DF10 could be shared between several controllers); CONFIG > reveals that it was DM that had the DMA one.
+
== Internals documentation creation project? ==
  
For main memory, ML I ''think'' had 4 [[MD10]]s, @128KW each. DM I'm pretty sure had 2 MD10's, and a collection of other DEC early memory boxes ([[MA10]]'s and/or [[MB10]]'s) totalling 256KW. I can ask Jack Haverty (and old DM hacker) if he remembers the details. Tim Anderson might remember too. Both machines has [[Systems Concepts DM-10]] mapping boxes, of course.
+
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').
  
So that's a good start. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 02:32, 14 April 2021 (CEST)
+
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.)
  
: CONFIG says RP02 for both DM and ML, but ITS, SALV, and DSKDMP checks the type at run time and supports both RP02 and RP03.
+
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]]? [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 10:00, 10 September 2023 (CEST)
: I think the DF10 was shared between the disk and tape.  This configuration is used with the KA10 emulator running ITS.
 
: The KA10 DF10s had a special hack to make them work with 20-bit physical addresses.
 
: I have collected some notes about the evolving memory configurations: https://github.com/PDP-10/its/issues/1585
 
: Two diagrams of DM. Neither has a tape drive.
 
: https://github.com/PDP-10/its/issues/181#issuecomment-483222759
 
: https://github.com/PDP-10/its/issues/181#issuecomment-489417548
 
: [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 08:21, 14 April 2021 (CEST)
 
  
:: [http://pdp-10.trailing-edge.com/mit_emacs_170_teco_1220/01/info/mit-dm.txt.html] says DM had 3x RP02's and 3x RP03's; that sounds about right. CONFIG says ML had 7 drives, which sounds a bit high, but I suppose could (must?) be right. Ah, [https://github.com/PDP-10/its-vault/blob/master/files/_info_/shut.down SHUT DOWN] says it has 4 DEC disks and 4 (2 bays, 2-high) CalChomps (just like the ones on AI); that rings a bell, I recall the CalChomps now. (That memo also confirms DM's disks.)
+
: 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.
:: DM definitely had a tape drive; CONFIG confirms that.
+
: I don't have an outline in mind right now, so please go ahead. My recent post to its-hackers could go somewhere.
:: I think we're mostly done with these two now (although I have ignored the serial line  controller(s) for now). [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 15:36, 14 April 2021 (CEST)
+
: The title is good. Let's go with that for nowI have thought about something like "Design and Implementation of the ITS Operating System" with a cute dragon, riffing of the BSD book. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 10:51, 10 September 2023 (CEST)
  
An archived email from GSB confirms that ML had at least one MD. Since I'm pretty sure it had 4 identical memory bays, that pretty much confirms it had 4xMD's. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 14:52, 19 April 2021 (CEST)
+
== NoCrew BUG-ITS archive disappeared ==
  
== AI configuration ==
+
The NoCrew BUG-ITS archive, [http://junk.nocrew.org/pipermail/its/ 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). [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 02:39, 3 November 2023 (CET)
  
There was a long list of "fanciful hardware" (i.e. kludges) attached to the AI PDP-10.
+
: 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. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 14:05, 4 November 2023 (CET)
  
For now, I'll point to [https://github.com/larsbrinkhoff/its-archives/blob/master/ailab/ITS_Hardware_Memo_3.pdf Hardware memo 3] which says there was the 256K moby, plus a DEC 16K and an Ampex 16K.  It seems one of those 16K memories would later go somewhere else.
+
:: Sure. If anyone wants to read the messages I linked to individually (above), they are all in [https://github.com/PDP-10/its-vault/blob/master/files/sysdoc/its.obugs1 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. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 15:15, 4 November 2023 (CET)
  
: When I was around, the smaller memories were powered off, and later flushed. The machine had 512KW: the 256KW Fabridrek moby, and another 256KW unit, about which I have been racking my brains all evening trying to remember, and can't quite. Later they both (I think) went away, and HIC added the memory box that used CADR memory boards.
+
== ITS before PDP-6? ==
: One thing I'm curious about was how the memory bus worked, for more than 256KW (the vanilla KA memory bus only supported 256KW). I had assumed that the mapping box produced separate memory busses for each moby, so standard cables could be used, and the memories remain un-altered. The flaw in this theory is the DF10's; I suppose they ''could'' have been modified to use the same kludge, but...? Maybe ask RG? (He's know about the memory too.) [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 15:36, 14 April 2021 (CEST)
 
  
:: Note that AI didn't have a DF10; Systems Concepts' DC10 and DK10 had DMA access, and TM10A was IO bus only.
+
So I don't understand this recent time-line entry:
:: The DF10s were indeed modified: "MIT-ML and MIT-DM (also KA's) had 18-bit DF10's with a special kludge modification (disabled with a toggle switch for running DEC diagnostics) to take extra address bits from the complement of some high-order bits of the count. The complementation is so that with a small count (which is negative) you address the low-order memory, for compatibility." (David Moon, 1985, KS-ITS mailing list)
 
:: HW memo 2 documents the AI pager: https://github.com/larsbrinkhoff/its-archives/blob/master/ailab/ITS_Hardware_Memo_2.pdf
 
:: [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 16:05, 14 April 2021 (CEST)
 
  
: I know about the ''functionality'' of the MIT DF10, which is actually already [[DF10|described here]]. I'm trying to work out the ''low-level details'' of how the cabling, etc, actually worked. According to e.g. the [http://www.bitsavers.org/pdf/dec/pdp10/KA10/DEC-10-HIFB-D_InterfaceManual_May68.pdf PDP-10 Interface Manua] (DEC-10-HIFB-D), Chapter 7, the KA10 memory bus has only 18 bits of address. So if one has 512KW of memory ... how does one address it? I had a theory that maybe there was a separate 18-bit-address bus for each moby, but of course there are other possibilities. I'm not sure if the connector (pg. 124) has any spare pins; if so, they could be used - but would need an extra wire run from one end of the cable to the other. A better possibility is that a number of signals (A18-A22, A35) are present in positive and negative logic forms, and maybe one of the semi-duplicates could be disposed of, and the pin re-used for, say, A17.
+
1967 - First version for PDP-6 &mdash; ITS 1.0 3/19/67
: I'm about to email Jack Haverty, to ask him about DM's memory configuration; I'll ask him, maybe he knows. If not, we can ask RG, he should know. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 20:41, 14 April 2021 (CEST)
 
  
The same archived email from GSB (above) indicates that the second moby on AI was an ARM-10; all well and good but now we have to sort out all the ARM-10 variants (see [[Talk: Ampex ARM10]] for more); there are at least 3 (including this one). [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 14:52, 19 April 2021 (CEST)
+
Did ITS run on something ''else'' before the PDP-6? The [https://web.archive.org/web/20220824151311/http://web.mit.edu/6.933/www/Fall2001/AILab.pdf AI Lab History] doesn't mention anything? Perhaps the previous line:
  
== KL10 ITS ucode ==
+
* 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''?
  
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!?
+
If so, perhaps that entry would be better worded:
  
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. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 15:21, 12 June 2021 (CEST)
+
1967 - First version of ITS; ran on PDP-6 &mdash; ITS 1.0 3/19/67
  
: 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. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 17:10, 12 June 2021 (CEST)
+
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.) [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 14:28, 30 November 2023 (CET)
  
: Well, I looked in [https://github.com/PDP-10/its-vault/tree/master/files/moon 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! [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 18:12, 12 June 2021 (CEST)
+
: 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.
 +
: [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 15:09, 30 November 2023 (CET)
  
:: 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. [[User:Larsbrinkhoff|Larsbrinkhoff]] ([[User talk:Larsbrinkhoff|talk]]) 21:23, 12 June 2021 (CEST)
+
== Add a Category:ITS? ==
  
:: 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 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? [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 15:20, 12 January 2024 (CET)
:: 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 [https://github.com/PDP-10/its-vault/blob/master/files/moon/micro.48 MOON;MICRO >] in 'its-vault'; it's not in 'its'. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:06, 13 June 2021 (CEST)
 
:: Oh, the [https://github.com/PDP-10/its/blob/master/src/kshack/micro.117 KS one] was a modified version of the KL one [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:13, 13 June 2021 (CEST)
 

Latest revision as of 13:41, 5 February 2024

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)