音乐网站建设需求分析,jsp简述网站开发流程,深圳双区建设,c 网站开发视频教程linux内核源码树扫盲分析
sudo apt-get install tree
//下载tree
tree
//输入指令(该指令可以检查第三方工具包里的内容是否完整)可以看到如图的树状结构#xff1a; linux内核源码#xff1a; 为什么内核大约1.3w个c文件#xff0c;1100w行代码#xff1f; linux是一个开…linux内核源码树扫盲分析
sudo apt-get install tree
//下载tree
tree
//输入指令(该指令可以检查第三方工具包里的内容是否完整)可以看到如图的树状结构 linux内核源码 为什么内核大约1.3w个c文件1100w行代码 linux是一个开源的支持多架构多平台代码可移植性非常高。但是linux内核编译出来一般就若干M因为支持多平台多架构所以编译之前要配置配置成适合目标平台来用。代码编译出来是给一个平台一个架构来用的很多代码是不参与编译的。
例如支持 ARM架构 比如以下平台 海思 友善之臂 RK 树莓派 nanopi
X86架构
PowerPc架构 Mips架构 后两个架构现在占得市场份额较小。
Linux内核源代码目录树结构
arch和架构相关包含和硬件体系结构相关的代码每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下其中比较重要的包括kernel内核核心部分、mm内存管理、math-emu浮点单元仿真、lib硬件相关工具函数、boot引导程序、pciPCI总线和powerCPU相关状态。
block部分块设备驱动程序。
crypto常用加密和散列算法如AES、SHA等还有一些压缩和CRC校验算法。
Documentation关于内核各部分的通用解释和注释。
drivers设备驱动程序每个不同的驱动占用一个子目录。
fs各种支持的文件系统如ext、fat、ntfs等。
include头文件。其中和系统相关的头文件被放置在linux子目录下。
init内核初始化代码注意不是系统引导代码。
ipc进程间通信的代码。
kernel内核的最核心部分包括进程调度、定时器等和平台相关的一部分代码放在arch/*/kernel目录下。
lib库文件代码。
mm内存管理代码和平台相关的一部分代码放在arch/*/mm目录下。
net网络相关代码实现了各种常见的网络协议。
scripts用于配置内核文件的脚本文件。
security主要是一个SELinux的模块。
sound常用音频设备的驱动程序等。
usr实现了一个cpio。
在i386体系下系统引导将从arch/i386/kernel/head.s开始执行并进而转移到init/main.c中的main()函数初始化内核。
参考博客 https://www.cnblogs.com/senior-engineer/p/4929703.html