Difference between revisions of "SITS"

From Computer History Wiki
Jump to: navigation, search
m
(Overview: Hardware problem caused flakiness.)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{Infobox OS
 +
| name = SITS
 +
| creator = [[MIT AI Lab]], Logo group
 +
| current version = 136
 +
| year introduced = 1974
 +
| type = Multi-tasking, multi-user, virtual memory
 +
| architecture = [[PDP-11]]
 +
}}
 +
 
'''SITS''' means "Small Incompatible Timesharing System".  It was a [[time-sharing]] [[operating system]] for a [[PDP-11/45]], created in the mid-1970s at [[MIT]] for running [[Logo]].
 
'''SITS''' means "Small Incompatible Timesharing System".  It was a [[time-sharing]] [[operating system]] for a [[PDP-11/45]], created in the mid-1970s at [[MIT]] for running [[Logo]].
  
Its design is vaguely reminiscent of [[Incompatible Timesharing System|ITS]], with large influences from MIT's [[PDP-1-X Time Sharing System]]. Like ITS, there is a [[main memory]]-resident [[kernel]] [[debug]]ger; SALV for managing [[disk]]s; [[TECO]] for text editing, and [[DDT]] for debugging and running user programs. [[Process]]es can be [[PCLSRing|PCLSR]]'ed just like in ITS.  From the PDP-1-X it inherited capability-based security and the concept of spheres.  It has a hierarchical tree-structured file system inspired by [[Multics]].  SITS supported [[raster]] [[display]]s similar to those used with the MIT-AI Knight TV, a few [[vector graphics|vector]] displays, and [[General Turtle]] [[Turtle Terminal 2500|2500 terminals]].  Programs can be stored in either [[PDP-11 Absolute Loader|absolute loader]] format, or [[SITS PDUMP format|pure dump]] format.
+
[[Image:SITS_and_logo.png|thumb|right|SITS and Logo]]
 +
 
 +
=== Overview ===
 +
 
 +
SITS' design is vaguely reminiscent of [[Incompatible Timesharing System|ITS]], with large influences from MIT's [[PDP-1-X Time Sharing System]]. Like ITS, there is a [[main memory]]-resident [[kernel]] [[debug]]ger; SALV for managing [[disk]]s; a [[TECO]]-like editor called TINTE for text editing, and [[DDT]] for debugging and running user programs. [[Process]]es can be [[PCLSRing|PCLSR]]'ed just like in ITS.  From the PDP-1-X it inherited capability-based security and the concept of spheres.  It has a hierarchical tree-structured file system inspired by [[Multics]].  SITS supported [[raster]] [[display]]s similar to those used with the MIT-AI Knight TV, a few [[vector graphics|vector]] displays, and [[General Turtle]] [[Turtle Terminal 2500|2500 terminals]].  Programs can be stored in either [[PDP-11 Absolute Loader|absolute loader]] format, or [[SITS PDUMP format|pure dump]] format.
  
 
The kernel debugger was written by Radia Perlman and was called RUG from the phrase "snug as a bug in a rug".  In addition to debugging, it can also read and write [[file]]s in the SITS [[file system]] which is how SITS is booted.  It can also read files from paper tapes, or from ITS through the Rubin 10-11 shared memory interface.  The default file name is DAZZEL, perhaps a nod to the [[Dazzle Dart]] game that was hosted on the same machine.
 
The kernel debugger was written by Radia Perlman and was called RUG from the phrase "snug as a bug in a rug".  In addition to debugging, it can also read and write [[file]]s in the SITS [[file system]] which is how SITS is booted.  It can also read files from paper tapes, or from ITS through the Rubin 10-11 shared memory interface.  The default file name is DAZZEL, perhaps a nod to the [[Dazzle Dart]] game that was hosted on the same machine.
Line 14: Line 27:
  
 
When the SITS PDP-11/45 was decommissioned from the Logo group, it was donated to what became the Concourse Computer Center. It did not continue running SITS due to instability problems.  Instead the computer ran [[Unix Seventh Edition|UNIX V7]], later 2[[BSD]], and was placed on the [[Chaosnet]].
 
When the SITS PDP-11/45 was decommissioned from the Logo group, it was donated to what became the Concourse Computer Center. It did not continue running SITS due to instability problems.  Instead the computer ran [[Unix Seventh Edition|UNIX V7]], later 2[[BSD]], and was placed on the [[Chaosnet]].
 +
 +
Possibly, SITS reputation for being unstable was unwarranted, and partly due to a hardware problem.  From one of the then-undergrads at CCC:
 +
 +
<blockquote>
 +
So the biggest player at CCC was Gill Pratt, who is a bigwhig with Toyota's Robotics group now.  I have said, "If a rainy day was a Unibus device, Gill could fix it."  We DID get the Logo 11/45, but never ran SITS on it.  But we know WHY SITS was so flaky.  Eventually Gill found the root cause: A mis-wired FCO that left the high bit of the Floating Point Processor floating.  Depending on the incident radio frequency interference, that line might go high and cause an illegal instruction trap, even if there was NO floating point instruction in progress!
 +
</blockquote>
 +
 +
=== Little SITS ===
 +
 +
To provide the educational market with an inexpensive computer capable of running Logo, it was ported to an [[LSI-11]] based computer called the [[General Turtle|3500]].  It was done using a system abstraction layer called the '''Little SITS''' emulator.
  
 
=== Preservation status ===
 
=== Preservation status ===
Line 27: Line 50:
 
* SITS 134 from 1978.
 
* SITS 134 from 1978.
 
* SITS 136 from 1979.
 
* SITS 136 from 1979.
* A set of disk images from May 1978 with an unknown SITS version.
+
* A set of disk images from May 1978 with SITS 122.
  
 
Unsorted files from SITS, PDP-10 Logo, and PDP-11 Logo can be found here, courtesy of Ron Lebel: https://github.com/larsbrinkhoff/mit-logo-and-sits-raw-files
 
Unsorted files from SITS, PDP-10 Logo, and PDP-11 Logo can be found here, courtesy of Ron Lebel: https://github.com/larsbrinkhoff/mit-logo-and-sits-raw-files
Line 33: Line 56:
 
=== Hardware support ===
 
=== Hardware support ===
  
This is the list of supported, or actually required hardware for SITS version 1146:
+
This is the list of required hardware for SITS version 119:
 +
 
 +
{| class="wikitable"
 +
! Device
 +
! Description
 +
! Address
 +
! Vector
 +
|-
 +
| [[KB11-A CPU]]
 +
| [[Central Processing Unit|CPU]]
 +
|
 +
|
 +
|-
 +
| [[KT11-C Memory Management Unit|KT11-C]]
 +
| [[PDP-11 Memory Management|Full MMU]]
 +
|
 +
|
 +
|-
 +
| [[Core memory]]
 +
| 108Kword
 +
| 000000-657777
 +
|
 +
|-
 +
| [[FP11-B Floating-Point Processor|FP11-B]]
 +
| Floating-Point Processor
 +
|
 +
|
 +
|-
 +
| [[KW11-P Programmable Real-Time Clock|KW11-P]]
 +
| Programmable clock
 +
| 772540-772545
 +
| 104
 +
|-
 +
| [[PC11 High-Speed Paper-Tape Reader/Punch Control|PC11]]
 +
| [[Paper tape]] reader/punch
 +
| 777550-777557
 +
| 70-74
 +
|-
 +
| [[DC11 asynchronous serial line interface|DC11]]
 +
| Asynchronous serial line interface
 +
| 774000-774007
 +
| 300-304
 +
|-
 +
| [[DH11 asynchronous serial line interface|DH11]]
 +
| Asynchronous serial line interface
 +
| 760020-760037
 +
| 340-344
 +
|-
 +
| [[RK11 disk controller|RK11]]
 +
| Moving head disk
 +
| 777400-777417
 +
| 220
 +
|}
 +
 
 +
Optional hardware:
 +
 
 +
{| class="wikitable"
 +
! Device
 +
! Description
 +
! Address
 +
! Vector
 +
|-
 +
| [[RF11 disk controller|RF11]]
 +
| [[Fixed-head disk]]
 +
| 777460-777471
 +
| 204
 +
|-
 +
| NG
 +
| Tom Knight's vector display controller
 +
| 764040-764043
 +
| 270
 +
|-
 +
|
 +
| Lebel keyboards
 +
| 764100-764107
 +
|
 +
|-
 +
| TV
 +
| Ron Lebel's raster display controller
 +
| 764140-764163
 +
|
 +
|-
 +
|
 +
| [[Frame buffer]]
 +
| 660000-757777
 +
|
 +
|-
 +
| MB11
 +
| MAR and history
 +
| 770000-770017
 +
| 364
 +
|}
 +
 
 +
