
我讀了Multics作業系統。在段落描述符字(書)中,有一部分錶示該段的閘數。門是什麼意思?我知道如果門允許(使用有效段門之一作為入口點),進程可以進入更高特權的環,但我不知道門是什麼意思?
謝謝。
答案1
門只是一個專門聲明的入口點(入口點在當今的語言中稱為例程、函數或過程)。編譯器或彙編器將為作為閘的入口點產生附加資訊。門入口點可以由在比門的特權等級較低的環上運行的程式碼來呼叫。無法從在編號較高(特權較低)的環中執行的程式碼呼叫非門入口點。
有關詳細信息,請參閱 AL-39 手冊的第 8 節以及 call6 指令的說明。這是一個片段:
門是駐留在給定環中的過程,旨在提供對環的受控訪問。環R中的程式只能透過呼叫與該內環r相關的閘過程之一才能進入該內環r。門必須仔細編碼,且不得信任呼叫者在特權較低的環中製造或修改的任何資料。特別是,門必須驗證呼叫者傳遞給它們的所有參數,以免損害對內環中任何段的保護。
答案2
僅供參考,Multics 中使用的一種與 Multics 中使用的非常相似的環轉換呼叫門機制也適用於所有支援「保護模式」的 Intel x86 系統,因此從 80286 開始。