linux下应用与驱动交互原理:
1.驱动:获取外设传感器数据,控制外设响应
2.应用:基于外设获取的数据响应相关操作
ps:linux下驱动与应用程序完全分开(与32不同)
由此引入用户空间、内核空间(刚接触->仅仅了解即可)
1.用户空间(用户态):应用程序在此运行(addr:0-3G)
2.内核空间(内核态):驱动程序在此运行 (addr:3-4G)
由于内核空间无访问权限限制,为了提高安全性->分类出用户空间、内核空间->限制访问权限->避免应用程序不正确使用设备、窃取其他进程资源->危害系统
应用程序访问内核资源:
1.系统调用
2.异常(中断)
3.陷入
系统调用:(抽象简介)
ps:系统调用处于内核空间,应用程序无法直接访问,因此需要“陷入”到内核当中(软中断),陷入后还需要指定系统调用号(每个系统调用都有一个系统调用号)