最簡單的,在mac筆記本上安裝Unix-v6系統,進行“Unix內核源碼剖析”

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內核源碼剖析“相關書籍學習

全文結束

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14194.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14194.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14194.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【MySQL精通之路】SQL優化(1)-查詢優化(3)-索引合并

主博客: 【MySQL精通之路】SQL優化(1)-CSDN博客 上一篇: 【MySQL精通之路】SQL優化(1)-查詢優化(2)-范圍查詢優化-CSDN博客 下一篇: 目錄 1.索引合并-交集訪問算法 2.索引合并聯合訪問算法 3.索引合并-排序聯合訪問算法 4.影響索引合…

平衡發展與環保:理性看待地下式污水處理廠建設|中聯環保圈

這些年啊,隨著城市化進程越來越快,還有環境保護意識不斷提高,這地下式污水處理廠慢慢就成了熱門的建設趨勢了。據相關統計,全球現在運行著 200 多座地下式污水處理廠呢,咱國家建成和在建的數量也差不多快到 200 座啦。…

基于transformers框架實踐Bert系列4-文本相似度

本系列用于Bert模型實踐實際場景,分別包括分類器、命名實體識別、選擇題、文本摘要等等。(關于Bert的結構和詳細這里就不做講解,但了解Bert的基本結構是做實踐的基礎,因此看本系列之前,最好了解一下transformers和Bert…

STM32入門筆記(02):USART串口通信注意事項筆記(SPL庫函數版)

這是通過串口通信發送過來的數據,里面包括了故障碼,電壓,電流,頻率等信息,請你用STM32f103系列單片機的串口1讀取該數據并解析出電壓和電流是多少? 要用STM32F103系列單片機的串口1讀取并解析發電機上的逆…

【Django項目】 音樂網站spotify復刻

代碼:https://github.com/tomitokko/spotify-clone 注:該項目不是自己提供mp3文件,而是使用spotify 的api接口獲取。

docker 命令總結

導出鏡像下載 centos 鏡像 docker pull centos:centos7.7.1908 常用命令 docker ps 查看正在運行的容器 docker ps -a 查看所有容器 docker images 查看本地已有鏡像 停止所有容器 docker stop $(docker ps -aq) 停止某個容器 docker stop 容器名稱 刪除所有容器 dock…

Java基礎入門day54

day54 servlet升級03 特點 當前設計又有一個問題,我們目前可以做到一個實體類用一個servlet,比如Student類的所有crud方法都可以在StudentServlet中的service方法中進行動態處理。假如又有User類,我們就要在UserServlet中設計service方法&a…

探索文檔識別技術在加強教育資源共享與合作中的潛力

在數字化浪潮不斷推進的今天,教育資源的共享與合作已經成為提高教學質量和效率的關鍵因素。文檔識別技術作為一項強大的工具,在這一過程中發揮著至關重要的作用。本文旨在探討如何通過文檔識別技術的應用,促進教育資源的有效共享與教師、學校…

MySQL主從復制故障:“ Slave_SQL_Running:No“ 兩種解決辦法

問題 今天搭建MySQL的主從復制,查看從機狀態時show slave status\G,發現這個參數為NO,導致主從復制失敗。 Slave_SQL_Running: No 后面上網查閱了一下資料,大概就是因為在連接支持數據庫后,也就是這個命令后&#xff…

Adobe產品安裝目錄修改

進入安裝包目錄&#xff0c;進入到products文件夾 編輯driver.xml文件 將“InstallDir”修改為你需要安裝的軟件的目錄&#xff0c;我這里是修改到D:\Adobe目錄 <DriverInfo> <ProductInfo> xxxxxxxxxxxxxxxxx </ProductInfo> 拷貝RequestInfo這部分…

c-lodop 打印面單 內容串頁

場景&#xff1a;使用c-lodop程序調取打印機連續打印多張快遞單時&#xff0c;上頁內容&#xff0c;打到了下一頁了 問題原因&#xff1a; 由于是將所有面單內容放到了一個頁面&#xff0c;c-lodop 在打印時&#xff0c;發現一頁放不下&#xff0c;會自動分割成多頁 頁面元素…

【在Postman中,如果后端返回的是String類型的數據但不是JSON格式,報錯】

在Postman中&#xff0c;如果后端返回的是String類型的數據但不是JSON格式 問題描述解決辦法 postman后端返回的String數據,不是json,怎么設置結果的接收&#xff1f; 問題描述 在postman中測試接口&#xff0c;報錯Error&#xff1a;Abort&#xff0c;或者顯示返回數據校驗失…

coveralls使用pytest進行本地測試時報錯SyntaxError: invalid escape sequence \S

## 錯誤復現&#xff1a; git clone gitgithub.com:TheKevJames/coveralls-python.git cd coveralls-python poetry install poetry run pytest## 錯誤內容&#xff1a; ## 完整的打印信息 test session starts platform darwin -- Python 3.8.18, pytest-8.2.1, pluggy-1.5.…

使用 LlamaParse 進行 PDF 解析并創建知識圖譜

此 Python 筆記本提供了有關利用 LlamaParse 從 PDF 文檔中提取信息并隨后將提取的內容存儲到 Neo4j 圖形數據庫中的綜合指南。本教程在設計時考慮到了實用性&#xff0c;適合對文檔處理、信息提取和圖形數據庫技術感興趣的開發人員、數據科學家和技術愛好者。 該筆記本電腦的主…

可視化大屏,不搞點3D效果,感覺有點對不起觀眾呢。

使用3D模型可以為可視化展現增加更多的維度和真實感&#xff0c;提供更直觀、生動的視覺效果。以下是一些3D模型在可視化展現中的作用&#xff1a; 增強沉浸感&#xff1a;通過使用3D模型&#xff0c;可以讓觀眾感受到更真實的場景和物體&#xff0c;增強他們的沉浸感。這有助…

playwright相關的文章

霍格沃茲測試開發Muller老師 - 個人中心 - 騰訊云開發者社區-騰訊云 霍格沃茲測試開發Muller老師 &#xff1a;

【數組】Leetcode 452. 用最少數量的箭引爆氣球【中等】

用最少數量的箭引爆氣球 有一些球形氣球貼在一堵用 XY 平面表示的墻面上。墻面上的氣球記錄在整數數組 points &#xff0c;其中points[i] [xstart, xend] 表示水平直徑在 xstart 和 xend之間的氣球。你不知道氣球的確切 y 坐標。 一支弓箭可以沿著 x 軸從不同點 完全垂直 地…

golang問題

文章目錄 Go里有哪些數據結構是并發安全的&#xff1f;int類型是并發安全的嗎&#xff1f;為什么int不是并發安全的&#xff1f; Go如何實現一個單例模式&#xff1f;sync.Once是如何實現的&#xff0c;如何不使用sync.Once實現單例模式&#xff1f;Go語言里的map是并發安全的嗎…