程序员的自我修养:链接、装载与库
- 资料大王PDF
-
0 次阅读
-
0 次下载
-
2024-10-20 13:37:04
微信
赏
支付宝
文档简介:
装载与库》的出版,博文视点对俞甲子进行了专访,现将博文的编辑与
俞甲子的访谈对话整理成文,以飨读者。
博文编辑:
甲子,你好!能否向读者介绍你是如何对操作系统的底层机制和运行原
理产生兴趣的?
俞甲子:
很大程度上是因为性格决定的吧,因为我是一个喜欢对技术问题寻根究
底的人,不满足于仅仅了解一个技术的表面,而是希望能通过层层深入
地挖掘,找出它背后最关键最核心的机理。我相信很多计算机技术都是
相通的,它们的核心思想相对是稳定不变的。经常听很多人谈起,IT技
术日新月异,其实真正核心的东西数十年都没怎么变化,变化的仅仅是
它们外在的表现,大体也是换汤不换药吧。
为了了解操作系统内核及装载、链接等这些关键的技术,我曾经自己从
头写了一个很小的内核、装载器及一个简单的运行库,它们组成了一个
可以完整运行在PC上的支持多进程、多线程的操作系统环境,并且支
持虚拟存储、简单的文件系统、网络、鼠标键盘等,前后加起来花了两
年多时间,大约有数万行代码,编译器和链接器使用的是GCC和LD。
当然,如果继续写下去,可以让它的功能变得更加完整,但是我停止了
对它的继续维护,因为我认为通过这个雏形系统,我已经了解了其背后
的机理,如果再继续写下去更多的只是重复性的工作,因为现在已经有
了很多很优秀的内核、装载和链接的相关软件和标准。
虽然我在这个系统上花费了很多时间和精力,却没有获得什么直接的收
益,也没有让我跟上最新的技术潮流,但是它带给我的间接收获却是无
法言表的,它使我在后来学习其他技术的时候能够很快地触类旁通、自
下而上地去理解整个系统,往往能够理解得更加深刻更加透彻。
博文编辑:
介绍链接、装载与库原理的资料非常少,你在自己钻研的过程中,遇到
的最大困难是什么?
俞甲子:
当然相关资料很少会给我们带来很多的困难和挑战,而且相关的源代码
在经过多年的发展和锤炼后,变得非常注重性能和效率,而很少考虑可
读性,这使得通过挖掘源代码理解机制变得更为困难。这些代码很多都
是相关领域的黑客高手写的,他们对系统机制的了解已经到了很深刻的
地步,一小段代码会用尽系统的各种机制和方法,经常让人看得不知所
云。比如系统库在不同的链接和装载方式下对C++全局对象的构造和析
构,就异常复杂。整个流程来回曲折,加上有些代码已经遗弃,还会造
成误解。Glibc这种支持数十种平台的系统还要考虑到各个系统的通性
和个性,更使整个过程雪上加霜。其实理解还不是最大的困难,最大的
困难是理解了这个复杂而又晦涩的机制和过程,如何将它们尽量地简
化,从中取舍,摈弃所有不必要的内容,再将它剥离出来后组织成尽量
深入浅出层层引导的文字和图表,这才是最大的挑战。
博文编辑:
在自学的过程中,一定有许多令你得意或开心......
评论
发表评论