Unix v6 を SIMH(PDP11)上で動かすメモ(簡略版)

1.はじめに

下記のサイトを参考にして環境を整えることに方針を変更しました。
理由は必要なものがパッケージになってて、手間が省けるからです。

 

・もとにしたサイト

http://d.hatena.ne.jp/oraccha/20101101/1288582382

・手順

http://aap.papnet.eu/docs/unix.txt

・イメージのダウンロードサイト

http://wwwlehre.dhbw-stuttgart.de/~helbig/os/v6/dist.tap

2.環境

~/unix_v6_reading/simh ------ simhのhomeディレクトリ
~/unix_v6_reading/simh/BIN -- コマンド
~/unix_v6_reading/unix_v6_dist --- unix_v6のイメージ置き場

3.自分の環境で実行した手順のまとめ

※殆ど、手順のURLのテキストの内容です。

3.1. 環境準備

$ cd ~/unix_v6_reading/
$ mkdir unix_v6_dist
$ cd mkdir unix_v6_dist
$ wget http://www.ba-stuttgart.de/~helbig/os/v6/dist.tap

3.2. インストール

$ ../simh/BIN/pdp11

 

sim>set cpu 11/40
Disabling XQ
sim>set tto 7b
sim>att tm0 dist.tap
sim>set tm0 locked
sim>att rk0 v6root
RK: creating new file
sim>att rk1 v6src
RK: creating new file
sim>att rk2 v6doc
RK: creating new file

 

sim>d 100000 012700
sim>d 100002 172526
sim>d 100004 010040
sim>d 100006 012740
sim>d 100010 060003
sim>d 100012 000777
sim>d pc 100000
sim>go

 

※Ctrl + E で実行を止める。

 

sim>d pc 0
sim>go

=tmrk
disk offset
0
tape offset
100
count
1
=tmrk
disk offset
1
tape offset
101
count
3999
=

※Ctrl + E で実行を止める。

3.3. イメージを使った起動

sim> d 100000 012700
sim> d 100002 177414
sim> d 100004 005040
sim> d 100006 005040
sim> d 100010 010040
sim> d 100012 012740
sim> d 100014 000005
sim> d 100016 105610
sim> d 100020 002376
sim> d 100022 005007
sim> d pc 100000
sim> go

 

@rkunix

l

ogin: root
#

3.4. デバイスファイルの作成

# chdir /usr/sys/conf
# cc mkconf.c
# mv a.out mkconf
# mkconf
tm    <-- input
rk    <-- input
done  <-- input

 

# /etc/mknod /dev/rk0 b 0 0

 

# /etc/mknod /dev/rrk0 c 9 0

 

# /etc/mknod /dev/rk1 b 0 1
# /etc/mknod /dev/rrk1 c 9 1
# /etc/mknod /dev/rk2 b 0 2
# /etc/mknod /dev/rrk2 c 9 2

 

# /etc/mknod /dev/mt0 b 3 0
# /etc/mknod /dev/rmt0 c 12 0

3.5. discのコピーとマウント

# dd if=/dev/mt0 of=/dev/rk1 count=4000 skip=4100
# dd if=/dev/mt0 of=/dev/rk2 count=4000 skip=8100

 

# /etc/mount /dev/rk1 /usr/source
# mkdir /usr/doc
# /etc/mount /dev/rk2 /usr/doc
# ed /etc/rc
28
2
/etc/update
a
/etc/mount /dev/rk1 /usr/source
/etc/mount /dev/rk2 /usr/doc
.
w
89
q
#

 

# chdir /usr/source/s2
# ed sh.c
11594
561
                if(equal(cp1, "chdir")) {
s/equal(cp1, "chdir")/equal(cp1, "chdir") || equal(cp1, "cd")/p
                if(equal(cp1, "chdir") || equal(cp1, "cd")) {
w mysh.c
11614
q

# cc mysh.c
# mv /bin/sh /bin/sh_org
# mv a.out /bin/sh

# sh

 

# cd /
# cp rkunix unix

Ctrl + E
sim> quit
で終了。

3.6. 起動ファイルの作成

#vi unix_v6
-------------------------------
set cpu 11/40
set tto 7b
att rk0 v6root
att rk1 v6src
att rk2 v6doc
boot rk0
-------------------------------

3.7. 起動

$ ../simh/BIN/pdp11 unix_v6

 

PDP-11 simulator V3.9-0
Disabling XQ
@unix

l

ogin: root
#

写真素材のピクスタ