更改 Unix 默认目录结构

更改 Unix 默认目录结构

是否可以更改默认的 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几乎每个人和其他所有东西都会寻找的符号链接。

通过类比,有人可能会说:“我想重命名所有标准实用程序 - mkdirlscd等 - 以便它们仅以我指定的名称存在。”同样,您可以对它们进行符号链接,但要创建一个标准,允许系统为标准实用程序配置名称来代替普通实用程序:

  1. 复杂得多。
  2. 几乎肯定会增加开销,因为安装的实用程序必须不断地进行某种查找来整理您新颖的命名方案。
  3. 对于 99.9999% 以上的用户来说完全没有意义。

第 1 点和第 2 点是明显的缺点,根据第 3 点无法证明其合理性,这就是为什么没有这样的系统。同样,WRT 重命名标准文件系统的部分内容。

我需要的是拥有...

同样,您可以使用符号链接或硬链接执行任何您想要的操作(请参阅 参考资料man ln),然后您可以根据需要使用它们。但不要破坏文件系统标准,它不是可选的

答案3

一般来说,目录结构不是由 Linux 内核强加的,而是由文件系统标准强加的,例如:文件系统层次结构标准。这维基百科同名文章也很好地解释了这一点。

关于移动/更改它的问题。我想说的是,尽管有可能,但强烈建议不要这样做,就像在 Windows 系统上它们具有标准位置一样,例如:

  • C:\Windows
  • C:\用户和设置
  • C:\程序文件
  • ETC。

从软件开发人员和系统用户的打包角度来看,使系统看起来相似具有内在的价值。

答案4

许多发行版根据情况改变了目录结构,甚至名称,Microtic是一个按照GNU/Linux的应用程序,但它的内核只是Linux。

如果您想这样做,您应该执行以下步骤:

  1. 更改内核代码
  2. 更改启动过程的代码或自己编写一个。例如upstart
  3. 更改或实施运行级别的目录,或者如果您根据 rc 文件使用 UNIX,请更改它们。
  4. 留下包管理或者各个软件使用目录。这很重要。你不会忘记它。
  5. 最后改变目录结构。

相关内容