Skip to content

felipenlunkes/run-ancient-unix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Run ancient UNIX on modern hardware

The contents of this repository allow older versions of UNIX (ancient UNIX) to run easily on modern Unix-like systems (Linux, FreeBSD, macOS, among others).

At this time, you can run the following versions of UNIX:



License, Credits and Copyright

First of all, credits and acknowledgment for material available in this repository that is not my own (or has been modified by me based on previous work).

  • The UNIX versions available in this repository have been released as open source under the Caldera license available in this repository. Please read the document carefully for concrete information about your rights and obligations when using the software.
    • Note that various components within the system images may have been made available under other license conditions. Pay attention to these components. A clear example is version 2.11BSD UNIX, which features code covered by the Caldera license made available, in addition to code released under the BSD license. Source files available in the images show the license and due copyright. Check this data before reuse.
    • The UNIX images available in this repository were obtained from the w11 project (which uses these images for other purposes). You can get them directly here, as well as more information about the project, images, licenses and other data.
  • The scripts used to simulate the systems using SIMH for v5 and v7 UNIX were obtained from a w11 project repository, which can be accessed here. The original scripts are available under license GLP v3 or later. Modifications in these files were made by me, to fit the purpose of this repository. These modifications are restricted to the same license as the original script.
    • In addition, the general script for configuring the execution environment of versions v5 and v7 was obtained from the project, authored by Walter F.J. Mueller. You can get the original script here. The original script are available under license GLP v3 or later. Modifications in these files were made by me, to fit the purpose of this repository. These modifications are restricted to the same license as the original script.
  • The port of Version 7 UNIX to the x86 architecture was performed by Robert Nordier. These modifications are released under the simplified BSD license. For more information on all aspects of the distribution, read this file.
  • All my contributions and modifications (except for material that requires redistribution under the same license, such as the running scripts) are available in this repository under the BSD-3-Clause license.


Running UNIX

Section 1

Requeriments

You will need the following tools and utilities to run the available UNIX versions:

GNU_Bash git wget Python qemu SIMH

First of all, you must have the PDP-11 Simulator (SIMH), qemu, GNU bash, Python, wget and git installed on your device. If you already have them installed, skip to section 2.

To install on Debian, Ubuntu, Pop!_OS and derivatives, use:

sudo apt install simh qemu qemu-system-i386 git wget python3 python3-pip python3-tk

To install on Fedora and derivatives, use:

sudo dnf install simh qemu qemu-system-i386 git wget python3 python3-pip python3-tkinter

To install on FreeBSD, use (for FreeBSD, installing GNU bash is also required. This shell is not normally installed in a default installation. Installation of GNU bash is not required on Linux systems, where bash is already installed by default):

su root # <= Enter your password to login as root user
pkg install -q -y simh bash qemu git wget python3 py39-pip
ln -s /usr/local/bin/pip-3.9 /usr/local/bin/pip
pip install --upgrade pip

To install on NetBSD, use (for NetBSD, installing GNU bash is also required. This shell is not normally installed in a default installation. Installation of GNU bash is not required on Linux systems, where bash is already installed by default):

su root # <= Enter your password to login as root user
pkgin install simh bash qemu git wget python3 py39-pip
ln -s /usr/local/bin/pip-3.9 /usr/local/bin/pip
pip install --upgrade pip

To install on OpenBSD, use (for OpenBSD, installing GNU bash is also required. This shell is not normally installed in a default installation. Installation of GNU bash is not required on Linux systems, where bash is already installed by default):

su root # <= Enter your password to login as root user
pkg_add simh bash qemu git wget python3 py39-pip
ln -s /usr/local/bin/pip-3.9 /usr/local/bin/pip
pip install --upgrade pip

After installation, proceed to section 2.


Section 2

You must clone this repository to your computer. For that, use:

git clone https://github.com/felipenlunkes/run-ancient-unix
cd run-ancient-unix

After cloning the repository with the configuration files, you must populate the directories of each UNIX version with their respective image files. For that, go to the next section.


Section 3

Now, you have to run the available run.sh script. For that, use:

chmod +x run.sh
./run.sh

First, you have to run the script and select the option to install system images. You can also use the Python frontend to run the script. This is the easiest and simplest way to run script functions. To run this frontend and not rely on the command line, go to section 5. To continue the steps using the terminal, go to section 4.


Section 4

You will see the following screen:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 

