这篇文章的深度不会太深,重点就是了解一下用户态和内核态的区别就 OK 了。
先给不了解内核态、用户态的简单介绍一下,我们在什么时候会提到这两个概念。
例如我们的应用程序需要从磁盘读取某个文件的数据,此时并不是直接从磁盘加载到应用内存中,而是:
- 先将数据从「磁盘」复制到「内核 Buffer」
- 再将数据从「内核 Buffer」复制到「用户 Buffer」
以上就是用户态和内核态的概念。首先我们给他下个定义,这两个态是操作系统的运行级别。
然后我们知道,我们写的程序,最终运行的时候实际都会被编译、解释成一条一条的 CPU 指令被 CPU 执行。
继续阅读