Unix V6 已经是 1975 年的系统了,但是其源代码拢共只有 1w 行左右,并且使用了 C 语言(K & R 之前的标准),还是现代操作系统的鼻祖,所以说是初学者最好的研究对象。
安装模拟器
brew install simh
brew link simh
Warning: Already linked: /opt/homebrew/Cellar/simh/3.12.2
which pdp11
/opt/homebrew/bin/pdp11
如果which pdp11 找不到需要添加/opt/homebrew/Cellar/simh/3.12.2/bin到环境变量中
下载unuxV6镜像“Unix-v6-Ken-Wellsch.tap.bz2”
下载地址
https://sourceforge.net/projects/bsd42/files/Install%20tapes/Research%20Unix/Unix-v6-Ken-Wellsch.tap.bz2/download
英文安装参考资料,内核Unix-v6-Ken-Wellsch.tap.bz2下载地址
http://gunkies.org/wiki/Installing_UNIX_v6_(PDP-11)_on_SIMH#Materials
中文安装参考资料
https://blog.csdn.net/u012814856/article/details/98724746
准备目录和文件
新建目录
mkdir ~/unixv6
cd ~/unixv6
Unix-v6-Ken-Wellsch.tap.bz2 解压后得到Unix-v6-Ken-Wellsch.tap
cp Unix-v6-Ken-Wellsch.tap dist.tap
注意保留Unix-v6-Ken-Wellsch.tap文件,如果不小心安装失败需要重新cp再次安装
因为安装过程dist.tap会被修改
开始安装系统
安装文件 01install.ini
set cpu 11/40
set tm0 locked
attach tm0 dist.tap
attach rk0 rk0
attach rk1 rk1
attach rk2 rk2
d cpu 100000 012700
d cpu 100002 172526
d cpu 100004 010040
d cpu 100006 012740
d cpu 100010 060003
d cpu 100012 000777
g 100000
pdp11 01install.ini
当你运行到这一刻的时候,模拟器会卡住,此时你使用 Ctrl + E 退出,然后再准备配置硬盘信息:
g 0
运行了这行代码,会弹出一个 = 的等待输入提示符,此时按照如下对话进行输入即可:
sim> g 0
=tmrk
disk offset
0
tape offset
100
count
1
=tmrk
disk offset
1
tape offset
101
count
3999
= [## Hit CTRL-E here]
Simulation stopped, PC: 137300 (BGE 137274)
sim> q
安装磁盘02install-disk.ini
set cpu 11/40
set tto 7b
set tm0 locked
attach tm0 dist.tap
attach rk0 rk0
attach rk1 rk1
attach rk2 rk2
dep system sr 173030
boot rk0
pdp11 02install-disk.ini
此时,程序会打印出来一个 @ 符号提示输入,输入如下内容即可告诉模拟器我们要加载 Unix 核心模块:
rkunix
切换成小写
STTY -LCASE
快速启动系统03quick-run.ini
set cpu 11/40
set cpu idle
set tto 7b
set tm0 locked
attach rk0 rk0
attach rk1 rk1
attach rk2 rk2
attach lpt printer.txt
set dci en
set dci lines=8
set dco 7b
att dci 5555
boot rk0
pdp11 03quick-run.ini
此时,程序会打印出来一个 @ 符号提示输入,输入如下内容即可告诉模拟器我们要加载 Unix 核心模块:
rkunix
输入用户名root回车
环境至此搭建完成
可以至此下载源码
https://www.tuhs.org/Archive/Distributions/Research/Ken_Wellsch_v6/
结合”Unix内核源码剖析“相关书籍学习
全文结束