1. 操作系统有什么用
- 用于处理复杂的并发任务
- 提供内存管理机制
- 应用程序可使用统一的系统调用接口访问各种设备,而不论设备的具体类型和工作方式
2. linux设备分类
- 字符设备:以串行顺序依次访问的设备,如触摸屏、磁带驱动器、鼠标等。
- 块设备:可以按任意顺序访问,以块为单位进行操作,如硬盘、eMMC等。
- 网络设备:面向数据包的接受和发送,不倾向于对应于文件系统的节点。内核与网络设备的通信主要使用套接字接口。
3. Linux设备驱动与软硬件系统的关系
4. Linux设备驱动工程师要求
- 硬件基础:懂得SRAM、Flash、SDRAM、磁盘的读写方式,UART、I2C、USB等设备接口以及轮询、中断、DMA的原理,PCI总线的工作方式以及CPU的内存管理单元(MMU)等。
- C语言基础:灵活运用C语言结构体、指针、函数指针以及内存动态申请和释放等。
- Linux内核基础:了解驱动与内核的接口、内核定义的驱动体系结构,尤其是块设备、网络设备、Flash设备、串口设备等复杂设备。
- 多任务并发控制和同步基础:自旋锁、互斥、信号量、等待队列等并发与同步机制。