Tóm lại, không gian tên cung cấp một cách để xây dựng một hệ thống Linux ảo bên trong một hệ thống Linux lớn hơn. Điều này khác với việc chạy một máy ảo chạy như một quy trình không có đặc quyền: máy ảo xuất hiện dưới dạng một quy trình trong máy chủ, trong khi các quy trình chạy bên trong một không gian tên vẫn đang chạy trên hệ thống máy chủ.
Một hệ thống ảo chạy bên trong một hệ thống lớn hơn được gọi là một thùng chứa . Ý tưởng của một container là các tiến trình chạy bên trong container tin rằng chúng là các tiến trình duy nhất trong hệ thống. Cụ thể, người dùng root bên trong vùng chứa không có quyền root bên ngoài vùng chứa (lưu ý rằng điều này chỉ đúng trong các phiên bản đủ gần đây của kernel).
Không gian ảo hóa một tính năng tại một thời điểm. Một số ví dụ về các loại không gian tên là:
- Không gian tên người dùng - điều này cho phép các quy trình hoạt động như thể họ đang chạy như những người dùng khác nhau bên trong và bên ngoài không gian tên. Cụ thể, các quy trình chạy dưới dạng UID 0 bên trong không gian tên chỉ có các đặc quyền siêu người dùng đối với các quy trình đang chạy trong cùng một không gian tên.
Kể từ Linux kernel 3.8, người dùng không có đặc quyền có thể tạo không gian tên người dùng. Điều này cho phép người dùng thông thường sử dụng các tính năng được dành riêng cho root (chẳng hạn như thay đổi bảng định tuyến hoặc khả năng cài đặt).
- Không gian tên PID - các quy trình bên trong một không gian tên PID không thể giết hoặc theo dõi các quy trình bên ngoài không gian tên đó.
- Mount không gian tên - điều này cho phép các quá trình có chế độ xem riêng của hệ thống tập tin. Khung nhìn này có thể là một khung nhìn một phần, cho phép ẩn một số phần của hệ thống tập tin và các phần được ghép lại để các cây thư mục xuất hiện ở những nơi khác nhau. Các không gian tên Mount khái quát hóa chroot tính năng Unix truyền thống , cho phép các quy trình được giới hạn trong một cây con cụ thể.
- Không gian tên mạng - cho phép tách tài nguyên mạng (thiết bị mạng) và do đó tăng cường cách ly các quy trình.
Không gian tên dựa vào kernel để cung cấp sự cách ly giữa các không gian tên. Điều này khá phức tạp để có được quyền, vì vậy vẫn có thể có các lỗi bảo mật nằm xung quanh. Nguy cơ lỗi bảo mật sẽ là lý do chính khiến không kích hoạt tính năng này. Một lý do khác để không kích hoạt nó là khi bạn tạo một kernel nhỏ cho thiết bị nhúng. Trong hạt nhân đa năng mà bạn cài đặt trên máy chủ hoặc máy trạm thông thường, không gian tên sẽ được bật, giống như bất kỳ tính năng nhân trưởng thành nào khác.
Vẫn còn ít ứng dụng sử dụng không gian tên. Ở đây có một ít:
Xem loạt bài viết về LWN của Michael Kerrisk để biết thêm thông tin.