List of attached terminals:
  
* [[KB11-A CPU]] with [[KT11-C Memory Management Unit]]
+
{| class="wikitable"
* 192K [[core memory]]
+
! Number
* EAE [[PDP-11 Extended Instruction Set]]
+
! Type
<!-- ??? In the -11/45, the EAE is part of the basic CPU -->
+
! Terminal
* [[FP11-B Floating-Point Processor]]
+
|-
* KW11-P programmable clock
+
| 0 || System console || Teletype
* [[PC11 High-Speed Paper-Tape Reader/Punch Control|PC11]] [[paper tape]] reader/punch
+
|-
* [[DC11 asynchronous serial line interface]]
+
| 1 || DH11, port 0 || Teletype, 300 baud
* [[DH11 asynchronous serial line interface]]
+
|-
* [[RF11 disk controller|RF11]] [[fixed-head disk]]
+
| 2-5 || DH11, port 1-4 || Teletype, 300 baud, and TK display
* [[RK11 disk controller|RK11]] moving head disk
+
|-
* Tom Knight's NG vector display controller
+
| 6-7 || DH11, port 5-6 || Modem, 300 baud
* Ron Lebel's TV raster display controller
+
|-
* Lebel keyboards
+
| 10 || DH11, port 7 || [[Turtle Terminal 2500|2500]], 2400 baud
 +
|-
 +
| 11-16 || DH11, port 8-13 || Teletype, 300 baud
 +
|-
 +
| 17 || DH11, port 14 || [[Turtle Terminal 2500|2500]], 2400 baud
 +
|-
 +
| 20 || DH11, port 15 || Teletype, 300 baud
 +
|-
 +
| 21 || DC11 || Multiplexor
 +
|-
 +
| 22-61 || TVs 0-31 || TV and Lebel keyboard
 +
|-
 +
| 62-65 || Software || Multiplexee
 +
|}
  
 
==See also==
 
==See also==
  
 +
* [[SITS tutorial]]
 
* [[Installing SITS on SIMH]]
 
* [[Installing SITS on SIMH]]
 +
* [[List of SITS system calls]]
 +
* [[SITS PDUMP format]]
 +
* [[SITS file system]]
  
 
[[Category: PDP-11 Operating Systems]]
 
[[Category: PDP-11 Operating Systems]]
 
[[Category: Non-DEC Operating Systems]]
 
[[Category: Non-DEC Operating Systems]]

Latest revision as of 21:43, 15 March 2024


SITS
Type: Multi-tasking, multi-user, virtual memory
Creator: MIT AI Lab, Logo group
Architecture: PDP-11
This Version: 136
Date Released: 1974


SITS means "Small Incompatible Timesharing System". It was a time-sharing operating system for a PDP-11/45, created in the mid-1970s at MIT for running Logo.

SITS and Logo

Overview

SITS' design is vaguely reminiscent of ITS, with large influences from MIT's PDP-1-X Time Sharing System. Like ITS, there is a main memory-resident kernel debugger; SALV for managing disks; a TECO-like editor called TINTE for text editing, and DDT for debugging and running user programs. Processes can be PCLSR'ed just like in ITS. From the PDP-1-X it inherited capability-based security and the concept of spheres. It has a hierarchical tree-structured file system inspired by Multics. SITS supported raster displays similar to those used with the MIT-AI Knight TV, a few vector displays, and General Turtle 2500 terminals. Programs can be stored in either absolute loader format, or pure dump format.

The kernel debugger was written by Radia Perlman and was called RUG from the phrase "snug as a bug in a rug". In addition to debugging, it can also read and write files in the SITS file system which is how SITS is booted. It can also read files from paper tapes, or from ITS through the Rubin 10-11 shared memory interface. The default file name is DAZZEL, perhaps a nod to the Dazzle Dart game that was hosted on the same machine.

