Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
课程大纲
介绍
-
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开关跟踪器
功能图跟踪器
动态跟踪器
中断与轮询 中断 程序部分 重入 事件 中断处理程序 共享中断处理程序 中断流 中断控制
-
推迟工作
上半部分/下半部分 软件 任务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)
有很多练习。
Katarzyna Straszewska - Swiss AviationSoftware Ltd.
课程 - Build Native iOS and Android Apps with Flutter
机器翻译
有关实验室的更多信息。
Sarbin - Cagayan Electric Power And Light Co., Inc.
课程 - Flutter Development Bootcamp with Dart
机器翻译
On time, training resources is readily available