“锄头”

近来良心发现,深刻的认识到了自己的差距,自己底子的薄弱,以前总是停留在想,为了不再祸害中国软件业,前两天开始补习系统相关基础知识,开始看《深入理解计算机系统》这本书。

身为一名码农,如果对自己用的“锄头”都不了解,想来想去总觉得是一件不太靠谱的事情。要想改变宇宙,也得先从改造自己下手!以前总是找各种理由躲避,其中有一条理由可能印象最深刻,总是觉得“根本用不到嘛”,因为不能有立竿见影的效果,所以总是推三阻四。但是最不可饶恕的是,每每跟人吹牛 b 的时候,总是说:“某某某,你应该好好学习一下操作系统,很重要哦!”哎,这两天自己想了想,自己都不看,还有脸让别人看,怎么这么无耻啊!自己应该对自己千刀万剐!(说说而已,说说而已!:P)

为了悔过自新,重新做码农。在此先承认自己之前犯的错误。俗话说,认识错误是改正错误的第一步嘛。所以这两天下决心怎么说也要好好补习一下相关知识。

经过这几天的学习,看到了第五章-“优化程序性能”。这一帆可谓不风顺啊。

第一章还好,是“计算机系统漫游”,总体来说没什么难度,大而全的讲了一堆,看不懂也没关系,反正后边还会展开来讲嘛。

第二章是“信息的表示和处理”,前面讲编码表示和进制之间的变换,接下来讲整数的二进制表示,以及整数的四则运算是如何进行的,再接下来是浮点数的表示以及运算。哦,还有一点比较重要,C 语言中的对于数值类型的强制转换是如何进行的。这些基础知识看似不重要,其实都很重要,很多系统级别的漏洞都和数值溢出有关,属于基本功。

第三章是“程序的机器级表示”,说白了就是汇编基础以及汇编与 C 语言之间是如何互相映射的,看这部分的时候一开始还好,后边的指令跳转有点头晕,也有点儿乱,不过还好吧,这一章的整体思路就是教你用汇编映射 C 语言。当然了,如果你能把汇编眼瞅着就能还原成C语言,反之也行,那么这一章你就算是基本掌握了。

第四章是“处理器体系结构”,这一章对于程序员来说应该是最底层了,主要解释了每条汇编指令在 CPU 中是如何运行的,通过构造最简单的 Y86,带领大家实现一个处理器,以此来了解处理器的基本逻辑。说实话,这一章后半部分看的我是云里雾里,找不着北啊,明显功力不够哇。可能问题出在某一个知识点没有掌握吧,导致跟不上作者的逻辑,迷路了。迷路的孩子伤不起啊~

第五章是“优化程序性能”,这一章还没看完,只是起了个头,不过我感觉这章的思路是以前几章为基础,以 C 语言为例,来说明程序应该怎样写效率比较高。其实我自己感觉如果前两章掌握的比较好的话,既了解 CPU 的基本构造,又能很快的把 C 语言还原成汇编的话,这章基本就是经验之谈。当然了,这章我自己还没看完,在此只是胡喷。

看过四章多一点之后,感慨不愧为经典啊,跟人吹牛b的时候总算是没有害了人家。书中很多细节还是需要不断揣摩的,现在很多知识点还只是个框架概念,从真正理解到灵活自如的运用还是需要时间不断消化啊。不过好在自己亡羊补牢,总算是迈出了重要的一步了,这本书对于我这种脑子不好使的同学来说,少于五遍,我想我很难全面理解书中的知识点,掌握的遍数另算。呵呵,没办法,脑子不好使,身体就得勤快点儿,这话是我第一个老板说我的,呵呵,比较适合我,我很受用 :)。

说两句题外话,这两天有时候心神不定的,有点遥想当年的韵味,时不时会想起中学。有时候我很自恋的在想,是不是有哪位中学女同学想我了,给我发脑电波呢?心灵感应嘛。哎,历史是改变不了的,如果真有哪位女同学怀念我了,我会语重心长的对她说:“同学,好好过日子。地球很危险,还是回火星去吧”。

Leave a Reply

Your email address will not be published. Required fields are marked *