正文开始
对于川合秀实先生的这一作品,许多人,大概都看过。我正式看这本书,算是比较晚一些。
写作本专栏,我主要是希望,用GNU AS汇编器和GCC,将川合先生的部分代码,给改编和实现出来。
看过原书的人都知道,原作品,采用的汇编器和C语言编译器,都是属于作者本人特制的。且并非属于是广泛使用与流传的编译器。使用这样的私有编译工具,去编译代码的时候,遇到问题,会比流行的编译器,更加地难以找到解决方案。
其实,流行的编译器,在遇到问题的时候,想到找到解决办法,已经是很不容易了。如果,再去用这种,特别地私人化的东西,那么,估计会更加地难以找到解决方案。
我自己在阅读书中的一些个代码的时候,一个感觉就是,这样的代码,如果是用流行的编译器去编译的话,它是有着明显的错误的。
比如说,涉及I/O操作的时候,在这样的汇编函数里面,肯定会相应地修改EAX,EDX等等的寄存求。当编写这样的汇编函数代码的时候,其实是需要一些个压栈保存与出栈恢复的指令的。而在作者那里面,则是完全没有这样的代码。
在这种基本的,常识性的问题上,它会有这种问题。那么,在其它的代码里面,是否也会有着这样的问题呢?那其实就很难讲了。
如果说,学完了里面的知识以后,发现,自己的代码,只能够在作者的编译器上运行,而到了流行的编译器上,就运行不了的时候,我觉得,这个并不算作是学习。因为,这样的学习,我们自己并没有真正地消化。
所以,我在学习了一段时间以后,我是自己尝试着,用流行的编译器语法,来改编原作者的代码,使其能够在通行的操作系统,编译器,与虚拟机里面,能够运行。
不但是要能够运行,还要做到,写出来了代码以后,自己可以去修改,去调试,去测试和运行。我觉得,这样子的话,更加地能够达到学习的目的,也更加地能够帮助我们学习内核,了解内核知识。
本专栏的学习,大概会有一定的挑战性。我写作本专栏,有一定挑战性,你学习本专栏的知识,也会具备一定的挑战性。
我们都加油吧,争取能够做到,我讲好了知识,你学到了知识。
本节结束。
本专栏导航
上一篇:无
下一篇:无