Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1264282
  • 博文数量: 404
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 5382
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-03 16:29
文章存档

2010年(40)

2009年(140)

2008年(224)

我的朋友

分类: LINUX

2009-03-04 12:23:04

2008年底至2009年初,宋宝华对上海贝尔-阿尔卡特FAD实施了为期5天的Linux内核和驱动高级开发技术培训,本次培训认识了一些新朋友。感谢贝尔-阿尔卡特各位同事的支持。培训的主体内容包括:

1 内核基本结构简介

1.1 Linux内核的组成

1.2 Linux内核的发展过程

1.3 Linux内核的编译、裁剪和升级

2 Linux进程管理子系统

2.1 Linux进程调度机制分析

2.2 用户空间抢占/内核抢占

2.3 SMP、多任务并发控制

2.4 内核线程及用户空间多线程开发

2.5 Linux实时性和实时Linux简介

2.6 实例:分析一个Linux多线程程序的各个线程调度的时机

3 Linux内存管理子系统

3.1 Linux进程0~4GB内存的整体分布

3.2 进程内核空间(3GB以上)内存分布

3.3 进程用户空间(3GB以下)内存分布

3.3.1 代码段、数据段、BSS段、堆和栈

3.3.2 0~3GB内存的堆、栈管理

3.3.3 应用程序内存泄露检测

3.4 page cache

3.5 /proc/meminfo内存使用统计信息

3.6 Linux内存管理子系统

3.6.1 page

3.6.2 zone

3.6.3 get pagekmallocvmalloc

3.6.4 page fault处理

3.6.5 mmap

3.7 实例:分析一个应用程序运行过程中动态的内存使用情况

4 内核中的定时

4.1 内核运行的节拍

4.2 内核定时器

4.3 内核延时(短延时和长延时)

4.4 实时钟

4.5 用户空间定时器和延时

4.6 实例1:分析Linux启动过程中从RTC取时间作为系统时间的过程

4.7 实例2:分析某触摸屏驱动中使用内核定时器的方法

5 中断和异常

5.1 Linux的硬件中断模型和内核出入口图

5.2 Linux对中断的响应和服务

5.3 底半部机制

5.3.1 软中断

5.3.2 Tasklet

5.3.3 工作队列

5.4 Linux异常的实现

5.5 中断与进线程的同步

5.6 实例:分析某触摸屏驱动中中断服务程序

6 Linux系统调用

6.1 C库、Posix和系统调用的关系

6.2 Linux系统调用实现分析

6.3 Linux系统调用归类整理

6.4 实例:在Linux内核中新增一个系统调用

7 块设备访问和文件系统

7.1 磁盘的特点和I/O操作排序

       7.2块设备I/O操作的“电梯”调度机制

7.3 块设备驱动I/O操作的数据流程分析

7.4 文件系统在不同语境的不同语义

7.5 Linux虚拟文件系统VFS

7.6 虚拟文件系统、磁盘文件系统和块设备驱动层次结构和数据流向分析

7.7 文件在存储设备上的组织

7.7.1 磁盘文件系统EXT2/EXT3

7.7.2 FLASH文件系统YAFFS2

7.8 文件系统的日志管理

       7.9实例1gmail文件系统GmailFS实现分析

       7.10实例2:剖析一个在磁盘读写文件的数据流全过程

8 Linux内核编程

    8.1 编码风格

8.2 链表、哈希表

    8.3 并发和同步

    8.4 等待队列

       8.5 内核线程

8.6 硬件I/O访问、DMA

8.8 内存申请和释放

8.9 Linux字符设备驱动结构

       8.10 实例:分析一个字符设备驱动

9  LINUX网络设备驱动和Linux网络协议栈

    9.1 OSI网络参考模型和套接字(SOCKET

    9.2 Linux网络设备驱动

9.2.1 Linux网络设备驱动的结构

9.2.2 中断和包收发

9.2.3 net_device结构体

9.2.4 套接字缓冲区sk_buff

           9.2.5 驱动中的数据包流动

              9.2.6 实例:CS8900网络控制器的驱动分析

    9.3 Linux网络协议栈

    9.4 融合在一起:硬件/驱动/协议栈中的数据包流动

10  Linux内核的调试

10.1 printk

10.2 oops

10.3 内核debug选项

10.4 gdbkgdbkdb

10.5 利用仿真器

11  Linux性能监控和调优

11.1 系统性能监控

11.1.1 CPU占用率

11.1.2 内存占用率

11.1.3 文件系统和I/O

11.1.4 网络吞吐量

       11.2 性能评价方法论

11.3 性能调优工具

11.3.1 常用工具(topvmstatiostatsysctl等)

11.3.2 oprofile

11.3.3 gprofile

11.3.4 LTT

       11.4 虚拟内存调优

     11.5 文件系统和I/O调优

    11.6 网络调优

    11.7 进程通讯调优

    11.8 编码设计调优

    11.9 网络存储调优

    11.10 数据库调优

12  用户程序及内核崩溃转储

12.1 段错误和core dump

12.2 kdumpkexec

12.3 lkcd

13  编译器和工具链

13.1 Linux编译、连接工具链

13.2 Linux的可执行文件格式(ELF)格式分析

13.3 Linux应用程序装载运行机制

13.4 Linux内核模块装载运行机制

13.5 Linux静态链接库和动态链接库

13.6 编译、连接过程分析

13.7 库、头文件及release管理

14  Linux内核的移植

14.1 嵌入式设备上的BSP开发

14.2 驱动的目录组织

14.3 内核程序的可移植性

阅读(1531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~