• Stars
    star
    791
  • Rank 57,558 (Top 2 %)
  • Language
    C
  • Created over 14 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mirror of the Restoration of 1st Edition UNIX kernel sources from pdf document.

Welcome to the 1st Edition UNIX repository. Here you will find the kernel source code and userland binaries which will allow you to run 1e UNIX on a PDP-11 simulator.

Contents

Build Instructions

Unless otherwise noted, file and directory names refer to this repository.

  1. Download the source code for the Simh simulator from here: http://simh.trailing-edge.com/. Make sure that you download version 3.8-0 or later; earlier versions need patches to work.

  2. Unpack Simh somewhere. Make the BIN/ directory in Simh at the top level. Do make pdp11 to make the pdp11 simulator in the BIN/ directory. Copy the BIN/pdp11 executable into the tools/ directory.

  3. Return to the 1st Edition top-level directory. Do a make. This will do several things. It will build tools/mkfs, tools/ml and tools/apout/apout. These tools are required to build the filesystems for 1e UNIX, and the kernel. It will create kernel sources with some necessary patches, assemble the kernel and build a bootable Simh memory image which is installed into the images directory. Finally, the make will build the rf0.dsk, rk0.dsk and tape images and install these in the images directory. You can also do a "make clean" to clean out the images/ and build/ directories. A "make clobber" will clean out the images/, build/ and tools/ directories.

