西安Linux内核修炼培训班

请询价

小班

班制

请咨询

课时

任意时段

班型

西安华清远见资深顾问

专业解答各类课程问题、介绍师资和学校情况

课程介绍

第一天

学习目标全面认识和了解Linux内核的框架,掌握学习Linux内核、分析阅读Linux内核源码的方法。

第1章.Linux内核的基本面

1.1 Linux内核成长史

1.2 多变的Linux内核版本号

1.3 获取Linux内核的源代码

1.4 Linux内核与那些发行版

1.5 Linux内核是如何工作的

·“Linux虚拟机”——系统调用

·台前——文件系统

·幕后——进程调度

·幕后——内存管理

·模块化的Kernel

第2章.Linux内核的按需配置与编译

2.1 按需配置Linux内核

·配置方式的多种选择

·认识常见的配置选项

·重视.config文件

2.2 为Linux内核打补丁

2.3 编译Linux内核

·认识一些与编译有关的目录与文件

·构建编译环境

·备份是重要的

·编译步骤

·一些实用的小技巧

2.4 Linux内核的文档及编译

2.5 【实验】配置、编译Linux内核

第3章.浏览Linux内核源码

3.1 所需的技术基础

3.2 Linux内核的体系结构

3.3 Linux内核源码树

3.4 使用vim+cscope+ctags

3.5 Linux内核代码的特点

·gcc扩展的使用

·内嵌汇编

3.6 Linux内核中的链表

3.7 代码样例

3.8 【实验】配置vim浏览内核源码

第4章.如何分析Linux内核源码

4.1 Linux内核学习的心理问题

4.2 kernel地图:Kconfig与Makefile

·看懂Kconfig与Makefile

·利用Kconfig与Makefile定位目标代码

4.3 分析Linux内核源码如何入手

·分析README

·分析Kconfig与Makefile

·态度决定一切:从初始化函数开始

4.4 【实验】定位并分析某个子系统或模块在内核中的实现

第二天

学习目标掌握分析钻研某个子系统在内核中实现机制的方法,了解内核中的进程管理、内存管理、文件系统。

第5章.开始之前——Before we begin

5.1 系统初始化

5.2 Linux内核中的时间

5.3 系统调用

5.4 中断与中断处理

5.5 Linux内核中的同步

第6章.开始之前——子系统的初始化

6.1 Linux内核选项解析

·Linux内核选项

·注册Linux内核选项

·两次解析

6.2 那些入口函数

·initcall.init节

·do_initcalls()函数

6.3 以PCI子系统为例

6.4 【实验】分析某个子系统的初始化过程

第7章.进程管理与调度

7.1 Linux中的进程

7.2 进程的来源:fork和clone

7.3 所有美好的事物都会结束:进程退出

7.4 内核线程

7.5 进程调度

·O(1)调度

·CFS调度

7.6 不确定的Multi-thread

第8章.内存管理

8.1 物理地址、逻辑地址与虚拟地址

8.2 分页

8.3 内存在内核中的分配

8.4 进程的内存组织

8.5 内存映射mmap

8.6 页面缓存

第9章.虚拟文件系统VFS

9.1 VFS的体系结构

9.2 理解VFS的那些数据结构

9.3 VFS的缓存机制

9.4 文件系统的注册与安装

9.5 文件系统的日志管理

第三天

学习目标了解如何参与Linux内核的开发和测试,以及一些常用的调试手段和工具。

第10章.Intent Receiver

10.1 工具链及其生成

10.2 Linux内核中的Makefile

10.3 严格遵守Linux内核的编码风格

10.4 添加代码到Linux内核

10.5 为什么Linux内核没有稳定的API?

10.6 如何提交补丁

10.7 学会使用Git

10.8 【实验】安装Git并用它来来获取新的Linux内核源码

第11章.一些上镜的Linux内核调试手段与工具

11.1 Linux内核对调试的支持

11.2 二分法与printk

11.3 获取Linux内核信息

11.4 调试福音之oops

11.5 神奇的SysRq

11.6 调试利器之GDB

11.7 调试利器之Systemtap

11.8 Linux内核崩溃转储

