
是否可以更改預設的 Unix/Linux 目錄結構?我的意思是配置並且不需要更改內核。或者如果必須編輯內核,這項任務有多難?預設目錄結構(所有這些/usr
, /bin
,/etc
目錄)是否硬編碼在內核中?
我需要的是有一個根(/
)目錄,每個用戶都可以在其中自由創建自己的檔案/目錄和一個/Linux
目錄,其中所有作業系統檔案都存在(可能在原始結構中),包括所有設定檔。完全不應該有“Home”目錄,並且所有使用者的所有設定檔都應該相同,只能由系統管理員編輯。
答案1
對的,這是可能的。但需要付出很多努力才能達到你想要的。
詳細資訊您可以查看圖案Linux專案.
GoboLinux是一個免費、開源的作業系統,其最突出的特點是對傳統Linux檔案系統的重組。 GoboLinux 系統中的每個程式都沒有像大多數類別 Unix 系統那樣遵循檔案系統層次結構標準,而是擁有自己的子目錄樹,可以在其中找到其所有檔案(包括特定於該程式的設定)。因此,程式「Foo」的所有特定檔案和庫都位於 /Programs/Foo 中。根據 GoboLinux 開發人員的說法,這會帶來更乾淨的系統。
答案2
預設目錄結構(所有這些 /usr、/bin、/etc 目錄)是否硬編碼在核心中?
不,其中大部分對核心來說沒有多大意義。但是,它確實會填入安裝在標準化位置(如/proc
和 )的檔案系統/dev
。
是否可以更改預設的 Unix/Linux 目錄結構?
絕對不。原因有一個根檔案系統標準是因為這些目錄有明確的用途,而且它們是透過路徑來識別的。說「哦,好吧,我更希望我的/etc
目錄被稱為/masterconf
」並沒有多大意義。如果您想訪問每個人和其他所有東西都認為/etc
的內容/masterconf
,歡迎您添加一個符號鏈接ln -s /etc /masterconf
,但請留下/etc
幾乎每個人和其他所有東西都會尋找的符號鏈接。
通過類比,有人可能會說:“我想重命名所有標準實用程式 - mkdir
、ls
、cd
等 - 以便它們僅以我指定的名稱存在。”同樣,您可以對它們進行符號鏈接,但要創建一個標準,允許系統為標準實用程式配置名稱來代替普通實用程式:
- 複雜得多。
- 幾乎肯定會增加開銷,因為安裝的實用程式必須不斷地進行某種查找來整理您新穎的命名方案。
- 對於 99.9999% 以上的用戶來說完全沒有意義。
第 1 點和第 2 點是明顯的缺點,根據第 3 點無法證明其合理性,這就是為什麼沒有這樣的系統。同樣,WRT 重命名標準檔案系統的部分內容。
我需要的是擁有...
同樣,您可以使用符號連結或硬連結執行任何您想要的操作(請參閱 參考資料man ln
),然後您可以根據需要使用它們。但不要破壞檔案系統標準,它不是可選的。
答案3
一般來說,目錄結構不是由 Linux 核心強加的,而是由檔案系統標準強加的,例如:檔案系統層次結構標準。這維基百科同名文章也很好地解釋了這一點。
關於移動/更改它的問題。我想說的是,儘管有可能,但強烈建議不要這樣做,就像在 Windows 系統上它們具有標準位置一樣,例如:
- C:\Windows
- C:\使用者和設定
- C:\程式文件
- ETC。
從軟體開發人員和系統使用者的打包角度來看,使系統看起來相似具有內在的價值。
答案4
許多發行版根據情況改變了目錄結構,甚至名稱,Microtic是一個按照GNU/Linux的應用程序,但它的核心只是Linux。
如果您想這樣做,您應該執行以下步驟:
- 更改內核程式碼
- 更改啟動過程的程式碼或自己編寫一個。例如
upstart
- 變更或實作運行等級的目錄,或如果您根據 rc 檔案使用 UNIX,請變更它們。
- 留下套件管理或各軟體使用目錄。這很重要。你不會忘記它。
- 最後改變目錄結構。