您的位置:首页 > 其它

温故而知新

2016-04-21 12:50 141 查看
   最新在看linux内核的书籍,不想囫囵吞枣,决定把希望了解的部分的每一个细节都弄懂,有的时候,特别是去阅读一个技术细节文章的时候,你粗略的看了一遍,以为自己懂了,明白了,可当你再去跟着作者的思路从新思考一番的话,发现,其实还有很低地方没明白,自己觉得的明白其实很多时候是自己有了这么个印象,误以为自己弄懂了,这种习惯不能说不好,如果你没有足够的时间,或者你不希望研究其细节的话,只需要一个简单的过程,和一个结论的话,那么这可以节省你的很多时间,但是如果你真的希望让自己去掌握他,彻底弄明白他的时候,你就得认认真真的对待里面的每一个细节。

   这段时间一直在看中断相关的知识,发现很多操作涉及到对寄存器的操作,CPU的内核态,用户态. 后来从<深入1理解计算机原理>一书里面看了些相关的知识,算是复习了一番,其中 一直知道函数的调用是用到了栈这么个数据结构,你也可以想象栈中存放在一些调用函数,及被调用函数的临时变量,代码入口地址,返回地址。 高级语言对底层的抽象确实是一件很棒的设计,但是却深深的阻碍了你去深入理解计算机运行过程, CPU的寄存器中有两个很特别的寄存器 ESP和EBP, 区别于其他的几个通用的寄存器. 就是有了这两个特殊的寄存器,才让了代码层做到了函数调用,嵌套调用.
 看了一篇关于函数调用过程的C代码,和对应的汇编代码,及运行时栈的变化过程及这两个寄存器的变化,终于第一次彻底明白了函数调用过程是这么实现的。

   其实做多了上层的应用,再来看看底层的知识其实是很有益处的,你会发现,很多底层的优秀实现都和应用程序有异曲同工之妙,应该是应用层借鉴了很多底层或是硬件层的设计思想.  

    不忘初心,让自己还像个学生一样的去学习。去思考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: