70-80 年代 Unix 是如何安裝的?
好吧,自 80 年代後期以來,我一直在使用電腦(實際上我是 3 歲)。全力以赴:Atari Xl-XE、MS-DOS、Windows 3.1、95 等。然後因為外觀而開始使用 Linux(是的,我知道,Compiz-Fusion是探索 Linux 的真正原因),現在安裝在我所有的機器。我什至在 Windows 10 中都有它。
我以前從頭開始組裝機器,你總是可以啟動到“MS-DOS”,這是我記得的,這讓我感到奇怪。
Unix 是如何在 80 年代或 70 年代後期安裝的(我什至還沒有活著)?是像啟動大磁片一樣微不足道還是涉及黑魔法?
碰巧我找不到任何關於它的參考資料,而我國家的人們只是沒有得到自由軟體的東西。
編輯:
我跳過了一個關鍵部分,我感到很愚蠢,因為我一開始沒有考慮到這一點。
一切都從引導順序開始,這不是作業系統,但它在 ROM 記憶體中,比如 BIOS(在我看來是一個非常簡約的機器配置作業系統)和其他東西,比如引導順序。在這個階段,它將查找 BIOS 中列出的設備,然後按順序迭代它們,直到一個設備響應引導指令,就像磁帶中的那些。因此不需要初始作業系統並且可以安裝 Unix。
愚蠢的錯誤會帶你走很長的路,但你肯定會學到更多。
我在 80 年代安裝 Unix 的經驗是在 PDP-11 上,安裝過程實際上非常有趣。我今晚真的做到了(在模擬器上),多年來第一次……
PDP-11 的 Unix V7 在磁帶上分發。磁帶包含幾個文件,一個接一個。
- 磁帶上的第一個文件是引導載入程序。它分為兩部分。第一部分是引導塊,它知道足以將引導載入程序的第二部分從磁帶讀取到記憶體中,然後將控制權轉移給它。用於此的程式碼少於 512 字節。第二部分更大,它為幾種不同類型的磁碟和磁帶剝離了“獨立驅動程序”,並且它對 Unix 文件系統的了解足以在磁帶上或根目錄中查找文件硬碟驅動器上的文件系統,載入它們並執行它們。引導載入程序的完整大小(兩部分的總大小)約為 8K 字節。
- 磁帶上的第二個文件是一個獨立的
cat
程序。當我說“獨立”時,我的意思是它直接在裸機上執行(根本沒有任何作業系統);它使用與引導載入程序相同的獨立設備驅動程序和文件系統驅動程序編寫。您可以使用引導載入程序載入並執行它。當它啟動時,你告訴它你想從哪個設備讀取文件,以及要讀取什麼文件。它讀取它,列印出來,然後退出。這就是它所做的一切。這是有限的用處。- 磁帶上的第三個文件只是一個文本文件,其中列出了磁帶上的文件。幾乎沒有人看過這個。如果您使用這些分發磁帶之一,您幾乎已經知道它上面有什麼……
- 磁帶上的第四個文件是一個獨立的
mkfs
程序。這是使用與其他獨立程序相同的獨立設備驅動程序和文件系統驅動程序庫建構的,它也可以在裸機上執行,無需作業系統。您可以使用引導載入程序載入並執行它,它會詢問您要在哪個磁碟(和分區)上創建文件系統,以及文件系統應該有多大,然後它會寫出初始文件系統結構您告訴它的設備和分區。然後它會退出。- 磁帶上的第五個文件是一個獨立的
restor
程序(是的,很像creat()
系統呼叫,restor
拼寫沒有’e’……)。您可以使用引導載入程序載入並執行它。同樣,它在裸機上執行,沒有作業系統。它會要求一個包含文件系統轉儲的磁帶文件,以及一個用於恢復它的磁碟分區。然後,它會這樣做。然後它會退出。- 磁帶上的第六個文件只是根文件系統的文件系統轉儲。
- 磁帶上的第七個文件只是 /usr 文件系統的文件系統轉儲。
就是這樣 - 這就是你得到的。
所以,如果你有這個磁帶,你必須以某種方式開始這個過程。一些 PDP-11 的引導 ROM 知道如何從設備(如磁帶或磁碟)載入第一個塊並將其跳轉。(對於這個磁帶,第一個塊小於 512 字節的可執行程式碼,它知道如何載入引導載入程序的其餘部分。)然而,我使用的第一個 PDP-11 沒有引導 ROM。每次我們啟動機器時,我們都必須輸入啟動程式碼來載入設備的第一個塊並跳轉到它。用手。二進制……幸運的是,它很短(例如,從 TU16 或 TE16 磁帶驅動器讀取第一個塊並跳轉到它的程式碼只有 6 個字或 12 個字節),而且我們有引導程式碼寫在一張貼在機器上的紙上。不用說,
因此,考慮到所有這些……安裝系統的一般過程是:
- 使用引導 ROM(或手動鍵入引導程式碼……)將所謂的“零塊引導載入程序”載入到記憶體中,然後用於載入引導載入程序的其餘部分。
- 使用引導載入程序載入獨立
mkfs
程序(磁帶上的第四個文件),在硬碟分區上放置根文件系統的結構。- 使用引導載入程序載入獨立
restor
程序(磁帶上的第五個文件),將根文件系統(磁帶上的第六個文件)的文件系統轉儲恢復到硬碟上。- 使用引導載入程序將 Unix 核心從硬碟驅動器上根文件系統的文件中載入(您剛剛從磁帶恢復),並將控制權轉移給它。此時,Unix 正在執行。
- 使用普通的 Unix
mkfs
和restor
命令在硬碟的另一個分區上創建 /usr 文件系統,並將 /usr 文件系統的文件系統轉儲恢復到您剛剛準備的分區。然後,您幾乎完成了,除了在硬碟上的第一個磁碟塊中安裝引導程式碼(因此無論是您的引導 ROM,還是您手動輸入的引導程式碼,都可以在您重新啟動系統時執行它),一些系統調整項,並按照您希望的方式設置一些東西。
像這樣的程序是在 1970 年代和 1980 年代很長一段時間內安裝了多少個 Unix 發行版。Berkeley Unix(4.2BSD 和更高版本)提供了一個結構非常相似的分發磁帶,以及非常相似的安裝過程。
如果您想查看 Charles Haley 和 Dennis Ritchie 自己的在 PDP-11 上安裝 V7 Unix 的說明,您可以在此處找到它們。我今晚剛剛按照這些說明進行操作,它們工作正常。;-)