
嗯,我從 80 年代末就開始接觸電腦了(實際上我大概 3 歲)。全力以赴:Atari Xl-XE、MS-DOS、Windows 3.1、95 等。複合融合是探索 Linux 的真正原因),現在已安裝在我所有的機器上。我甚至在 Windows 10 中也有過它。
我以前從頭開始組裝過機器,你總是可以啟動到“MS-DOS”,這就是我記得的,這讓我感到好奇。
早在 80 年代或 70 年代後期,Unix 是如何安裝的(我甚至還沒有活著)?它是像啟動大軟碟或涉及黑魔法這樣的小事嗎?
碰巧我找不到任何關於它的參考資料,而我的國家的人們就是不了解自由軟體。
編輯:
我跳過了一個關鍵部分,我覺得很愚蠢,因為我一開始就沒有考慮到這一點。
一切都從啟動順序開始,它不是作業系統,但它位於 ROM 記憶體中,例如 BIOS(在我看來,這是一個非常簡約的機器配置作業系統)和其他內容,例如啟動順序。在此階段,它將尋找 BIOS 中列出的設備,然後按順序迭代它們,直到一個設備回應啟動指令,就像磁帶中的設備一樣。因此不需要初始作業系統,可以安裝 Unix。
愚蠢的錯誤會讓你走很長的路,但你肯定會學到更多。
答案1
我在 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 或您手動輸入的引導程式碼可以在您重新啟動系統時運行它),有些系統調整項目,並按照您想要的方式設定一些東西。
在 20 世紀 70 年代和 1980 年代的很長一段時間內,許多 Unix 發行版都安裝了這樣的程式。 Berkeley Unix(4.2BSD 及更高版本)提供了具有非常相似結構的分發磁帶,以及非常相似的安裝過程。
如果您想查看 Charles Haley 和 Dennis Ritchie 自己在 PDP-11 上安裝 V7 Unix 的說明,您可以找到它們這裡。我今晚只是按照這些說明進行操作,它們工作得很好。 ;-)
答案2
在我的第一份工作中,早在 1989 年,我們使用 3.5 吋(約 9 公分)軟碟將 Unix(互動式,當時由柯達擁有)安裝到 Intel 386 PC 上。
答案3
我想你是在問如何初始安裝Unix 的執行。那個時代的許多電腦都被設計為運行 Unix,並在硬碟或軟碟上預先安裝了作業系統。安裝只是提供包含正確內容的磁碟的問題。
但你可能會問,系統啟動時透過什麼方式將作業系統安裝到記憶體呢?
這是一個例子。 AT&T 3B1 又稱為「Unix PC」有一個包含引導程式的 ROM,位址為 800000-BFFFFF。當系統重設時,其Motoroloa 68010 CPU從000000-2載入堆疊指針,從000004-6載入程式計數器並跳轉。在重設期間,硬體強制位址位元 23 為高電平,有效地將 ROM 對應到主記憶體,因此系統實際上是在 ROM 中執行程式。 ROM 中的程式初始化不同的硬體元件,運行一些診斷程序,並透過載入和執行引導塊從軟碟或磁碟載入作業系統。引導區塊中的程式碼將載入核心並開始執行init
,就像現代系統一樣。
(手冊中的更多信息,請參閱 Philip Pemberton 的鏡子AT&T 3B1 模擬器)
理論上你可以利用這些知識在機器上安裝 Unix 以外的東西。但並非總是存在像 PC 上的 BIOS 這樣的硬體抽象層,因此啟動的程式必須與硬體更緊密地耦合。
答案4
在 PC (IIRC) 上,Interactive Unix 的安裝是透過啟動磁碟機完成的,然後從磁帶完成「真正的」安裝。請注意,您的 SCSI 卡必須受互動式支援。
在 HP 工作站上,您從磁帶/DAT 啟動並安裝。