我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

学习Linux有一段时间了,下面把Linux源码的目录结构,文件系统的目录结构整理一下,加深记忆。

1. Linux源代码的目录结构

首先,截取一张如下图所示的截图:

在这里插入图片描述

查看各个文件的介绍,并借用其他资源。

arch:该目录与架构相关,包含很多CPU架构,比如arm,x86,MIPS,PPC等等。

处理器厂商提供了一套Linux内核源代码,该目录下有一组针对具体处理器的子目录。每个CPU子目录下又分为boot、mm、等子目录,分别控制系统引导、内存管理、系统调用、动态调频、主频设置等。

arch 目录中有关键的平台文件,凡是支持 Linux 的处理器都有一部分内核代码是为特定处理器提供的,具体实现是通过平台文件来实现的。

讯威4412的平台文件为arch→arm→mach-→mach-.c。

arch→arm→boot 目录。默认生成的内核映像就在这个目录中。

在arch→arm→目录下,有具体CPU处理器的代码,以及相关内核特性的实现,比如信号处理等。这部分当然是芯片厂家做的,4412的这部分就是三星做的。

在arch→arm→lib目录下,放的是一些硬件相关的库函数,这些函数在后面学习驱动的时候会用到。

在arch→arm→tools目录中,包含了生成图像的工具。

在这里插入图片描述

block:在Linux中,block是指块设备(以块(多个字节,类似扇区)为单位整体访问)。比如SD卡、iNand、Nand、硬盘等都是块设备。你几乎可以把块设备看作存储设备。block目录下存放的是Linux存储系统中关于块设备管理的一些代码。

:英文意思为,该目录下包含各种常见加密算法的C语言代码实现,例如crc32、md5、sha1等。

:里面有一些文件。

:目录,里面分门别类的列出了Linux内核支持的所有硬件设备的驱动源代码。这个是需要深入研究的部分。

:固件。什么是固件?固件其实就是软件,只不过这个软件是固定在IC上并在IC内部运行的,就像IC中的iROM代码一样。

fs:fs代表文件,文件系统,其中列出了Linux支持的各种文件系统的实现。

:头文件目录,所有通用头文件(各种 CPU 架构共用)都位于此目录。每个 CPU 架构特有的一些头文件位于 arch/arm/ 目录及其子目录中。

init:init 是初始化的意思,这个目录下的代码是Linux内核启动时初始化内核的代码。

在这里插入图片描述

如下图所示,部分目录如下,下面的目录中,我们几乎不需要触碰任何文件。

ipc:ipc是inter,即进程间通信,包含了linux支持的IPC的代码实现。

:是内核,也就是Linux内核,所以这个文件夹里面放的是内核本身需要的一些代码文件。

lib:lib是库的意思,里面包含了一些公共的、有用的库函数。注意这里的库函数和C语言的库函数是不一样的。在内核编程中,不能使用C语言的标准库函数,这里的lib目录下的库函数就是用来替代那些标准库函数的。比如在内核中需要使用atoi把字符串转换成数字,但是在内核编程中只能使用lib目录下的atoi函数,而不能使用标准C语言库中的atoi。比如在内核中要打印信息的时候,是不能用到它的,但是必须用到它,它就在我们lib目录下。

mm:mm 代表内存管理。Linux 的内存管理代码都在这里。

net:该目录包含网络相关的代码,比如TCP/IP协议栈。

在这里插入图片描述

:,该目录下的所有脚本文件都是脚本文件,这些脚本文件并不是Linux内核工作时使用的,而是用来辅助配置、编译和制作Linux内核的。我们不会详细分析该目录下的脚本,而是重点学习如何通过外围来配置和编译Linux内核。

:安全相关代码。不用担心。

声音:音频处理相关。

工具:Linux下使用的一些有用工具。

usr:该目录和Linux内核的启动有关,暂时不用关心。

在这里插入图片描述

2.文件系统目录结构

首先我们来看一下下面的图片:

在这里插入图片描述

1

每个文件和目录都从根目录开始。

只有 root 用户才有此目录的写权限。请注意,/root 是 root 用户的主目录,与 / 不同。

2. /bin——用户二进制文件

包含二进制可执行文件。

在单用户模式下,您需要使用的常用 Linux 命令都位于此目录中。系统所有用户使用的命令都位于此处。

例如:ps、ls、ping、grep、cp

3. /sbin 目录 - 系统二进制文件

与 /bin 一样,/sbin 也包含二进制可执行文件。

不过,该目录中的 Linux 命令通常是系统管理员用来维护系统的。例如: 、 、 fdisk、 、 命令

4. /etc – 配置文件

包含程序所需的所有配置文件。

还包括用于启动/停止单个程序的启动和关闭 shell 脚本。例如:/etc/.conf、/etc/.conf

Hosts:设备名(或域名)到IP地址的解析,相当于本地的DNS功能。

5. /dev – 设备文件

包含设备文件。

这些包括终端设备、USB 或任何连接到系统的设备。例如:/dev/tty1、/dev/

6. /proc – 进程信息

包含有关系统进程的信息。

这是一个虚拟文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid} 目录包含与特定 pid 相关的信息。

这是一个虚拟文件系统,其中系统资源以文本信息的形式存在。例如:/proc/

7. /var – 变量文件

var 代表变量文件。

该目录包含内容可能会增长的文件。

这包括 - 系统日志文件(/var/log);软件包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁定文件(/var/lock);多次重启所需的临时文件(/var/tmp);

8. /tmp – 临时文件

包含系统和用户创建的临时文件。

当系统重启时,该目录下的所有文件将被删除。

9. /usr – 用户程序

包含二进制文件、库、文档和二级程序的源代码。

/usr/bin 包含用户程序的二进制文件。如果在 /bin 中找不到用户二进制文件,请在 /usr/bin 目录中查找。例如:at、awk、cc、less、scp。

/usr/sbin 包含系统管理员二进制文件。如果您在 /sbin 中找不到系统二进制文件,请在 /usr/sbin 目录中查找。例如:atd、cron、sshd 等。

/usr/lib 包含 /usr/bin 和 /usr/sbin 使用的库。

/usr/local 包含从源安装的用户程序。例如,当您从源安装时,它将位于 /usr/local/

10. /home – 主目录

所有用户都使用主目录来存储他们的个人文件。

例如:/home/john,/home/

11. /boot – 引导加载程序文件

包含引导加载程序相关的文件。

内核、grub文件位于/boot下。

例如:.img-2.6.32-24-、-2.6.32-24-

12. /lib – 系统库

包含支持位于 /bin 和 /sbin 中的二进制文件的库。

库文件名为ld或者lib.so.*

例如:ld-2.11.1.so,.so.5.7

13. /opt – 可选的附加应用程序

opt 代表可选。

包含来自各个制造商的附加应用程序。

附加应用程序应安装在 /opt/ 或 /opt/ 的子目录中。

14. /mnt – 挂载目录

临时安装目录,系统管理员可以挂载文件系统。 15. /media - 可移动媒体设备

用于挂载可移动设备的临时目录。

例如,/media/cdrom 表示 CD-ROM,/media/ 表示软盘驱动器;16. /srv - 服务数据

srv 代表服务。

包含特定于服务器的服务相关数据。

例如,/srv/cvs 包含与 cvs 相关的数据。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4188.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线