一、Linux内核2.6特点:
1.新的调度器
2.内核抢占
3.改进线程模型
4.虚拟内存
5.文件系统
6.音频:音频体系结构ALSA.支持USB音频和MIDI设备,并支持全双工重放功能。
7.总线:可以直接通过IDE驱动程序来支持CD/RW设备
8.电源管理:支持ACPI,用于调整CPU在不同负载下工作于不同时钟频率以降低功耗。
9.联网和IPSec
10.用户界面层。
二、LINUX内核的组成
1.LINUX内核源代码目录结构
1)arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。如i386,arm,powerpc,mips等。
2)block:块设备驱动程序I/O调度。
3)crypto:常用加密和散列算法,还有一些散列和CRC校验。
4)Documentation:内核各部分通用解释和注释。
5)drivers:设备驱动程序,每个不同的驱动程序占一个子目录,如char,block,net,mtd,i2c等
6)fs:支持各种文件系统,如EXT,FAT,NTFS,JFFS2
7)include:头文件,与系统相关的头文件放在include/Linux下。
8)init:内核初始化代码
9)ipc:进程间通信代码
10)kernel:内核的最核心部分,包括定时器,进程调度,而和平台相关的代码放在arch/*/kernel目录下
11)lib:库文件代码
12)mm:内存管理代码,而和平台相关的代码放在arch/*/mm目录下
13)net:网络相关代码,实现各种网络相关协议
14)scripts:配置内核中脚本文件
15)security:主要是SELinux模块
16)sound:ALSA,OSS音频中设备的核心代码和常用设备驱动
17)usr:实现了用于打包和压缩的CPIO等
2.LINUX的内核组成部分
2.1 LINUX主要用进程调度,虚拟文件系统,内存管理,网络接口,进程间通信5个子系统构成
1)进程调度:在设备驱动编程中,当请求的资源不能得到满足时,驱动一般会调度其他进程执行,其对应的进程进入睡眠状态,直到它请求的资源被释放,才会被唤醒而进制就绪状态。
2)内存管理:控制多个内存安全的使用主内存的区域,当CPU提供内存管理单元时,Linux内存完成每个虚拟内存到物理内存的转换的过程
3)虚拟文件系统
4)网络接口
5)进程通信
Linux支持多种通信,信号量,共享内存,通道。A.进程调度与内存管理之间的关系:创建进程的第一件事儿就是将程序和数据装入内存中。B.进程间通信和内存管理之间的关系,进程间通信子系统依赖于内存管理支持共享内存通信机制,这种机制除了允许两个进程拥有自己的私有空间外,还允许存取共享内存区域。C.虚拟文件系统和网络接口之前打的关系,虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK设备。D,内存管理和虚拟文件系统的关系,内存管理利用虚拟文件系统支持交换,交换进程定期由调度程序调度。当一个进程存取的内存的映射被换出时,内存管理向文件系统发出请求。
3.Linux内核空间与用户空间
Linux只能通过系统调用和硬件中断来完成用户空间到内核空间的控制转移