什么是底层?
勾股定理:c^2=a^2+b^2实际意义:斜边平方=2个直角边的平方和。
就像一个数学公式对应一个实际意义一样,内核对应的实际意义是什么?
1. 内核与用户程序,同样是一堆逻辑,那么它们的区别在哪,什么样的代码才是内核代码?
2. 一条相同的特权指令,为什么内核可以执行,用户程序就不行?
其实我们可以把内核和所有用户程序编译并加载到内存后的一堆二进制,想象成一个完整的程序。对于CPU来说,它必须要能够站在人类的角度,判断当前执行的二进制指令是在内核还是在用户程序,因为人类不希望用户程序也可以执行“特权指令”,因此,必须在硬件层要有这种“判断环境”和机制,比如通过某个寄存器或内存某个特定位置的值,来区分内核还是用户程序。
问题1回答:内核和用户程序的区别,对于CPU来说,就是执行它们时的“环境”不同,比如同样是我,白天可以去超市买包方便面,大半夜就不行,难道晚上的我就不是白天的我了吗?变的只是环境,懂吗?
问题2回答:你如果能把自己写的程序放到电脑开关一按就能执行的地方,那么即使是“用户程序”,同样可以享受权力的快感。如果将内核和用户程序想像成一个完整的程序,内核相当于核心部分,用户程序相当于一些子模块,权力的划分最终落实在硬件上,只不过核心部分一加电就可以执行了,可以优先拿到权力,并且通常不与子模块分享。
最终总线一下,什么是内核?
本质上是一段代码,和用户程序只是作用不同名字不同而已,就像有些车叫拖拉机,有些车叫奔驰,如果当初它们的名字是反过来叫的,我们肯定就更喜欢拖拉机了:em02: ,所以不用困惑和畏惧,像用户程序一样,关心它的作用以及实现原理,就可以了。 赞,
有些人应聘总是说对内核感兴趣,问具体对哪部分感兴趣说不出来,就觉得内核更高深 更牛X一些,, yjh777 发表于 2016-01-11 16:09 static/image/common/back.gif
赞,
有些人应聘总是说对内核感兴趣,问具体对哪部分感兴趣说不出来,就觉得内核更高深 更牛X一些,,
谢谢你的鼓励。 大多数人心中的底层,就是软件里的脏活累活。 回复 1# _nosay
赞一个。。 楼主想说什么呢?
页:
[1]