In this case, you should select option 7, which will install the system images. After pressing 7, press ENTER to make your choice effective. Wait for the process of obtaining, extracting, configuring and installing the images.

After the installation is complete, you must run run.sh again to start a UNIX version.

When running the script, you will be asked to choose one of the available UNIX versions. After typing only the number relative to the choice, press ENTER to make your decision effective. Then wait for the desired version to run.

Now, you need to know peculiarities in the execution of each version of the system. For this, go to section 6.


Section 5

You need to start running the Python frontend that will manage the configuration and running of UNIX on your computer. First, you must install the TKinter Python package on your computer. For that, use:

pip install tk

After that, you can press the RAU.py script with the right button of your mouse and select the option of Run as program or start the script from the terminal, using:

python3 RAU.py

WARNING! The frontend is currently only compatible with the GNOME graphical environment (Linux and BSD systems). You can manually replace the gnome-terminal calls with konsole or another desired terminal emulator. Feel free to submit a pull request with any improvements or changes to the frontend.

After running the program, you will see the following screen:

On first run, you must install the UNIX disk images locally on your computer. Prior to this operation, you will NOT be able to run UNIX. To do so, click on the Install UNIX system images button.

After downloading and installing the disk images, you are able to run UNIX. To do so, select the desired UNIX version in the Running options section of the frontend screen.

Go to the next section for more information about the specifics of running each version of UNIX available. Remember that when using the Python frontend, the command line selection screen, as shown in the next section, will not be displayed. However, the manual options and settings presented in the next section (after the selection screen, which will not appear) are still required to run each version of UNIX.


Section 6

Select the desired UNIX version option below for details on how to start and operate the system. Each version of UNIX has different boot procedures. Pay attention to each particularity.

Particularities for Version 1 UNIX

Particularities for Version 1 UNIX

After the start of execution after selecting v1 version, you will see a screen like below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 1

PDP-11 simulator V3.8-1
Disabling CR
Disabling XQ
RF: buffering file in memory
TC0: 16b format, buffering file in memory

:login: 

Just type root, in lower case, and press ENTER. You will immediately be taken to the UNIX v1 shell.

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 1

PDP-11 simulator V3.8-1
Disabling CR
Disabling XQ
RF: buffering file in memory
TC0: 16b format, buffering file in memory

:login: root
root
# ls
bin
dev
etc
tmp
usr
# 

To end the simulation, press CTRL-E followed by CTRL-C or by typing quit when the simh> prompt appears on the screen.

Particularities for Version 5 UNIX

Particularities for Version 5 UNIX

After the start of execution after selecting v5 version, you will see a screen like below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 2

PDP-11 simulator V3.8-1
Disabling XQ
Logging to file "simh_dl0.log"
Listening on port 5671 (socket 5)
Listening on port 5672 (socket 7)
Modem control activated
@

To start UNIX, you must type unix and press ENTER after the @ character, without spaces and in lower case. After pressing ENTER, UNIX will load and you will be taken to a login screen as below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 2

PDP-11 simulator V3.8-1
Disabling XQ
Logging to file "simh_dl0.log"
Listening on port 5671 (socket 5)
Listening on port 5672 (socket 7)
Modem control activated
@unix

login:

You must then type root and press ENTER. You will then be taken to the shell and be able to use the system. See below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 2

PDP-11 simulator V3.8-1
Disabling XQ
Logging to file "simh_dl0.log"
Listening on port 5671 (socket 5)
Listening on port 5672 (socket 7)
Modem control activated
@unix

login: root
# 

To end the simulation, press CTRL-E followed by CTRL-C or by typing quit when the simh> prompt appears on the screen.

Particularities for Version 7 UNIX

Particularities for Version 7 UNIX

After the start of execution after selecting v7 version, you will see a screen like below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 3

PDP-11 simulator V3.8-1
Disabling XQ
Logging to file "simh_dl0.log"
Listening on port 5671 (socket 5)
Listening on port 5672 (socket 7)
Modem control activated

After seeing the screen above, you must type boot in lower case and press ENTER. You will see the screen below after that:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 3

PDP-11 simulator V3.8-1
Disabling XQ
Logging to file "simh_dl0.log"
Listening on port 5671 (socket 5)
Listening on port 5672 (socket 7)
Modem control activated
boot
Boot
:

After the appearance of :, you must type, without spaces and in lower case, the command hp(0,0)unix and press ENTER, as below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 3

