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/Dennis_v6/
結合”Unix內核源碼剖析“相關書籍學習
全文結束