สรุปเนมสเปซเป็นวิธีสร้างระบบ Linux เสมือนภายในระบบ Linux ที่มีขนาดใหญ่กว่า สิ่งนี้แตกต่างจากการเรียกใช้เครื่องเสมือนที่ทำงานในกระบวนการที่ไม่มีสิทธิพิเศษ: เครื่องเสมือนจะปรากฏเป็นกระบวนการเดียวในโฮสต์ในขณะที่กระบวนการที่ทำงานภายในเนมสเปซยังคงทำงานอยู่บนระบบโฮสต์
ระบบเสมือนทำงานภายในระบบขนาดใหญ่ที่เรียกว่าตู้คอนเทนเนอร์ แนวคิดของคอนเทนเนอร์คือกระบวนการที่ทำงานอยู่ภายในคอนเทนเนอร์เชื่อว่าเป็นกระบวนการเดียวในระบบ โดยเฉพาะอย่างยิ่งผู้ใช้รูทภายในคอนเทนเนอร์ไม่มีสิทธิ์รูทภายนอกคอนเทนเนอร์ (โปรดทราบว่านี่เป็นจริงในเคอร์เนลรุ่นที่เพียงพอล่าสุดเท่านั้น)
เนมสเปซทำเสมือนหนึ่งคุณลักษณะในแต่ละครั้ง ตัวอย่างประเภทของเนมสเปซคือ:
- User namespaces - สิ่งนี้อนุญาตให้กระบวนการทำงานเสมือนว่าพวกเขากำลังทำงานเป็นผู้ใช้ที่แตกต่างกันทั้งภายในและภายนอกเนมสเปซ โดยเฉพาะอย่างยิ่งกระบวนการที่ทำงานเป็น UID 0 ภายในเนมสเปซมีสิทธิ์ผู้ใช้ขั้นสูงเฉพาะกับกระบวนการที่ทำงานในเนมสเปซเดียวกันเท่านั้น
ตั้งแต่ Linux kernel 3.8 ผู้ใช้ที่ไม่มีสิทธิพิเศษสามารถสร้างเนมสเปซของผู้ใช้ได้ สิ่งนี้อนุญาตให้ผู้ใช้ทั่วไปสามารถใช้คุณลักษณะที่สงวนไว้สำหรับรูท (เช่นการเปลี่ยนตารางเส้นทางหรือความสามารถในการตั้งค่า)
- PID เนมสเปซ - กระบวนการภายใน PID เนมสเปซไม่สามารถฆ่าหรือติดตามกระบวนการภายนอกเนมสเปซนั้น
- Mount namespaces - สิ่งนี้อนุญาตให้กระบวนการมีมุมมองของระบบไฟล์ มุมมองนี้สามารถเป็นมุมมองบางส่วนทำให้บางส่วนของระบบไฟล์ถูกซ่อนและชิ้นส่วนที่จะ recomposed เพื่อให้ต้นไม้ไดเรกทอรีปรากฏในสถานที่ที่แตกต่างกัน เมานต์เนมสเปซจะสรุปลักษณะทั่วไปของ Unix chrootซึ่งอนุญาตให้กระบวนการถูก จำกัด เฉพาะแผนผังย่อย
- เนมสเปซเครือข่าย - อนุญาตการแยกทรัพยากรเครือข่าย (อุปกรณ์เครือข่าย) และเพิ่มการแยกกระบวนการ
เนมสเปซพึ่งพาเคอร์เนลเพื่อจัดเตรียมการแยกระหว่างเนมสเปซ สิ่งนี้ค่อนข้างซับซ้อนเพื่อให้ถูกต้องดังนั้นอาจยังมีข้อบกพร่องด้านความปลอดภัยอยู่รอบ ๆ ความเสี่ยงของข้อบกพร่องด้านความปลอดภัยจะเป็นสาเหตุหลักที่จะไม่เปิดใช้งานคุณลักษณะนี้ อีกสาเหตุที่ไม่เปิดใช้งานก็คือเมื่อคุณสร้างเคอร์เนลขนาดเล็กสำหรับอุปกรณ์ฝังตัว ในเคอร์เนลที่ใช้งานทั่วไปที่คุณต้องการติดตั้งบนเซิร์ฟเวอร์หรือเวิร์กสเตชันทั่วไปเนมสเปซควรเปิดใช้งานเช่นเดียวกับคุณลักษณะเคอร์เนลที่เป็นผู้ใหญ่อื่น ๆ
ยังมีแอปพลิเคชั่นจำนวนน้อยที่ใช้ประโยชน์จากเนมสเปซ นี่คือบางส่วน:
ดูชุดบทความ LWN โดย Michael Kerriskสำหรับข้อมูลเพิ่มเติม