\初级驱动\drivers_实验资料\drivers_实验资料\kernel课程\内核课程.chm
内核源码下载和结构;
目录结构:
Arch: 架构:arm x86 ppc mips :Arch/arm/
lib:存放体系结构特有的对诸如strlen和memcpy之类的通用函数的实现。与arch/*/lib下的代码不同,这里的库代码都是使用C编写的,在内核新的移植版本中可以直接使用。arch/*/lib就是跟具体架构相关的函数,大部分都是汇编代码
mm:存放体系结构特有的内存管理程序的实现。
Drivers:这个目录是内核中最庞大的一个目录,显卡、网卡、SCSI适配器、PCI总线、USB总线和其他任何Linux支持的外围设备或总线的驱动程序都可以在这里找到,驱动一般分成字符设备和块设备,但是现在内核把驱动做成了很多子系统,比如input子系统,mtd子系统,mmc子系统,media子系统等等
Init:内核的启动初始化代码。包括main.c、创建早期用户空间的代码以及其他初始化代码。
Kernel:内核中最核心的部分,包括进程的调度(kernel/sched.c),以及进程的创建和撤销(kernel/fork.c和kernel/exit.c)等,和平台相关的另外一部分核心的代码在arch/*/kernel目录。
Crypto:内核本身所用的加密API,实现了常用的加密和散列算法,还有一些压缩和CRC校验算法。
Usr:实现了用于打包和压缩的的cpio等
Virt:允许使用其他操作系统,然后在宿主 Linux 内核的用户空间中运行内核中的 KVM ,通过/dev/kvm字符设备来公开虚拟化后的硬件
Documentation:非常有用的目录,内核文档,可以帮助我们理解内核中的一些技术
fs: 文件系统的代码,包含Linux常见的文件系统格式,比如ext3,ext4,cramfs,jffs2,如果想让内核支持更多的文件系统格式,那么可以专注到这个目录
ipc:进程间通信的实现代码,比如共享内存,消息队列,信号量,主要是system V的,其他的就没有了
net: 大部分的网络协议代码就在这里了,比如IPv4,IPv6,tcp,udp,ieee80211,域套接字
1