UNIX 單一使用者與多使用者模式的差異是何時首次引進的?

UNIX 單一使用者與多使用者模式的差異是何時首次引進的?

實際上,如果不是實際上的話,當今每個類 UNIX 作業系統都區分了多用戶模式和單用戶模式。單用戶模式通常用於低階的系統維護,即使在減少服務集的情況下,也無法在系統正常啟動和運行時執行這種維護(通常需要離線完成的檔案系統維護)。

然而,顯然必須有人編寫第一個程式碼來真正區分單用戶模式和多用戶模式。

我懷疑多用戶模式是在單用戶模式之後出現的,僅僅是因為多用戶模式做了更多的事情,並且最初以單用戶模式啟動系統然後才過渡到多用戶模式是有意義的(即至少Linux是如何做到的;如果你將eg傳遞init=/bin/bash給它,核心就會在「單一使用者」模式下運作,然後有效地init切換到多使用者模式),但我的問題是:兩者之間何時以及哪個變體/版本首次進行了區分?

答案1

Unix 從一開始,也就是從 1971 年發行版本 1 起,就做出了這種區分。

系統正在啟動到多用戶模式(即用戶連接到可用的串行接口,tty0tty5已規定添加四個以上的 tty)。

Unix v1 手冊第 4 節第頁的說明tty

By appropriate console switch settings, it is possible to
cause UNIX to come up as a single—user system with I/O on
this device.

請注意,在第一個 Unix 版本中,為每個序列線路產生登入程序是硬編碼的,並由 init 進程本身完成。在啟動之前選擇要使用的模式,並透過修改開關設定並退出單用戶模式 shell 來切換到多用戶模式。

後來,在 Unix Version 7 (1979) 中,系統首先以單一用戶模式啟動,而不是硬體開關,當單一用戶 shell 退出時,它會切換到多用戶模式。

甚至後來,System III (1981) 引入了該inittab文件。有了它,就可以更好地定義和配置多個運行等級並選擇要使用的等級。運行等級 1 是單一用戶,運行等級 2 是多用戶。如果 inittab 檔案遺失,系統將以單一使用者模式啟動。

答案2

最初,init 會在單用戶模式下在控制台上啟動一個 shell,當該 shell 退出時,它將在串行端口上啟動登入(實際上是 getty)程序,同時掛載其余文件系統並啟動然後配置運行的任何守護程序。

這全部由 /etc/inittab 中的條目控制。

這一切都出現在 20 世紀 70 年代初期的 PDP-11 版本的 Unix 上,我相信在那之前。

當然,還有無窮無盡的細節,但這就是重點。

答案3

使用術語single uservs.最可能的原因multi user是,在啟動後,UNIX 僅具有唯讀安裝的根檔案系統。

接下來要做的就是檢查根檔案系統(大約 1MB)並重新掛載它以讀取/寫入。

然後/usr檢查並安裝檔案系統。

由於用戶只有在/usr/掛載後才能登錄,這就是 UNIX 能夠支援多用戶環境的時刻。

相關內容