学习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 相关的数据。
扫一扫在手机端查看
-
Tags : linux源码arch删除其他架构
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。