你的位置: 首页 > 公开课首页 > 职业素养 > 课程详情
课程介绍 评价详情(0)
本课程名称: 嵌入式Linux内核设计高级研修班
查看更多:职业素养公开课
我要找内训供应商
授课内容与课纲相符0低0%
讲师授课水平0低0%
服务态度0低0%
课程介绍 评价详情(0)
培训受众:
◆ 熟悉C语言; ◆ 熟悉汇编语言; ◆ 了解嵌入式系统的基本知识。
课程收益:
其实不然,我们需要在很多方面进行内核开发
1、在嵌入式领域,由于有数不清处理器架构,所以内核在某些架构上就没有得到完全支持。
2、在工控领域,我们常常希望获得高精确时钟,而在绝大多数架构上Linux内核通常只能提供机遇tick的时钟(1-10毫秒)
3、在存储领域,我们常常要加密硬盘或则进行磁盘在线备份,这当然又要修改Linux内核。
本课程针对以上问题,着重解剖Linux内核的深层架构,将博大精深的Linux内核精确、完整地架构展现在学员面前,还要教会学员如何自己独立的在工作中如何分析、开发Linux内核。
亮点关键词:嵌入式Linux内核 / 高精度时钟 / 修改内核 / 掌握内核开发能力
培训颁发证书:
课程大纲
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 内核物理内存的管理
◆ 三层内存管理结构 node/zone/page
◆ bootmem的构建,为什么需要bootmem ?
◆ page数组的作用与构建
◆ 伙伴算法剖析
◆ slab 与kmalloc剖析
◆ 内存池
◆ 内核编程中如何灵活使用物理内存
2.3 系统内存运作体系
2.3.1 现代处理器对虚拟内存的支持
2.3.2 内核态虚拟地址的映射
2.3.3 内核对用户态虚拟内存的支持
◆ 堆的虚拟、物理内存的扩展与收缩
◆ 栈的虚拟、物理内存的扩展与收缩
◆ 可执行镜像的物理内存的扩展与收缩
◆ 文件map地址的物理内存的扩展与收缩
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内核中对线程的支持:◆ tid pid ◆ 线程局部存储
3.6 内核线程
4 中断
4.1内核对中断管理的层次:
◆ 中断控制器的管理 ◆ 体系结构相关的中断管理 ◆ 体系结构无关的中断管理
4.2 中断产生与中断进入:◆ 发生在内核态的中断进入 ◆ 发生在用户态的中断进入
4.3 中断与驱动的中断处理函数
◆ 中断如何定位到驱动的中断处理函数
◆ 中断处理函数要注意的问题
◆ 中断处理函数得不到执行该如何调试
4.4 中断退出:◆ 中断退出到内核态需要进行的动作 ◆ 中断退出到用户态需要进行的动作
4.5 软中断:
◆ 软中断概念 ◆ 软中断运行时机与softirqd ◆ 内核中的软中断综诉◆ tasklet与软中断的关系
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 新的时钟体系:◆ 旧时钟体系的问题 ◆ 获得更精确定时的方法-- high resolution timer
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 调度策略:◆ linux的几种调度策略 ◆ 扩展:调度策略与实时性
8.4 调度器结构
8.5 切换:
◆ context的加载与保存◆进程虚拟地址空间的切换◆ 同一进程内线程切换时的地址空间如何保持一致
8.5.4 与内核线程的切换
8.6 线程第一次被调度
8.7抢占
◆ 用户态抢占 ◆ 内核态抢占 ◆ linux内核抢占的实现 ◆ 抢占与实时性 ◆ 内核中的抢占检查点
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文件系统
◆ nand上的jffs2文件系统格式
◆ jffs2的加载
◆ jffs2的磨损均衡与垃圾回收jffs2的
◆ 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折优惠,(含资料\午餐\课时费\证书)
培训师介绍
本课程名称: 嵌入式Linux内核设计高级研修班
查看更多:职业素养公开课