GithubHelp home page GithubHelp logo

fcccode / pdp7-unix Goto Github PK

View Code? Open in Web Editor NEW

This project forked from doctorwkt/pdp7-unix

0.0 0.0 0.0 1003 KB

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

License: GNU General Public License v3.0

Makefile 1.28% Assembly 74.31% Limbo 3.18% Coq 0.39% Perl 18.35% C 2.50%

pdp7-unix's Introduction

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

Update mid-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: finish the shell, write the missing utilities, 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 pdp7

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

Precompiled Binaries

You can also run pdp7-unix from precompiled binaries in the /binaries directory.

cd binaries/; pdp7 unixv0.simh

Typical Output

A typical pdp7-unix session on simh looks like:

pdp7 unixv0.simh

PDP-7 simulator V4.0-0 Beta        git commit id: e153b7f2
CPU	idle disabled
	8192W, EAE
RB: buffering file in memory
PDP-7 simulator configuration

CPU	idle disabled
CLK	60Hz, devno=00
PTR	devno=01
PTP	devno=02
TTI	devno=03
TTO	devno=04
LPT	devno=65-66
DRM	disabled
RB	devno=71
DT	devno=75-76, 8 units

login: ken
password: ken
@ ln dd ken .
@ ls
dd      
system  
hello   
.       
@ ls system
dd      
ttyin   
keyboard
pptin   
ttyout  
display 
pptout  
as      
cat     
chmod   
chown   
chrm    
cp      
date    
ds      
ed      
init    
ln      
ls      
mv      
password
sh      
stat    
@ cat hello
Hello, world
@ 

Source Tree

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

  • /binaries holds pre-build boot and filesystem binaries for users who wish to run pdp7-unix without building it.
  • /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.

Travis Status

pdp7-unix's People

Contributors

philbudne avatar teverett avatar rswier avatar doctorwkt avatar decuser avatar livingcomputermuseum avatar dspinellis avatar neochen1024 avatar nigwil avatar fragglet avatar minux avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.