- 论坛徽章:
- 4
|
原帖由 塑料袋 于 2006-7-31 20:01 发表
UNIX6 , swtch()函数 , 2230行开始 , 丹尼斯.里奇做了如下注释
/* if the neqw process paused because it was
* swapped out, set the stack level to the last call
* to savu(u_ssav) , this means that the return
* which is executed immediately after the call to aretu
* actually returns from the last routine which did
* the savu
*
*
* you are not expected to understand this(第2238行)
*/
if (rp->p_flag & SSWAP){
rp->p_flag =& ~SSWAP;
aretu(u.u_ssav);
}
就这么三行代码, 丹尼斯.里奇认为you are not expected to understand this
被<UNIX痛恨者手册>称之为粗暴的注释
莱昂则认为有相当难度 , 如果你急于弄清楚这段代码 , 请加入2238俱乐部;
并说这段代码的原因, 搞透彻本书后, 最后可能会在第15章中找到, 事实上在第15章, 也没放出个痛快屁来.
这几行代码其实就是一层窗户纸, 有懂的人一点就透, 难度到没有什么, 只是原因比较隐晦 , 偏偏丹尼斯和莱昂在注释里把它们搞的跟加隐晦, 可能这是当初程序员还不是民工时, 他们炫耀自己优越感的一种外在表现.
现在这段代码这样写的原因在Internet上也找不到了, 我只有凭自己, 在大概对这个版本的UNIX理解到6成左右的时候, 一个人推平了什么所谓的"2238"俱乐部, 它就是一层窗户纸.
用这个问题来判别其他人对OS的了解确实是不和时宜的, 10个Linux高手中可能只有1个能回答出来这个问题, 因为那9个在乎的只是Linux, 而不是古董UNIX6.
但是只有那1个Linux高手是超级高手,和我不在一个能量级上, 毕竟是这个版的UNIX使众多Kernel高手成长起来. 走过这样学习经历的Kernel高手显然是真高手,我只对这一个佩服的五体投地.
其他那9个么?马马乎乎拉, 也许比我强, 也许比我差, 反正我以后超过他决不是什么大问题
. . . . |
|