ITS, the Incompatible Timesharing System, is an operating system for the PDP-10 computer family. It was created by hackers at MIT in the 1960s. The MIT site was shut down in 1990, but enthusiasts continue to operate ITS systems to this day.
Some notable ITS features:
- Hosted the first versions of Emacs, Zork, Macsyma, Maclisp, Scheme, and multi-player Maze War
- Virtual memory
- User-space device drivers
- Networking: TCP/IP, ARPAnet, Chaosnet
- Transparent network file system
- Terminal-independent text output
- Graphical workstations
There is a mailing list for discussion about ITS. Go to http://its.victor.se/mailman/listinfo/its-hackers_its.victor.se for more information.
This repository contains source code, tools, and scripts to build an ITS system from scratch.
The goals are:
-
To provide an automated build from start to end. No user intervention is necessary.
-
To check which programs have source code, and which programs are missing source code.
-
To ensure that we know how to build all programs.
-
To update programs with the latest bug fixes and enhancements.
-
To be able to set configurable options across the whole system, such as host name, IP address, hardware devices.
The build currently runs on the SIMH and KLH10 emulators. Of course, we'd be delighted to test this on a real KS10.
To build ITS with this repository, you need some tools installed:
make, C compiler, and expect. For KA10, you also need SDL or SDL2 for
the Type 340 display. Ensure all submodules are checked out, and then
type make EMULATOR=simh
, make EMULATOR=pdp10-ka
, make EMULATOR=pdp10-kl
, or make EMULATOR=klh10
. This will leave built
files in the out
directory, one of which is a disk image with ITS
installed.
To start ITS, type ./start
. If you see KLH10#
, type go
and
Enter. If you see the DSKDMP
prompt, type its
, press Enter, and
then ESC g
. If you use the pdp10-kl
emulator there is no prompt
and you need to type Esc L ITS
, press Enter, and then ESC g
.
Eventually, you will see SYSTEM JOB USING THIS CONSOLE
. You are now
ready to log in, so type Control-Z. See doc/DDT.md for
a list of useful commands.
To shut down ITS, type :lock
and then 5down
. Log yourself out to
avoid the 5 minute grace period: type :logout
. When ITS writes
SHUTDOWN COMPLETE
, it's safe to stop the emulator.
ITS can optionally use some additional peripheral devices. To attach
a simulated GT40 graphics terminal, type ./start gt40
. If you run
the KA10 emulator, you can use the Knight TV raster display by typing
./start tv11 tvcon
. On a TV, type F1 instead of Control-Z.
To install your personal user files, add a subdirectory under user
with your files inside. They will be copied to ITS. The directory
name is limited to six characters, and file names must have two
six-character parts separated by a period.
Here is an overview of the repository:
- bin - PDP-10 binary files necessary to bootstrap the system.
- build - build scripts.
- conf - configuration for building ITS.
- doc - documentation, most of which appear in the INFO system.
- src - source code for ITS and all programs.
- tools - build tools.
- out - build output.
- user - optional user files installed in ITS.
See the doc
subdirectory for documentation.
There are some short introductions for beginners:
- How to create a new user
- DDT cheat sheet for Unix users
- Basic editing with EMACS
- TECO survival guide
- DDT debugging newbie guide
- Hello MIDAS
- Hello Maclisp
- Introduction to Muddle
- DUMP and itstar
- Games
- Printing
- Assembling ITS
- Com link mode
- Logo
- PDP-6
- Networking
A list of known ITS machines.
How ITS is built.
Some major applications:
- Adventure, game
- C10, C compiler
- DDT, debugger
- Emacs, editor
- Logo, interpreter
- Mac Hack VI and Tech II, chess programs
- Maclisp, interpreter and compiler
- Muddle, interpreter
- Macsyma, symbolic math
- Maze War, game
- Midas, assembler
- Muscom and musrun, for playing music
- PDP-11 simulator
- Scheme, interpreter
- Spacewar!, game
- Stanford University Drawing System
- TECO, editor
- TOPS-10 and WAITS emulator
There is a detailed list of all installed programs.