宅学部落
专注嵌入式精品教程
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解
决方案