Linux kernel简介

Posted 四季帆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux kernel简介相关的知识,希望对你有一定的参考价值。

1. kernel顶层目录结构

include/            ---- 内核头文件,需要提供给外部模块(例如用户空间代码)使用。
kernel/             ---- Linux内核的核心代码,包含了3.2小节所描述的进程调度子系统,以及和进程调度相关的模块。
mm/                 ---- 内存管理子系统(3.3小节)。
fs/                 ---- VFS子系统(3.4小节)。
net/                ---- 不包括网络设备驱动的网络子系统(3.5小节)。
ipc/                ---- IPC(进程间通信)子系统。
arch/               ---- 体系结构相关的代码,例如arm, x86等等。 
arch/mach/          ---- 具体的machine/board相关的代码。 
arch/include/asm/   ---- 体系结构相关的头文件。 
arch/boot/dts       ---- 设备树(Device Tree)文件。
init/               ---- Linux系统启动初始化相关的代码。 
block/              ---- 提供块设备的层次。 
sound/              ---- 音频相关的驱动及子系统,可以看作“音频子系统”。 
drivers/            ---- 设备驱动(在Linux kernel 3.10中,设备驱动占了49.4的代码量)。
lib/                ---- 实现需要在内核中使用的库函数,例如CRC、FIFO、list、MD5等。 
crypto/             ----- 加密、解密相关的库函数。 
security/           ---- 提供安全特性(SELinux)。 
virt/               ---- 提供虚拟机技术(KVM等)的支持。 
usr/                ---- 用于生成initramfs的代码。 
firmware/           ---- 保存用于驱动第三方设备的固件。
samples/            ---- 一些示例代码。 
tools/              ---- 一些常用工具,如性能剖析、自测试等。
Kconfig, Kbuild, Makefile, scripts/ ---- 用于内核编译的配置文件、脚本等。
COPYING             ---- 版权声明。 
MAINTAINERS         ----维护者名单。 
CREDITS             ---- Linux主要的贡献者名单。 
REPORTING-BUGS      ---- Bug上报的指南。
Documentation, README ---- 帮助、说明文档。

2. Linux kernel五大子系统

现代计算机(无论是PC还是嵌入式系统)的标准组成,就是CPU、Memory(内存和外存)、输入输出设备、网络设备和其它的外围设备。所以为了管理这些设备,Linux内核提出了5个子系统

Process Scheduler,也称作进程管理、进程调度,负责管理CPU资源,以便让各个进程可以以尽量公平的方式访问CPU 
Memory Manager,内存管理。负责管理Memory(内存)资源,内存管理会提供虚拟内存的机制 
VFS(Virtual File System),虚拟文件系统,Linux内核将不同功能的外部设备抽象为可以通过统一的文件操作接口(open、close、read、write等)来访问 
Network,网络子系统。负责管理系统的网络设备,并实现多种多样的网络标准 
IPC(Inter-Process Communication),进程间通信。IPC不管理任何的硬件,它主要负责Linux系统中进程之间的通信

 

以上是关于Linux kernel简介的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

Linux Kernel简介

"arch/arm/kernel/head.S"里面一点片段的理解

构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)

Analyse Linux kernel by using Perf

Analyse Linux kernel by using Perf