分析Linux内核源码目录组织结构

1、Linux内核特性

Linux内核的组织形式为整体式结构;
Linux进程调度方式简单而高效;
Linux支持内核线程(守护进程);
Linux支持多种平台的虚拟内存管理;
Linux内核另一个独具特色的部分是虚拟文件系统(VFS,Virutal File System);
Linux的模块机制使得内核保持独立而又非常容易扩充;
增加系统调用主要是满足特殊需求;
Linux内核网络模块面向对象的设计思想结构(支持多种协议、多种网卡驱动程序等等)。
系统调用本身也是由若干条指令构成的过程,实现一些特定的服务,但它与一般的过程不同区别在于:系统调用运行在内核态(系统态),而一般过程是运行在用户态。内核实际是抽象的资源操作到具体的硬件操作细节之间的接口。

2、Linux内核子系统之间的关系

进程调度:控制着进程对CPU的访问操作。
内存管理(MM):允许多个进程安全的共享主存区域。
虚拟文件系统(VFS):分为设备驱动程序和逻辑文件系统(ext2、ext3、ext4、fat);
网络管理:提供对各种网络标准协议的存取和网络硬件的支持
进程间通信:支持进程间各种通信机制。

3、Linux内核源码组织结构(版本5.6.18)

Linux内核目录如下:
arch:不同平台体系结构的相关代码;
block:设备驱动;
certs:与认证和签名相关的代码;
crypto:内核常用的压缩算法、常用加密算法等等;
documentation:描述模块功能和协议规范代码;
drivers:驱动程序(USB总线、PCI总线、显卡、网卡等等);
fs:虚拟文件系统(VFS)代码;
include:内核源码依赖的绝大部分头文件;
init:内核初始化代码,直接关联到内存各个组件入口;
ipc:进程间通信的实现,比如信号量、共享内存等等;
kernel:内核核心代码,包括进程管理、IRQ等等;
lib:C标准库的子集;
lincenses:Linux内核根据Licenses/preferred/GPL-2.0中提供GNU通过公共许可证2.0;
mm:内存管理的相关实现操作;
net:网络协议代码,比如TCP、Wifi、IPv6 等等;
samples:内核实例代码;
scripts:编译和配置内核所需要脚本;
security:内核安全模型相关代码;
sound:声卡驱动源码;
tools:与内核交互;
usr:用户打包和压缩内核的实现的源码;
virt:kvm虚拟化实现的源码
Linux内核目录下文件如下:
README:编译内核信息;
.clang-format:平时开发团队合作的时候注意代码格式化
.cocciconfig:
COPYING:许可和授权信息;
CREDITS: 贡献者列表;
Kbuild:内核设定脚本;
Kconfig:开发人员配置内核的时候所用到的参数等;
MAINTAINERS:目前维护开发人员列表;
Makefile:编译内核主要文件;
内核代码主要以:.c或.h作为扩展名的文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值