怎样去理解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()等都是库函数。
- Shell脚本:是一个命令解释器,向下连接系统调用,向上连接应用,让不同程序协同工作,从而增强各个程序的功能。

本文深入探讨Linux操作系统中的用户态和内核态,详细介绍了两者之间的概念、架构以及如何进行切换。从用户态到内核态的切换主要有三种方式:系统调用、异常和外围设备中断。通过这些方式,用户态进程可以访问内核资源并执行特定操作。
最低0.47元/天 解锁文章
1210

被折叠的 条评论
为什么被折叠?



