课程大纲

介绍

    GNU的快速历史/Linux 发 牌 内核版本控制 发布周期 内核树 主线 内核与用户空间 机制与政策 Kernel Driver 备择方案 RTOS 与 Linux

内存 Management

    虚拟内存与物理内存 内核中的内存分配 页面 区 应用程序接口 板

内核补丁

    生命周期 Git 的 内核源代码 创建补丁 检查补丁 修复补丁 船舶补丁 审核代码

2016年美国

    获取内核源代码 配置/构建/安装 设备驱动程序(静态链接,在运行时加载) 初始化/退出 发 牌 导出符号 GPL 树外 makefile 模块初始化工具 内核树中的模块 Kconfig 参数传递 稀疏

字符驱动程序

    建筑 用户/内核界面 I/O 子系统 VFS公司 sysfs(设备、总线、驱动程序、类)、 kobject/ktype/kset Linux 内核驱动程序模型 设备文件 char 驱动程序 初始化 注册 打开、释放 cdev、cdev add、cdev del,... 大号/小号 udev、udevmonitor、udevadm

高级字符驱动程序操作

    ioctl 已解锁的 IOCTL 兼容 ioctl 用户空间 API 内核空间 API 流程生命周期 休眠/阻塞 睡觉/醒来 等待队列 雷鸣般的牛群 投票/选择

内核调试

    错误 调试 调试内核 使用 Git 进行二进制搜索 来自内核的调试支持 printk syslogd、klogd、loglevels、速率限制、调试级别、调试选择性子系统 通过查询 debugfs 进行调试 OOPS 调试, 断言 OOP 魔术 SysRq 键 千分贝/千分贝 JTAG的

描图

    GCOV公司 LCOV公司 o配置文件 FTrace NOP示踪剂 函数跟踪器 SCHED开关跟踪器 功能图跟踪器 动态跟踪器
跟踪 cmd/kernelshark
  • 性能
  • LTTng的
  • 中断
  • 中断与轮询 中断 程序部分 重入 事件 中断处理程序 共享中断处理程序 中断流 中断控制

      推迟工作

    上半部分/下半部分 软件 任务let 工作队列 螺纹接口

      并发

    关键区域/部分 原子 竞争条件 同步 锁定 锁定解决方案 僵局 冲突 锁定什么? 可以使用什么? 原子操作 旋转锁 读写器自旋锁 信号 二进制信号量 互斥锁 读写信号量 完成变量 顺序锁 禁用抢占 秩序和障碍

      时间

    赫兹 吉菲斯 大/小延迟 内核计时器

      硬件 I/O

    I/O 端口 I/O 存储器 如何处理访问寄存器的副作用?

      用户内核 Communication

    把(获取)_user() 复制到(从)_user() 内核 I/O 内存映射 PROCFS的 系统FS 调试FSS 中继FS 网联 ioctl

      可移植性

    字长 不透明类型 有符号/无符号字符 数据对齐 整体推广 代码重用 内延性 系统滴答声 页面大小 指令排序 SMP/抢占/高内存

      除非另有说明,否则内容和本课程大纲均采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可。

    要求

    • 基本熟悉以最终用户身份使用 GNU/Linux 系统
    • 基本熟悉命令行 shell
    • 用户空间/应用程序开发基础知识
    • 中级C语言编程知识
    • 应该以前参加 过嵌入式 GNU/Linux Systems Architecture (强烈推荐!)和/或对那里概述的主题有很好的理解
     35 小时

    人数



    每位参与者的报价

    客户评论 (3)

    相关课程

    课程分类