11.9 利用模拟器

11.10 【实验】分析一个oops

11.11 【实验】配置GDB调试环境并调试Linux内核

第12章.子系统的初始化

12.1 Linux内核测试的4个阶段

12.2 性能分析与调优工具

·CPU性能分析与调优

·Memory性能分析与调优

·IO性能分析与调优

·Network性能分析与调优

12.3 oprofile

12.4 启动速度调优

12.5 【实验】Linux内核性能测试并提交Linux内核测试报告

第四天

学习目标掌握驱动的开发方法,掌握Android运行所需要的Linux内核开发和技巧。

第13章.驱动开发的方法

13.1 模块化的Linux内核

13.2 一模块“Hello World!”

13.3 重中之重:设备模型

·总线、设备和驱动

·在USB子系统上的投影

13.4 驱动开发三件宝:spec、datasheet与Linux内核源码

13.5 sysfs

13.6 【实验】结合设备模型分析一个Linux内核中现有的驱动

13.7 【实验】编写一个简单的模块

第14章.Android环境的相关介绍

1、配置编译高版本的Linux内核

2、移植Linux-3.14内核支持FS4412开发板

● 添加网卡驱动

● 添加eMMC驱动

● 添加SD卡驱动

● 添加LCD驱动

● 添加USB驱动

3、分析解决移植过程中出现的错误

第15章.移植Android所需要的Linux内核

15.1 Android运行所需要对Linux内核作的修改

15.2 Android对现有驱动所必须做的修改

·键盘、鼠标驱动和键值映射

·显示驱动

·audio驱动

15.3 编译和拓展Android的启动分区boot.img

15.4 Android的启动过程分析和调试技术

15.5 【实验】生成一个可供Android启动的Linux内核

15.6 【实验】制作和生成一个可运行的boot.img

第16章.实现Android的硬件抽象层

16.1 Android的硬件抽象层的原理和构成

16.2 实现ril,完成Android的移动网络功能支持

16.3 libhardware_legacy接口

16.4 libhardware接口

16.5 蓝牙支持

16.6 【实验】将一个wifi驱动加入Android硬件抽象层

任课老师

  • 张老师

    嵌入式开发培训

    嵌入式领域超过10年以上的产品研发经验及管理经验;精通arm 等多种硬件平台, 精通uboot,内核的移植与开发,熟悉多种文件系统;精通多种硬件接口的开发及调试工作;熟悉嵌入式方向的应用开发;

  • 余老师

    计算机技术培训

    有丰富的开发经验,曾在世界500强企业担任开发工程师、架构师、项目经理等岗位超10年;精通Java技术栈,对SpringBoot、Redis、ElasticSeach、MQ、Docker、SpringCloud等有深入研究,专注于分布式、高可用、高性能、微服务架构的设计;精通项目开发流程和项目管理;掌握数据库Oracle、MySql、DB2的设计、调优及管理;熟悉Web前端技术栈;对大数据尤其是数据仓库和BI有深入了解;

  • 程老师

    嵌入式开发培训

    曾参与基于阿里云的智能家居系统、NB-IOT窄带物联网实验台、AIOT人工智能教学实验箱等产品研发工作,其中高校AI工业互联网教学实验平台曾获山东省物联网协会科技进步奖。指导学生参加全国大学生嵌入式芯片与系统设计竞赛、山东省智能控制大赛等多项赛事。担任山东农业工程学院、德州学院等院校的校外导师。精通嵌入式Linux应用开发及多任务编程。精通STM32单片机编程及常用的接口和通讯协议,具备相关硬件电路设计经验。掌握ARM体系结构与编程模型,具有uboot/linux内核移植、裁剪及驱动开发经验。主讲课程:《Linux操作系统》《C语言程序设计》《ARM体系结构》《stm32》《系统移植》等课程。

查看更多教师

北京华清远见科技发展有限公司西安分公司

人工智能、物联网教育的行业先行者

精品课程

32门精品课

专业老师

21名

上课位置

高新一路16号创业大厦

机构主页

精选推荐

我的位置: 首页 西安 西安华清远见 课程详情