PDP-11 simulator V3.8-1
Disabling XQ
Logging to file "simh_dl0.log"
Listening on port 5671 (socket 5)
Listening on port 5672 (socket 7)
Modem control activated
boot
Boot
: hp(0,0)unix
mem = 2020544
# 

Pressing ENTER will immediately take you to the UNIX v7 shell.

  • To enter multiuser mode and access all system functions, press CTRL-D. Afterwards, provide root as username and password. You will again be taken to the UNIX v7 shell, as below:
You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 3

PDP-11 simulator V3.8-1
Disabling XQ
Logging to file "simh_dl0.log"
Listening on port 5671 (socket 5)
Listening on port 5672 (socket 7)
Modem control activated
boot
Boot
: hp(0,0)unix
mem = 2020544
# RESTRICTED RIGHTS: USE, DUPLICATION, OR DISCLOSURE
IS SUBJECT TO RESTRICTIONS STATED IN YOUR CONTRACT WITH
WESTERN ELECTRIC COMPANY, INC.
WED DEC 31 19:05:14 EST 1969

login: root
Password:
You have mail.
# 

To end the simulation, press CTRL-E followed by CTRL-C or by typing quit when the simh> prompt appears on the screen.

Particularities for 2.11BSD UNIX

Particularities for 2.11BSD UNIX

After the start of execution after selecting 2.11BSD UNIX version, you will see a screen like below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 4

PDP-11 simulator V3.8-1
Listening on port 4000 (socket 4)
Modem control activated
Auto disconnect activated
211bsd.simh> attach xq eth0
File open error
Disabling CR

73Boot from ra(0,0,0) at 0172150
: 

You can just press ENTER when you see the screen to start UNIX. Afterwards, you will see the following screen:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 4

PDP-11 simulator V3.8-1
Listening on port 4000 (socket 4)
Modem control activated
Auto disconnect activated
211bsd.simh> attach xq eth0
File open error
Disabling CR

73Boot from ra(0,0,0) at 0172150
: 
: ra(0,0,0)unix
Boot: bootdev=02400 bootcsr=0172150

2.11 BSD UNIX #1: Fri Jun 9 08:42:54 PDT 1995
    root@SSU-64EN137:/usr/src/sys/SYSTEM

ra0: Ver 3 mod 3
ra0: RD54  size=311200
attaching qe0 csr 174440
qe0: DEC DELQA addr 00:50:56:01:01:01
attaching lo0

phys mem  = 3145728
avail mem = 1737664
user mem  = 307200

June  9 12:21:04 init: configure system

dz 0 csr 160100 vector 300 attached
ra 0 csr 172150 vector 154 vectorset attached
ts 0 csr 172520 vector 224 attached
erase, kill ^U, intr ^C
# 

The # symbol indicates that the shell is ready to receive commands. Try using uname -a or ls to get started.

  • To enter multiuser mode and access all system functions, press CTRL-D. Afterwards, provide root as username and password. You will again be taken to the 2.11BSD shell.

To end the simulation, press CTRL-E followed by CTRL-C or by typing quit when the simh> prompt appears on the screen.

Particularities for Version 7 UNIX for x86

Particularities for Version 7 UNIX for x86

After the start of execution after selecting v7 UNIX for x86, you will see a screen like below:

You must select, from the list below, which edition/version of
UNIX you want to start. The available options are:

1) v1 UNIX
2) v5 UNIX
3) v7 UNIX
4) 2.11BSD UNIX
5) v7 UNIX for x86
6) Clear temporary files
7) Install the disk images for UNIX

Select a number and press <ENTER>: 5

Upon selection, qemu will automatically start with the Version 7 UNIX for x86 disk image. After the initial boot, you will see the following screen:

Then press ENTER to load and start UNIX. After pressing ENTER, you will see the following screen, and you will be able to interact with the Version 7 UNIX shell:

  • To enter multiuser mode and access all system functions, press CTRL-D. Afterwards, provide root as username and password as password. You will again be taken to the Version 7 UNIX shell.

When you are finished running the system on the PDP-11 simulator, you can clean up temporary and log files that may have been created by SIMH. To do so, go to section 7.


Section 7

The simulator can create temporary and log files to simulate peripheral devices that would be connected to a PDP-11 minicomputer. These files typically have .log and .dat extensions. You can remove these files using the run.sh script and selecting the cleanup temporary files option, as well as manually going into each system directory and entering, in your system shell:

cd UNIX_VERSION_DIRECTORY
rm *.log *.dat
cd ..