我們的情況是:我可以將內核線程從一個名稱空間移動到另一個名稱空間嗎?
- 首先我們有一個內核線程(說KS)啓動時,內核開始運行運行;
- 然後,當系統準備就緒時,我們創建另一個命名空間(比如NS1),它與LXC有不同的mntns。
我們的要求是KS需要寫一些只能被NS1看到的路徑。所以我想我可以將KS移動到NS1名稱空間(至少更改掛載名稱空間)?如果是,如何?我已經檢查了setns()
系統調用及其內核源代碼,但仍然不知道如何做(無論是在用戶空間還是更改KS源代碼),甚至不知道這是否是解決問題的正確方法。我的另一個問題是:我的理解是,如果一個內核任務(如內核線程)在進程上下文中知道「命名空間」,但我的朋友認爲「命名空間」是一個用戶空間概念,所有內核員工只知道根名稱空間。哪一個是正確的?
非常感謝! –