一、Linux2.6相对于Linux2.4有相当大的改进,主要体现在如下几个方面:<1>新的调度器:使用了新的进程调度算法,它在高负载的情况下执行得很好,并且有很多处理器时可以进行很好的扩展<2>内核抢占:内核任务可以被抢占,从而提高系统的实时性<3>改进的线程模型:线程操作速度提高,可以处理任意数目的线程<4>虚拟内存的变化:融合了r-map(反向映射)技术<5>文件系统:对扩展属性和POSIX标准访问控制的支持<6>音频:新的音频体系结构ALSA替代旧的OSS,支持USB音频和MIDI设备,并支持全双工<7>总线、电源管理、网络(IPv6)、用户界面等
在设备驱动程序方面主要变化有:<1>内核模块从.o 变成.ko<2>驱动模块编译方式<3>模块使用计数<4>模块加载和卸载函数的定义等方面
二、内核目录介绍:arch:包含和硬件体系结构相关的代码block:块设备驱动程序I/O调度crypto:常用加密和散列算法
Documentation:内核各部分的通用解释和注释drivers:设备驱动程序,每个不同的驱动占用一个子目录,如char、block、net、mtd、i2c等fs:支持的各种文件系统include:头文件,与系统相关的头文件被放置在include/linux子目录下init:内核初始化代码ipc:进程间通信的代码
kernel:内核的最核心部分,包括进程调度、定时器等,与平台相关的放在 arch/*/kernel目录下lib:库文件代码
mm:内存管理代码,与平台相关的一部分代码放在 arch/*/mm目录下net:网络相关代码,实现了各种常见的网络协议scripts:包含用于配置内核的脚本文件security:主要包含SELinux模块sound:ALSA、OSS音频设备驱动核心代码和常用设备驱动usr:实现了用于打包和压缩的cpio等
三、Linux内核的组成部分Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET) 和进程间通信IPC等5个子系统组成
1、进程调度:进程调度处于系统的中心位置,内核中其他子系统都依赖它,Linux进程中如果所请求的资源不能得到满足,驱动一般会调度其他进程执行,并驱动对应的进程进入睡眠状态。睡眠分为可打断睡眠和不可打算睡眠,区别在于可打断睡眠在收到信号后会醒来进程状态转换图如下:设备驱动中,如果需要几个并发执行的任务,可以启动内核线程,该函数为:int kernel_thread(int (*fd)(void *), void *arg,unsigned long flags);
Linux2.6驱动程序《二》硬件基础升级Ubuntu 8.10到11.04的过程相关资讯 Linux驱动
- Linux的WDT(watchdog)驱动 (07/23/2015 10:25:38)
- Linux最简单的驱动编写及测试流程 (05/23/2015 09:25:33)
- AMD统一Linux开源和闭源驱动 (10/09/2014 16:36:05)
| - 在Linux上安装闭源驱动程序、媒体 (07/21/2015 15:13:14)
- AMD催化剂Linux驱动打败Windows驱 (01/04/2015 14:26:27)
- Linux驱动的两种加载方式过程分析 (06/23/2014 08:55:19)
|
本文评论 查看全部评论 (0)