Linux Kernel简介

Posted by Gityuan on April 1, 2016

一. Linux全局观

先来看一幅Linux kernel map:点击查看大图

linux kernel map

这是makelinux网站提供的一幅非常经典的Linux内核图,涵盖了内核最为核心的方法. Linux除了驱动开发外,还有很多通用子系统,比如CPU, memory, file system等核心模块,即便不做底层驱动开发, 掌握这些模块对于加深理解整个系统运转机制还是很有帮助。

二. Kernel源码目录结构

简要列举Kernel源代码的常见目录:

目录 解释 部分子目录
kernel 内核管理相关,进程调度等 sched/fork等
fs 文件子系统 ext4/f2fs/fuse/debugfs/proc等
mm 内存子系统  
drivers 设备驱动 staging/cpufreq/gpu等
arch 所有CPU体系结构相关的代码 armm64/x86等
include 头文件 linux/uapi/asm_generic等
lib 标准通用的C库  
ipc 进程间通信相关  
init 初始化过程(非系统引导阶段)  
block 块设备驱动程序 -
crypto 加密、解密、校验算法 -
Documentation 说明文档 -

三. 资料

  • lxr.free-electrons:LXR(The Linux Cross Referencer),提供方便地kernel在线源码阅读。
  • makelinux.net:可快速跳转到linux kernel map所涉及的任一方法;

微信公众号 Gityuan | 微博 weibo.com/gityuan | 博客 留言区交流