怎样去理解Linux用户态和内核态?https://zhuanlan.zhihu.com/p/69554144
Linux探秘之用户态与内核 https://www.cnblogs.com/bakari/p/5520860.html
1. Linux的用户态与内核态的概念
1.1定义
从宏观上看,Linux操作系统的体系结构分为用户态和内核态。
内核态:本身只是是一种软件,控制计算机的硬件资源,如CPU资源,存储资源,I/O资源等,提供上层应用程序运行的环境;
用户态:即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源。
用户态可以通过三种方式访问内核态:
- 系统调用:系统调用是操作系统的最小功能单位,系统调用根据不同的应用场景可以进行扩展和裁剪;
- 库函数:库函数实现对系统调用的封装,将简单的业务逻辑接口呈现给用户,方便用户调用;比如:C库接口malloc申请动态内存,malloc的实现内部最终还是会sbrk()或者mmap()系统调用来分配内存。以及open(),write(),read(&#