linux驱动开发
1.linux系统(软件范畴)的用户空间(用户态)和内核空间(内核态)特点
用户空间特点:
1.用户空间包含的软件就是各种用户命令,应用程序所需要的动态库
用户自己编写的应用程序(UC,QT)等
2.用户空间的软件在运行的时候对应的cpu核工作模式为User用户模式
3.用户空间的软件不允许直接访问内核空间的代码,地址以及数据
4.linux系统4G虚拟地址空间划分:
用户空间占前3G,地址范围:0X000000-0XBFFFFFFF,用户虚机地址
内核空间占后1G,地址范围:0X000000-0XFFFFFFFF,内核虚拟地址
所以应用程序要访问内核空间地址,必须通过系统调用间接访问
5.用户空的件软件如果进行了非法的内存访问,不会造成操作系统的奔溃,
反而是操作系统直接干掉应用程序(例如:segment fault)
例如:*(int *)0=0;
6.用户空间的软件不允许直接访问外设地址
如果要访问,必须提前将威慑的地址映射到用户的虚拟地址或者内核虚拟地址,一旦完成映射
访问用户虚拟地址或者内核虚拟地址就是在访问外设的物理地址
7.用户空间的软件类似网络编程中的客户端
内核空间的软件将来要时刻服务郁用户空间的软件
内核空间特点:
1.内核空间的软件就是uImage(包含了七大子系统)
2.内核空间的软件在运行的时候对应的cpu核工作模式为svc管理模式
3.内核空间的软件如果对内存进行非法的访问,操作系统直接奔溃(类似windows蓝屏)
内核崩溃又称为吐核
例如:*(int *)0=0
4.
浙公网安备 33010602011771号