- 同类热点网络课程
- 暂无相关热门网络课程
一、课程介绍
Linux博大精深、代码量极大、复杂度极高。由于无法掌握内核开发的能力,以致有些观点认为,Linux内核不需要动,当成黑匣子就行了。
其实不然,我们需要在很多方面进行内核开发
1、在嵌入式领域,由于有数不清处理器架构,所以内核在某些架构上就没有得到完全支持。
2、在工控领域,我们常常希望获得高精确时钟,而在绝大多数架构上Linux内核通常只能提供机遇tick的时钟(1-10毫秒)
3、在存储领域,我们常常要加密硬盘或则进行磁盘在线备份,这当然又要修改Linux内核。
本课程针对以上问题,着重解剖Linux内核的深层架构,将博大精深的Linux内核精确、完整地架构展现在学员面前,还要教会学员如何自己独立的在工作中如何分析、开发Linux内核。
亮点关键词:嵌入式Linux内核 / 高精度时钟 / 修改内核 / 掌握内核开发能力
二、主办单位:中国高科技产业化研究会信号处理专家委员会
三、研修时间:2009年09月10-13日(9日报到)
四、研修地点:北 京(具体地点及路线图详见报到通知)
五、培训对象
嵌入式相关领域的专业人士,具有开发和设计经验的硬件或软件开发工程师系统移植工程师。
学员学习本课程应具备下列基础知识:
◆ 熟悉C语言; ◆ 熟悉汇编语言; ◆ 了解嵌入式系统的基本知识。
五、授课内容:
第一天
1 前言
1.1 Linux操作系统--linux内核—linux内核骨架
1.2 linux内核演进
1.3 linux与嵌入式
1.4 linux分支版本综述
2 内存
2.1 进程虚拟地址空间(用户进程角度看内存)
2.1.1 进程虚拟地址种类与分布 2.1.2 进程内存泄露的本质
2.2 内核物理内存的管理
2.3 系统内存运作体系
2.3.1 现代处理器对虚拟内存的支持
2.3.2 内核态虚拟地址的映射
2.3.3 内核对用户态虚拟内存的支持
2.3.4 swap 机制
2.3.5 vmalloc、io端口虚拟地址
2.3.6 page与页表的映射与反映射
2.3.7 hack segment fault
第二天
3 进程与线程
3.1 进程创建
3.1.1 fork :◆ 准备新的内核栈 ◆ 继承资源 ◆ 新进程的内核运行轨迹
3.1.2 exec:◆ 映射可执行镜像 ◆ 映射ld.so ◆ 新进程的用户栈准备
3.2新进程的如何得到执行
3.2.1 新进程内核运行轨迹:◆ 返回用户态第一条指令 ◆ ld.so的工作
3.3如何调试进入不到main的进程
3.4 linux线程库实现原理
3.5 linux内核中对线程的支持
3.6 内核线程
4 中断
4.1内核对中断管理的层次:
4.2 中断产生与中断进入:◆ 发生在内核态的中断进入 ◆ 发生在用户态的中断进入
4.3 中断与驱动的中断处理函数
4.4 中断退出4.5 软中断:
4.6 全局影响
第三天
5 系统调用与异常
5.1 用户进程、libc与系统调用的联系
5.2 X86处理器4级模式
5.3 X86处理器上系统调用的实现
5.4 hack一个系统调用—read
5.5异常表的建立
5.6异常的种类及内核相应的处理
6时间与定时器
6.1 linux内核中时间的管理
6.2 定时器
6.3 新的时钟体系
6.4 时钟对电源管理的影响及其改进-- dynamic timer
6.5 在内核编程中使用timer
6.6 时钟中断丢失对时间、定时器的影响
7 信号
7.1信号产生
7.2信号递交
7.3信号执行
7.4 linux2.6内核中对线程信号的支持
7.5信号与系统调用的重进入
7.6信号与内核线程
8 调度与抢占
8.1内核的脉搏 tick
◆ tick的产生 ◆ tick与时间片 ◆ 扩展:没有tick,linux内核是否还能工作?
8.2 导致调度的几种时机
8.3 调度策略
8.4 调度器结构
8.5 切换:
8.5.4 与内核线程的切换
8.6 线程第一次被调度
8.7抢占
8.8 如何保证特定线程的实时性
8.9 hack一个中断导致抢占的场景
8.10 新的内核tick机制
第四天
9 内核编程用到的若干互持同步机制
9.1 信号量
9.2 自旋锁
9.3 关中断
9.4 原子操作
9.5 rcu
9.6 禁止抢占
10 虚拟文件系统
10.1 虚拟文件系统地位与架构
10.2 虚拟文件系统的抽象:◆ 对文件系统实体的抽象 ◆ 对文件系统操作的抽象
10.3 虚拟文件系统提供的文件系统实体的cache机制
10.4 虚拟文件系统提供的通用例程
10.5 rootfs—文件系统的始祖
11 块设备驱动
11.1 块设备驱动的层次 11.2 文件系统与块设备交互 11.3 底层驱动与块设备交互
12 基于块设备的ext2文件系统
12.1 ext2文件系统磁盘格式
12.2 ext2文件系统与虚拟文件系统的交互
12.3 文件逻辑地址与磁盘物理地址的转换
12.4 ext2的目录查找、读写分析
13 基于mtd的jffs2文件系统
14 cache机制
14.1 page cache里有哪些数据
14.2 何时向page cache里增加page
14.3 磁盘文件与page cache
14.4 page cache的收缩与收缩时机
14.5 buffer_head与page cache的关系
14.6 读文件与page cache的交互
14.7写文件与page cache的交互
15 关于实时性的讨论
15.1 RTlinux实时性的实现
15.2 MontaVista 实时性的实现
15.3 标准linux下获得精确定时的简单方法
六、授课专家
周老师:首席讲师,10年以上嵌入式技术从业经验,主持开发过多个大型嵌入式项目,涉及网络通讯,消费电子,工业控制,信息终端 等行业。对计算机体系结构有深入研究,熟悉电子工程和嵌入式领域技术发展趋势。熟悉ARM/PPC/MIPS等通用嵌入式平台,对应用优化的ASSP方 案,如Omap/Davinci/i.MX/PowerQUICC/Xscale更有独到见解。活跃于开源Linux社区,主持ZIX嵌入式开发环境项 目,精通Mista Linux。为很多客户提供了最优解决方案。对系统移植有很强的经验,在X86/ARM/XSCALE/PowerPC/MIPS等各种体系结构平台上移植Linux内核;对于嵌入式Linux的实时性和CELinux的特点有深入研究。
七、授课方法:
采用理论与上机实践同步的专题讲解,结合交流、讨论、案例分析等互动的方式,学习后由中国高科技产业化研究会向经考核合格的学员颁发证书。并为学员与专家、学员与学员之间建立广阔的交流平台,使学员在学习后也可以与专家共同解决在自己工作实践中碰到的困惑与难题。
八、收费标准:2600元/人,3人以上9.5折优惠,(含资料\午餐\课时费\证书)