标准Linux文件系统层次标准(Filesystem Hierarchy Standard,FHS)第五章

    技术2022-06-25  46

         今天看一篇文章,里面提到了Linux文件系统层次标准(FHS)。之后我就看了FHS。由于本人读英文文章很慢,为了以后方便自己也方便大家,我就把Filesystem Hierarchy Standard翻译了下,可能有的地方不是很到位,请谅解。

         如果您看了,觉得对您有点帮组,请支持一下,毕竟翻译该文章也花费了我两星期的业余时间。

         如果要转载请注明出处,谢谢。

     

     

     

    标准Linux文件系统层次标准(Filesystem Hierarchy Standard

     

    l  第五章操作系统特定的附件

    该章节作为特定操作系统的其他要求和建议。本章节所提到的内容不会反应到基本标准里面。

     

    / : 根目录

           一个Linux操作系统,如果内核在根目录下,我们建议内核的名字命名为vmlinuxvmlinuz,该命名方式的内核已经在最近的Linux内核源码包里用了。

     

    /bin : 用户基本命令二进制文件(被所有用户使用)

           Linux系统需要将以下额外的文件放在/bin中:

    l  Setserial

     

    /dev : 设备文件和特殊文件

           下面设备必须存在于/dev下。

           /dev/null

                  所有写入这个设备的数据都被丢弃。从该设备读数据将返回EOF

           /dev/zero

    该设备是一个归零的数据源。所有写入这个设备的数据都被丢弃。读取该设备将返回和请求一样多的零值。

    /dev/tty

    该设备是一个进程的控制终端的代名词。一旦该设备被打开,所有的读和写操作就像操作一个实际的控制终端一样。

     

    /etc : 主机特定的系统文件

           Linux系统需要将以下额外的文件放在/etc中:

    l  Lilo.conf

     

    /lib64/lib32 : 6432位库文件(架构相关)

           64位架构的PPC64, s390x, sparc64, AMD6464位库文件放在/lib64下,32位(或s390上的31位库)库文件放在/lib下。

           64位架构的IA64必须放置它的64位库在/lib下。

     

    /sbin : 基础的系统二进制文件

           Linux系统需要将以下额外的文件放在/sbin中。

    l  第二文件系统扩展命令。

    u  badblocks

    u  dumpe2fs

    u  e2fsck

    u  mke2fs

    u  mklost+found

    u  tune2fs

    l  引导加载图安装器(可选)

    u  Lilo

     

    /sbin的可选文件

    l  静态二进制文件

    u  ldconfig

    u  sln

    u  ssync

    静态ln(sln)和静态sync(ssync)是很有用的,在其他东西发生错误时。Sln的主要用途(用于修复不良的更新导致的符号链接出错)不是现在主要关心的,ldconfig的存在能扮演升级动态库的指导者。静态sync在一些紧急情况时是很有用的。请注意,标准的lnsync不需要被静态链接的版本,但是也可能需要。

    /sbin下的ldconfig二进制文件是可选的,因为机器可能选着在启动的时候运行ldconfig,而不是只有在更新了共享库之后才运行(对于启动时运行ldconfig是否是有利的不得而知)。即便如此,很多人还是喜欢运行ldconfig当以下情况发生时。

    l  刚刚删除/lib/<file>文件。

    l  我得不到库文件的名称,因为ls是一个动态链接,并且我用的shell没有ls命令,然而我又不知道用”echo *”来代替ls命令。

    l  我有一个静态sln,但是我不知道什么调用这个链接。

    l  杂项

    u  Ctrlaltdel

    u  Kbdrate

    为了应付键盘出现不可用的情况,在一些系统中kbdrate也许被安装在/sbin中。

    因为内核在按ctrl-alt-del组合键的默认动作是即时硬启动,所以通常在以读写模式挂载根文件系统之前禁止即时硬启动操作。一些init进程禁止Ctrl-Alt-Del,但其他人也许需要ctrlaltdel程序,那么它应该安装在/sbin中。

     

    /usr/include : C程序包含的头文件

           如果安装了CC++编译器,并且系统不是基于Glibc那么一下符号链接是被需要的。

           /usr/include/asm -> /usr/src/linux/include/asm-<arch>

           /usr/include/linux -> /usr/src/linux/include/linux

     

    /usr/src : 源代码

           如果系统是基于glibc,这里没有明确的准则关于本目录。

           如果系统是基于glibc的以前版本linux libc,那么就有以下准则和基本应用。

           只有Linux的内核源码应该放在一个特定位置/usr/src/linux

           如果安装了CC++编译器,但是没有完整的内核源代码,那么内核源代码的头文件应该被放到一下目录。

                  /usr/src/linux/include/asm-<arch>

                  /usr/src/linux/include/linux

           <arch>是系统架构的名称。

           注意:

           /usr/src/linux也许是内核源代码树的一个符号链接。

           根据:

           内核头文件被放在/usr/src/linux而不是/usr/include是很重要的,就因为如此当系统管理员第一次更新内核版本的时候不会出现问题。

     

    /var/spool/cron : cron at 程序

           该目录包含cronat程序的可变数据。

     


    最新回复(0)