Linux có một tính năng được gọi là namespaces, cho phép bạn cung cấp một "chế độ xem" khác nhau của hệ thống tệp cho các quy trình khác nhau. Trong thuật ngữ Windows, điều này sẽ hữu ích cho ví dụ nếu bạn có một chương trình kế thừa "floyd" luôn tải cấu hình của nó từ C:\floyd\floyd.ini
. Nếu Windows có không gian tên, bạn có thể viết một kịch bản trình bao để tạo ra một không gian tên để chạy floyd
, làm cho nó khi Alice chạy tập lệnh, floyd sẽ khởi động trong môi trường có C:\floyd
tồn tại nhưng thực sự chỉ đến C:\Users\Alice\Floyd
.Windows tương đương với các không gian tên Linux (gắn kết hệ thống tập tin trên mỗi quá trình)?
Bây giờ bạn có thể nghĩ, "OK, chỉ cần sử dụng liên kết mềm hoặc cứng và đặt C:\floyd
bí danh cho C:\Users\Alice
". Nhưng với các không gian tên, Bob cũng có thể chạy tập lệnh khởi động, nhưng thể hiện của floyd (trên cùng một máy tính, chạy cùng lúc) sẽ thấy C:\floyd
với nội dung của, chẳng hạn như C:\Users\Bob\Program Settings\Floyd Config
(hoặc bất kỳ đường dẫn nào khác mà chúng tôi thích).
Bạn có thể thực hiện việc này trên Linux với các không gian tên. Có cái gì đó tương tự hoặc tương tự trên Windows? Sẽ tốt nếu nó yêu cầu viết một chương trình C và sẽ ổn nếu nó chỉ hoạt động trên các phiên bản Windows gần đây.
Các bastards thực là tất nhiên những chương trình tải cấu hình của chúng từ một cái gì đó như '\ floyd \ floyd.ini' - một đường dẫn tương đối ổ đĩa hoạt động nếu directroy làm việc hiện tại ở bất kỳ đâu trên cùng ổ đĩa. Không thể thực sự khắc phục điều đó với các không gian tên. – MSalters
Đây không thực sự là một câu hỏi lập trình, nhưng nó quá thú vị để đóng. – Gabe