
介紹與基本概念
|
17
以往,Unix 系統僅會使用一個共用的命名空間,其可視範圍及於系統上所有用戶以及所
有行程。Linux 採用新的做法,並且支援
每行程命名空間
(
per-process namespace
), 這
讓每個行程得以針對系統的檔案和目錄層級選擇自己的觀點。
6
預定狀況下,每個行程會
繼承其父行程的命名空間,但是一個行程可以選擇使用自己所擁有的一組掛載點以及唯
一的根目錄來建立自己的命名空間。
行程
如果說檔案是 Unix 系統中最基本的抽象概念,那麼行程就是第二個最基本的抽象概
念。行程(process)是執行中的目的碼(object code):正在執行的程式。但它不僅是
目的碼而已—行程組成自資料、資源、狀態以及一個虛擬的電腦。
行程的生命始於可執行目的碼(executable object code);這是採用核心所瞭解之可
執行格式的機器可執行碼(machine-runnable code)。 Linux 中最常見的可執行格式為
Executable and Linkable Format
(可執行及可鏈結格式,簡稱
ELF
)。可執行格式包括中
介資料(metadata)以及多個程式碼和資料區段(sections of code and data)。這些區段
是目的碼的線性團塊(linear chunk),會被載入至記憶體的線性團塊。區段中所有資料
的待遇都一樣,它們具有相同的存取權限,而且一般用於類似的用途。
最重要和最常用的區段就是 text 區段、data 區段以及 bss 區