AI memo 356 "Logo Progress Report 1973-1975" has this:

Originally Logo was implemented in assembly language on the PDP-10. In order to provide a computer system dedicated to educational use, it was adapted for the PDP-11. The first milestone in this direction was the completion in 1973-1974 of a dedicated timesharing system running 11LOGO.

The was not an entirely satisfactory solution because of the inability of the system to be self-maintaining or to run other languages or special purpose jobs (like a simulation environment or an educational real-time game). During 1974-1975, our programming staff, under the direction or R. Lebel, completed the design and implementation of a general purpose multi-language timesharing system for the PDP-11/45. The SITS timesharing system was developed to provide an environment suitable for running Logo and other PDP-11/45 programs. It incorporates a Multics-like tree structured file system including (potentially) full access control. It also provides unique capabilities for running programs as multiple process systems, rather than the more common single process approach, and the ability for each user to run many jobs simultaneously. The system include provisions for using both the older refreshed displays and our new raster displays.

When the SITS PDP-11/45 was decommissioned from the Logo group, it was donated to what became the Concourse Computer Center. It did not continue running SITS due to instability problems. Instead the computer ran UNIX V7, later 2BSD, and was placed on the Chaosnet.

Possibly, SITS reputation for being unstable was unwarranted, and partly due to a hardware problem. From one of the then-undergrads at CCC:

So the biggest player at CCC was Gill Pratt, who is a bigwhig with Toyota's Robotics group now. I have said, "If a rainy day was a Unibus device, Gill could fix it." We DID get the Logo 11/45, but never ran SITS on it. But we know WHY SITS was so flaky. Eventually Gill found the root cause: A mis-wired FCO that left the high bit of the Floating Point Processor floating. Depending on the incident radio frequency interference, that line might go high and cause an illegal instruction trap, even if there was NO floating point instruction in progress!

Little SITS

To provide the educational market with an inexpensive computer capable of running Logo, it was ported to an LSI-11 based computer called the 3500. It was done using a system abstraction layer called the Little SITS emulator.

Preservation status

Several snapshots of SITS exist on ITS backup tapes from the AI Lab PDP-10.

  • SITS 68 from 1973.
  • SITS 455 and 456 from 1974.
  • SITS version 1146 from 1975.
  • NSITS 111 and 112 from 1975. Version number reset?
  • SITS 103 from 1976.
  • SITS 117, 118, and 119 from 1977.
  • SITS 134 from 1978.
  • SITS 136 from 1979.
  • A set of disk images from May 1978 with SITS 122.

Unsorted files from SITS, PDP-10 Logo, and PDP-11 Logo can be found here, courtesy of Ron Lebel: https://github.com/larsbrinkhoff/mit-logo-and-sits-raw-files

Hardware support

This is the list of required hardware for SITS version 119:

Device Description Address Vector
KB11-A CPU CPU
KT11-C Full MMU
Core memory 108Kword 000000-657777
FP11-B Floating-Point Processor
KW11-P Programmable clock 772540-772545 104
PC11 Paper tape reader/punch 777550-777557 70-74
DC11 Asynchronous serial line interface 774000-774007 300-304
DH11 Asynchronous serial line interface 760020-760037 340-344
RK11 Moving head disk 777400-777417 220

Optional hardware:

Device Description Address Vector
RF11 Fixed-head disk 777460-777471 204
NG Tom Knight's vector display controller 764040-764043 270
Lebel keyboards 764100-764107
TV Ron Lebel's raster display controller 764140-764163
Frame buffer 660000-757777
MB11 MAR and history 770000-770017 364

List of attached terminals:

Number Type Terminal
0 System console Teletype
1 DH11, port 0 Teletype, 300 baud
2-5 DH11, port 1-4 Teletype, 300 baud, and TK display
6-7 DH11, port 5-6 Modem, 300 baud
10 DH11, port 7 2500, 2400 baud
11-16 DH11, port 8-13 Teletype, 300 baud
17 DH11, port 14 2500, 2400 baud
20 DH11, port 15 Teletype, 300 baud
21 DC11 Multiplexor
22-61 TVs 0-31 TV and Lebel keyboard
62-65 Software Multiplexee

See also