Running 1st Edition UNIX

  1. Run ./simh.cfg which starts the pdp11 simulator. You should see this:

    PDP-11 simulator V3.8-0 ./simh2.cfg> #!tools/pdp11 Unknown command Disabling CR Disabling XQ RF: buffering file in memory TC0: 16b format, buffering file in memory Listening on port 5555 (socket 7)

    You will receive a login: prompt:

  2. Type in root followed by . You should receive a # prompt.

  3. Type in an ls -l command. You should see something like this:

    total 6 43 sdrwr- 2 root 620 Jan 1 00:00:00 bin 42 sdrwr- 2 root 250 Jan 1 00:00:00 dev 104 sdrwr- 2 root 110 Jan 1 00:00:00 etc 114 sdrwr- 2 root 50 Jan 1 00:00:00 tmp 41 sdrwr- 7 root 70 Jan 1 00:00:00 usr

  4. To change directories, use chdir, e.g. chdir /usr. The only editor installed is `ed'. You can find an ed tutorial in notes/edtut.txt.

  5. To log in multiple times, telnet to localhost port 5555. The system is configured to allow 8 remote logins.

  6. To shut the system down, enter ctrl-E to stop the simulator, and q to quit. You do not need to sync the system before shutdown.

Documentation

The manuals for 1st Edition UNIX are available here: https://www.bell-labs.com/usr/dmr/www/1stEdman.html, and http://www.bitsavers.org/pdf/bellLabs/unix/UNIX_ProgrammersManual_Nov71.pdf

Some documentation of the internals of the 1st Edition UNIX are available here: http://www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf

Details of the PDP-11/20 architecture and its peripherals can be found at: http://www.bitsavers.org/pdf/dec/pdp11/handbooks/PDP1120_Handbook_1972.pdf http://www.bitsavers.org/pdf/dec/pdp11/handbooks/PDP11_PeripheralsHbk_1972.pdf

The C compiler from 2nd Edition UNIX is also installed and works, but the language is a very early dialect of C. The closest reference to the language at this point in time is this, but it is probably 2 years too late: https://www.bell-labs.com/usr/dmr/www/cman74.pdf

The userland binaries come from a period somewhere between the 1st and 2nd Edition of UNIX. You may find the 2e manuals useful too: http://www.bitsavers.org/pdf/bellLabs/unix/Unix_2nd_Edition_Manual_Jun72.pdf

Repository Layout

pages/ - OCR'd pages from the PreliminaryUnixImplementation document rebuilt/ - kernel source rebuilt from the OCR'd pages, as asm files patches/ - patches to rebuilt/ files to get kernel to run fs/ - userland binaries and files, used to make rf0.dsk and rk0.dsk src/ - source code for userland: there is not much available tools/ - tools and scripts to build the kernel and filesystem build/ - build area: patched kernel files, patched filesystems images/ - final disk and tape images to be used by the Simh simulator misc/ - misc. files, e.g. the Simh patch for KE11A support notes/ - notes on the work done to get 1e UNIX to run again diffs/ - Differences between pages/* and the high quality OCR done by James Markevitch. Includes headers and footers.

More Repositories

1

sub

a delicious way to organize programs
Shell
1,744
star
2

m

A Test::Unit runner that can run tests by line number.
Ruby
377
star
3

motion-layout

A nice way to use iOS6+ autolayout in your RubyMotion app. Use ASCII-art inspired format strings to build your app's layout!
Ruby
215
star
4

hola

example gem repo
Ruby
124
star
5

motion-settings-bundle

Create a Settings.bundle for your RubyMotion app
Ruby
110
star
6

gitready

learn git one commit at a time. updates weekly or when great tips are found
98
star
7

vim-fu

Combining the awesomeness of various vim plugins in one easy configurable unit.
Vim Script
38
star
8

shp

A new UI for git. This doesn't work yet.
Rust
28
star
9

pubsub

easy example of redis pubsub
Ruby
27
star
10

qrush.github.com

coding with spice
CSS
26
star
11

skyway

Official news, tour, stats and community site for Aqueous
Ruby
22
star
12

rebase

A weekly update about GitHub!
Ruby
15
star
13

react-native-wkwebview

WKWebView for React Native (+ a few nice things)
Objective-C
12
star
14

snake

A simple Snake game, written in Shoes.
Ruby
9
star
15

danger_danger

example rails 3.1.1 app using high_voltage for a static site
Ruby
9
star
16

gsay

SPEAK LIKE A GOOGLE ROBOT
Ruby
9
star
17

mon

A pokemon battle simulator
Ruby
7
star
18

kidsmash-mac

Kidsmash: 🍎
Swift
6
star
19

beardo

Co-ops are run by dirty hippies; dirty hippies have beards; therefore, this app is called beardo.
5
star
20

higo

go, on heroku!
Ruby
5
star
21

kidsmash

KID SMASH - JavaScript port of BabySmash for SE444
JavaScript
5
star
22

beesknees

a boggle clone && an experiment with redis
Ruby
4
star
23

dfat

DWARF FORTRESS ADVENTURE TIME
Ruby
4
star
24

gemwhisperer

THE GEM WHISPERER: HE SPEAKS TO GEMS
JavaScript
3
star
25

go

explorations into google's go
Go
3
star
26

archive

My twitter archive
JavaScript
3
star
27

nyruby

nyruby: the empire state's ruby group
Ruby
3
star
28

LookInside

An actual compiling sample code repo from WWDC 2014: A Look Inside Presentation Controllers
Objective-C
3
star
29

test-without-issues

2
star
30

wedding

JavaScript
2
star
31

mwnbot

Java
2
star
32

counter

a carcassonne counter
Ruby
2
star
33

df

dorf fortress.
2
star
34

ThreadMessages

Ruby
2
star
35

mwrc

sandbox/playground for my MWRC 2011 talk
Ruby
2
star
36

q-tracer

c# raytracer project for cg2
C#
1
star
37

arel-test

Ruby
1
star
38

gifs

CSS
1
star
39

ec2bootstrapper

git-svn clone of the C# EC2 bootstrapper from CodePlex
C#
1
star
40

q

Shell
1
star
41

nathanlanevsraptor

a tweetstream demo, made during BarCampBoston 6
JavaScript
1
star
42

historian-extension

1
star
43

aftest

Ruby
1
star
44

q-blizzard

another CG2 project, this time a c# particle system
C#
1
star
45

notvirus.news

CSS
1
star
46

cheeseburger

redis: data cheeseburgers!
Ruby
1
star
47

stupidrubytricks

WNYRuby December 2011 Talk
Ruby
1
star