• Stars
    star
    416
  • Rank 101,045 (Top 3 %)
  • Language
    Assembly
  • License
    GNU General Publi...
  • Created over 8 years ago
  • Updated 9 months ago

Reviews

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

Repository Details

A project to resurrect Unix on the PDP-7 from a scan of the original assembly code

CI

pdp7-unix

About

pdp7-unix is a project to resurrect Unix on the PDP-7 from scans of the original assembly code done by Norman Wilson. The scans of PDP-7 Unix are in the Unix Archive as the files 0*.pdf.

Current Status

January 2020

Unixv0 is running on a real PDP-7 at the Living Computer Museum. Youtube.

October 2019

A second notebook with missing sources has been discovered and scanned. New files are being added to the scans directory as they are typed in!

March 2016

We've written an assembler, a user-mode simulator and commented several source files. We now have these utilities running: as, cat, chmod, chown, chrm, cp, date, ln, ls, mv, stat. We have a working shell with some functionality missing. We have a working filesystem and we can now boot the kernel, launch init, login, get to a shell prompt and run the utilities.

Things to do: bring the system fully up on a PDP-7 system, fix any bugs and document everything. We have a real PDP-7 and SimH as target platforms.

Building pdp7-unix

pdp7-unix requires Perl5 to build.

To compile it:

make

Running pdp7-unix

You will need simh 4.0 to run pdp7-unix. You can get the source code here. On 64-bit systems, you may need to set the C compiler's optimisation level to -O1.

Running from source

To run pdp-unix from the pdp7-unix source tree, do:

make run

Press ctl-e to break out the simulator into simh

Typical Output

A typical pdp7-unix session on simh looks like:

pdp7 unixv0.simh
k
PDP-7 simulator V4.0-0 Current        git commit id: b848cb12
CPU	idle disabled
	8KW, EAE
/Users/tom/projects/pdp7-unix/build/unixv0.simh-13> att rb image.fs
RB: buffering file in memory
/Users/tom/projects/pdp7-unix/build/unixv0.simh-17> att -U g2in 12345
Listening on port 12345
PDP-7 simulator configuration

CPU	idle disabled
CLK	60Hz, devno=00
PTR	devno=01
PTP	devno=02
TTI	devno=03
TTO	devno=04
LPT	disabled
DRM	disabled
RB	devno=71
DT	disabled
G2OUT	devno=05
G2IN	devno=43-44

login: ken
password: ken
@ ls
..
dd
maksys.s
s1.s
s2.s
s3.s
s4.s
s5.s
s6.s
s7.s
s8.s
sop.s
system
sys.rc
trysys.s
@ ls system
..
adm
apr
as
b
cas
cat
check
chmod
chown
chrm
cp
date
db
dd
display
ds
dskres
dsksav
dsw
dttt
ed
init
keyboard
link
list
ln
ls
moo
mv
nm
od
p
password
pptin
pptout
rm
rn
roff
salv
sh
stat
tm
ttyin
ttyout
ttt
un
@ 

Source Tree

The code in the original scans are (c) Micro Focus who own the rights to the Unix source code. Everything that didn't come from the scanned files is GPLv3.

  • /build is an area to build the kernel & filesystem and run them
  • /man holds man pages
  • /misc holds miscellaneous notes and information
  • /scans holds the unmodified OCR versions of the scanned files
  • /src/cmd holds the modified source code of the user-mode programs
  • /src/sys holds the modified source code of the kernel
  • /src/other holds PDP-7 source code which did not come from the scanned files
  • /tools holds the source for the tools written to assist the project

License

pdp7-unix is under the GPLv3

Mailing List

We have a mailing list for those people actively involved in the restoration effort. Send e-mail to Warren Toomey (DoctorWkt) if you are keen to help out.

More Repositories

1

acwj

A Compiler Writing Journey
C
9,949
star
2

CSCvon8

A crazy small 8-bit CPU built with only seventeen 7400-series chips.
Perl
101
star
3

unix-jun72

The working source code to PDP-11 Unix from 1972.
Assembly
88
star
4

SubC

A Tour Through the SubC Compiler
C
81
star
5

CSCv2

Version 2 of my Crazy Small CPU
Perl
62
star
6

xv6-freebsd

Ths project adds a FreeBSD libc, other libs and a runtime to the xv6 kernel
C
60
star
7

4bsd-uucp

Simulate a UUCP network with 4.3BSD SimH images
Lex
31
star
8

fbcc

Fabrice Bellard's fbcc C Compiler
C
31
star
9

Apout

A user-mode simulator for various version of PDP-11 Unix
C
24
star
10

h-compiler

This is a compiler for a high-level language that targets the PDP-7 Unix system,
Perl
23
star
11

ULX3S-Blinky

A blinky project for the ULX3S v3.0.3 FPGA board
Verilog
14
star
12

smallc

Derivative of Ron Cain's Small C Compiler
C
10
star
13

TTL_TicTacToe

An implementation of Tic Tac Toe in TTL logic
Perl
10
star
14

2FISC

FISC2: A TTL CPU with Some 16-bit Capabilities
Perl
9
star
15

Wish

This is an interactive Unix shell, originally written for the Minix system
C
7
star
16

MMU09

A 6809 single-board computer with an MMU
C
6
star
17

ZipTutorials

Toy projects I've created as exercises for the ZipCPU tutorials
Verilog
6
star
18

Verilog_tic-tac-toe

An implementation of "Tic Tac Toe" in Verilog. FPGA versus user, FPGA knows how to win!
Verilog
6
star
19

Nine-E

A Unix-like environment on an 8-bit 6809 single-board computer
C
6
star
20

unix_timesharing_paper

This repository tracks the changes the the "Unix Timesharing System" paper written by Dennis Ritchie and Ken Thompson.
6
star
21

FISC

An 8-bit TTL CPU with a Stack Pointer
Perl
5
star
22

build-ubuntu-vm

Automated Unattended Builds of Various Ubuntu VM Images
Shell
5
star
23

SimpleCPU

Verilog
4
star
24

tlearn

Interactive Linux tool to learn command-line skills
Shell
2
star
25

SwiVM

An implementation of the Swieros VM in Verilog
C
2
star
26

Fuzemsys

FUZIX Compiler Kit Emulators with Syscall Support
C
1
star
27

search_backups

Small scripts to build a catalog on backups and search the catalog
Perl
1
star