用户态和内核态

2019-02-06  本文已影响0人  不爱钱的张师傅

linux系统里的资源都是按照权限来分配的。比如一个文件,如果你没有 w 权限,你就没法写入。充满了世态炎凉,人情冷暖。
用户态和内核态也意味着不同的权限。用户态当然是很低的权限,毕竟用户都是傻瓜,他们会删掉你所有的宝贝。

为什么要分这两个状态呢?

便于管理。就像一个国家为什么要有阶级一样。分成两个层级,便于管理系统资源等。
用户态的公仆是内核态,但是公仆的权力大得很。

内核态对应着 系统调用。
用户态对应着 libc 等库函数。

系统调用的参数很复杂,所以封装出一些库函数,方便程序员调用。
当用户调用到了 libc 库函数,而库函数又去调用 系统调用 时,就发生了所谓的用户态到内核态的切换。
用户只能通过调用这些功能大而泛的库函数去实现自己的功能,而不能准确地调用系统调用来完成自己的野心。因为那样的话,社会就会混乱。就像你要改身份证上的名字,你可以调用公安局帮你改,但你不能一把推开他,自己拿笔改。用户自己修改内核的东西,当然容易出问题。
用户态,挥斥方遒,内核态,规规矩矩。

上一篇下一篇

猜你喜欢

热点阅读