Linux Kernel 2.6.xx用于嵌入式系统的特性!
最近正在学习把Linux Kernel 2.6.xx内核用于构建嵌入式Linux系统的问题,这方面的问题对于自己是一个全新的课题,以前比较多的接触的是Linux应用于Server端的应用,也比较多的研究一些定制Linux Server和桌面的问题,而对于嵌入式应用特性和裁减Linux系统接触的不是很多,现在略微的研究一下关于嵌入式Linux内核的一些问题。
Linux 2.6.xx kernel对于嵌入式的应用方面的考量要比前代2.4.xx完善和健壮的多,主要表现在三个特性的支持上:
抢占式内核 (Kernel Preemption);
高效的调度器(新的系统实现了新的调度器O(1)算法);
改进的同步机制;
对于抢占式内核,内核中加入了一些可以抢占的内核插入点,这些插入点上内核运行是可以中断的,进程处于内核态也可以让出CPU的占有而实现任务调度,所以用户可以安排高优先级的进程保证该任务的实时性。
甚至2.6.xx的内核可以针对嵌入式系统编译成没有虚拟内存的系统,而由用户负责物理内存的使用量等问题。
全新的任务调度器使用新的调度算法,在每次调度任务是不再扫描整个候选任务队列,而是直接从当前队列(Current Queue)中选择一个任务运行,用完时间片或需调度出运行状态的任务会被放到到期队列(Expired Queue),这种新的调度方式效率更高,被叫做O(1)调度器。
支持所谓快速用户空间信号量同步,支持用户空间检查阻塞需求,也支持高优先级的应用程序或线程第一时间获得资源的访问权。
NPTL高级线程模型的支持。更强大的线程能力,相关测试表明2.6内核可以在两秒内完成10万线程的启停操作,这在之前的内核上需要15分钟之多。POSIX线程支持POSIX信号和高可靠性的时钟支持。POSIX信号是不会丢失和带参数的并且支持线程间传送。嵌入式领域经常要求很高的实时周期任务,POSIX计时器可以保证任务被很好的以一定周期运行,保证更精确的任务调度能力,精确度为1kHz。
2.6内核的子系统架构设计具有更好的移植性,更容易支持定制的硬件和广泛的硬件支持列表,甚至支持没有MMU的微控制器系统,包括M68K,NEC v850等。ALSA音频子系统和Video4Linux视频系统也让Linux2.6能在嵌入式领域有更多机会。
硬件支持方面,2.6内核全面现实了USB2.0的支持。
对于无线设备的支持:包括无线网络,红外设备和蓝牙等。
其他的诸如NFSv4的内核支持等。
RT linux的一些资源和连接:
DIAPM RTAI OS RTL Project
RT Patch(realtime-preempt)
RTAI.org
Linux 2.6.xx kernel对于嵌入式的应用方面的考量要比前代2.4.xx完善和健壮的多,主要表现在三个特性的支持上:
抢占式内核 (Kernel Preemption);
高效的调度器(新的系统实现了新的调度器O(1)算法);
改进的同步机制;
对于抢占式内核,内核中加入了一些可以抢占的内核插入点,这些插入点上内核运行是可以中断的,进程处于内核态也可以让出CPU的占有而实现任务调度,所以用户可以安排高优先级的进程保证该任务的实时性。
甚至2.6.xx的内核可以针对嵌入式系统编译成没有虚拟内存的系统,而由用户负责物理内存的使用量等问题。
全新的任务调度器使用新的调度算法,在每次调度任务是不再扫描整个候选任务队列,而是直接从当前队列(Current Queue)中选择一个任务运行,用完时间片或需调度出运行状态的任务会被放到到期队列(Expired Queue),这种新的调度方式效率更高,被叫做O(1)调度器。
支持所谓快速用户空间信号量同步,支持用户空间检查阻塞需求,也支持高优先级的应用程序或线程第一时间获得资源的访问权。
NPTL高级线程模型的支持。更强大的线程能力,相关测试表明2.6内核可以在两秒内完成10万线程的启停操作,这在之前的内核上需要15分钟之多。POSIX线程支持POSIX信号和高可靠性的时钟支持。POSIX信号是不会丢失和带参数的并且支持线程间传送。嵌入式领域经常要求很高的实时周期任务,POSIX计时器可以保证任务被很好的以一定周期运行,保证更精确的任务调度能力,精确度为1kHz。
2.6内核的子系统架构设计具有更好的移植性,更容易支持定制的硬件和广泛的硬件支持列表,甚至支持没有MMU的微控制器系统,包括M68K,NEC v850等。ALSA音频子系统和Video4Linux视频系统也让Linux2.6能在嵌入式领域有更多机会。
硬件支持方面,2.6内核全面现实了USB2.0的支持。
对于无线设备的支持:包括无线网络,红外设备和蓝牙等。
其他的诸如NFSv4的内核支持等。
RT linux的一些资源和连接:
DIAPM RTAI OS RTL Project
RT Patch(realtime-preempt)
RTAI.org
Comments