簡介

1. 什麼是Namespace?

命名空間就是在大箱子(Kerne)裏面再裝一堆小箱子(Kernel Namespace)

2. 為什麼要這麼做?

  • 因為如果我們想在箱子裏面放兩個外觀一模一樣的蘋果(Process),到時候一定會無法區分

  • 不如就放在A箱子裡面的蘋果,叫作A蘋果;放在B箱子裡面的蘋果,叫作B蘋果

3. 命名空間有幾種?

  • Linux 2.6.24版的Kernel開始,提供了6種不同類型的Namespace

  • 分別是:

    • 程序間通信(IPC)命名空間
    • 程序命名空間
    • 網絡命名空間
    • 掛載命名空間
    • UTS命名空間
    • 用戶命名空間
  • 所以有人說Namespaces是一種資源隔離方案,使得PID、Network、IPC等系統資源,不再屬於全域設定,而是某個特定的Namespace的資源

4. 還有其他好處嘛?

  • 通過Namespace技術使得用戶創建的程序能夠與系統分離得更加徹底,從而不需要使用更多的底層(硬體支援)虛擬化技術

    因為Namespaces是用純軟體劃分出來的概念

5. Namespace之間有關聯嘛?

  • Namespace之間的資源互相隔離、不可見的
  • 因此在作業系統的層面上看,就會出現多個相同pid的Process

6. User要怎麼看待Namespace

  • 用戶層面上只能看到屬於用戶自己Namespace下的資源

例如使用ps命令只能列出自己Namespace下的程序

  • 使用者角度來看,每個Namespace看上去就像一個單獨的Linux系統
Linux的命名空間技術架構
Image 1 - Linux的命名空間技術架構
© 2017 Trashman all right reserved,powered by Gitbook修訂時間: 2024-10-14 03:41:00

results matching ""

    No results matching ""