Unix|Linux系列知识(1)——用户态与内核态

前端之家收集整理的这篇文章主要介绍了Unix|Linux系列知识(1)——用户态与内核态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- 前言

很长时间一直不清楚操作系统的用户态和内核态到底是什么?记得以前每次考这个知识点都是靠猜,直到看了《Unix环境高级编程》这本书,才有点感触。


- Unix体系架构

从上面这张图体系架构图,我们可以很清楚的将操作系统分为三部分:内核态用户系统调用

  1. 内核态(或内核空间):可以理解为存放内核的地方。内核从本质上看是一种软件——控制计算机的硬件资源(包括cpu资源、存储资源、I/O资源等),并提供上层应用程序运行的环境。
  2. 用户(或用户空间):可以理解为存放应用程序、底层函数库、shell脚本的地方。这里要说明一点底层函数,他不是系统调用,我们可以理解为他是对系统调用的一层封装,更好的方便程序猿来开发。
  3. 系统调用:那么用户内核态的数据是如何传递的呢?那就是通过系统调用。其实系统调用就是用户内核态定义好的接口。就好比RPC框架中一个服务调用另一个服务,我们先要定义好两边接口才能调通。常见的系统调用,比如操作文件的read、write操作;操作进程的fork操作;分配内存的sbrk操作。
-总结

读到这,相信我们已了解操作系统的用户态与内核态。理解这几个名词,对以后Unix|Linux的学习还是很有帮助的。


-参考

[1] Unix环境高级编程
[2] Linux探秘之用户态与内核态 http://www.cnblogs.com/bakari/p/5520860.html

猜你在找的Bash相关文章