Difference between revisions of "SITS"
(Also 2500 terminals.) |
(→Overview: Hardware problem caused flakiness.) |
||
(14 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]]. | ||
− | + | [[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 15: | Line 28: | ||
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 29: | 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 | + | * 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 35: | Line 56: | ||
=== Hardware support === | === Hardware support === | ||
− | This is the list of | + | 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: | ||
− | + | {| class="wikitable" | |
− | + | ! 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 || [[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.
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 |