logo资料库

Linux内核编程:学习路线指南.pdf

第1页 / 共69页
第2页 / 共69页
第3页 / 共69页
第4页 / 共69页
第5页 / 共69页
第6页 / 共69页
第7页 / 共69页
第8页 / 共69页
资料共69页,剩余部分请下载后查看
封面
第1章:内核和驱动的关系
1.1 内核工程师和驱动工程师的区别
1.2 学习驱动能找什么工作?
1.3 学习内核能找什么工作?
第2章:如何学习Linux内核?
2.1 内核的学习难点
2.2 Linux内核驱动开发生态
2.3 掌握科学高效的学习方法
2.4 需要的理论知识和技能
第3章:搭建Linux内核学习环境
3.1 小宅实验室简介
3.2 内核版本的选择
3.3 交叉编译器的选择(上):GCC
3.4 交叉编译器的选择(下):Clang
第4章:Linux内核编程入门
4.1 Linux内核编码风格
4.2 内核模块的编译和运行
4.3 内核调试
更多内核学习资料下载
宅学部落 专注嵌入式精品教程 www.zhaixue.cc
Linux内核编程:入门指南 王利涛
Linux内核开发领域 • 招聘职位(Title) – 初级/高级/资深Linux嵌入式工程师 – 系统软件工程师、嵌入式驱动工程师 – Linux内核工程师、Linux驱动工程师 – Linux开发工程师、架构师
内核工程师 VS 驱动工程师 • 内核工程师 – 岗位分布 • 驱动工程师 – 岗位分布 • 互联网、云计算、安全 • OS发行商、芯片原厂 • 芯片原厂、方案厂商 • 嵌入式设备厂商 – 技能树 – 技能树 • 内存管理、调度、实时 性 • 进程、同步与并发 • 存储、文件系统 • 网络子系统 • 虚拟化、区块链、容器 • 内核编译、移植 • 设备模型、驱动框架 • USB、PCI、I2C、UART • 芯片手册、硬件电路 • 音视频编解码
驱动与内核的关系 • 驱动主要用来驱动各种硬件 – 驱动是内核代码的一部分:内核中80%的代码都是驱动 – 驱动不同的CPU、硬件平台、外设、热插拔设备 • 内核一般用来提供OS的各种服务 – Linux内核划分:BSP、驱动、基础服务、应用服务 – 基础服务:进程、调度、内存管理、同步机制、中断 – 应用服务:虚拟化、容器、网络、存储、文件系统 – 随着应用场景变化,新的功能会不断添加进来
学习驱动能找什么工作?
学习驱动能找什么工作? • 驱动工程师的岗位分布 • IP厂商、咨询公司:ARM、Linaro • 芯片原厂 – 国际厂商:TI、CSR、NXP、英飞凌、高通、Freescale – 国内厂商:海思、联发科、瑞芯微、全志、君正、龙芯 – AI芯片厂商、RISC-V • 方案厂商:模组、解决方案、智能硬件、开发板 • 设备公司:智能音箱、无人机、智能冰箱、电视 • 嵌入式外包公司
学习驱动能找什么工作? • 驱动工程师的主要工作 • IP解决方案:IP授权、配套的软件包 • 使能硬件:硬件不断升级、添加新的feature • Bug fix:基于某个CPU硬件平台、修复各种Bug • 性能优化:释放硬件的最大性能 • 系统集成:适配不同的CPU架构、硬件平台 • 输出稳定、高性能、可适配的BSP软件包、Turkey解 决方案
分享到:
收藏