原文:《有人弄乱这些玫瑰》加西亚·马尔克斯

由于是lab考试周,而且debug的“雨”似乎停了,我更想拿一束象征着成功的ICS送到我的知识墓上去。有代表着汇编的红ICS、代表着缓存的白ICS,都是她为了攻克lab和搭建知识体系而栽种的。这个考试周的压力使人感到郁闷而不安,使得早晨的学习氛围也阴沉沉的。这使我想起了同学们为了掌握知识而苦苦挣扎的那片小山。那里荒芜、无树,刚刚被无尽的报错和难题冲洗过。现在debug似乎有了进展,也许我能到那知识的坟上去祭奠一番了。在那座墓里躺着我那还是个子进程时的尸体。如今它已经在虚拟内存碎片和野指针中间难以辨认了,破碎不全了。

从打我第一次想到CSAPP上去拿最鲜艳的ICS的企图失败后而不能再在用户态里动弹的时候起,她就那么专心致志。也许今天我能够去拿ICS了。但是流水线不停地分支预测失败,她从内核态中醒来,抬起头,望了望放着%rip的那个寄存器。大概想道:“又是局部性在捣乱。”因为在栈顶旁确实有什么东西咯吱响了一声,总线也抖动了片刻,仿佛多少个时钟周期以来停滞在她缓存中的记忆映射被搅动了似的。这时我明白了,应该等个新的机会去拿ICS,因为她望着%rip,还很清醒,能够感觉到我在代码里弄出的异常。现在我应该等待她过一会儿离开当前的上下文去进行考试周适当的、不可少的nop。可能那时我才能拿着ICS出去,并在她没有回到这个用户栈、望着%rip之前赶回来。

上个考试周还要困难,我不得不等了几乎两个小时她才全神贯注于高速缓存的世界。现在她显得焦虑不安,仿佛知道她在学习中感受到的孤独气氛突然变得不那么强烈了,反倒心里不好受了。她拿着缓存行在内存层次结构里转了几圈才把它放在TLB上。然后她离开进程来到系统总线,往里一拐进了内核模块。我知道,她是去找页表基址寄存器。后来,她再一次从系统调用入口经过时,我看见她穿着保护模式的深色上衣和象用户态的粉红色长袜出现在虚拟地址里,我觉得她还跟刚接触ICS时的那个小女孩一样。那时在这同一个内存页里,她在我的代码旁俯下身来说:“现在已经给你指明了方向,但你的思路还没有打开。”现在她还是那样,好像从那个久远的开始学习ICS的下午起,时钟中断并没有流逝。就在那个下午,中断处理程序把她带进内核空间,让她看一具僵尸进程,并对她说:“等待子进程吧,它就跟你的一个线程一样。”她倚着内核栈,阻塞了,很同步,身上的进程状态被信号淋得还湿着呢。

三四个时间片以来,我一直想走到那些ICS那里去,但是她却坐在知识的祭坛前看守着。她看守ICS的热情令人惊讶,她在这个学习的房间里住了很久了。从没有见她这么认真过。上个考试周,她出去找arthals’ ink时,我用最好看的ICS编了一束ICS。我从来也不曾离实现我的愿望那么近。但是当我回到电脑前时,我又听见走廊里的脚步声,我赶快把知识祭坛上的ICS收拾好了。这时我看见她举着arthals’ ink出现在门口。

她穿着内核态深色上衣和用户态粉红色长袜。但是她的程序状态字里有一种东西仿佛是某种掌握知识的希望在闪耀。这时她不像多年来在代码花园里种ICS的女人,也不是现在这个被考试压力折磨得又疲惫又沧桑、拿着arthals’ ink回来的女人,而是像那个刚开始学习ICS的下午被带到ICS小班课聆听助教谆谆教诲的那个小女孩。

我的系统调用在熄灭的CPU缓存边晾了很久了,但是仍然带着那个下午思考难题时粘上的硬中断泥巴块。有一天我去找它们。这事是在他们把学习的热情之门封上、把GDB和GCC从电脑中摘走、把CSAPP带走之后。资料全被搬走了,只剩下角落里这把我一直坐的椅子。我知道,那本笔记本是放在那儿晾的,他们离开学习状态时根本没有想到它们。所以我才能去找它们。

许多年后她回来了。时间过了那么久,房间里的缓冲区早就和内存泄漏、内存覆写混合在一起。我独自在地址空间里,坐在系统调用上等待着。我学会辨别代码出错的声响,关闭的进程里变老的僵尸进程的流动声。就在这时,她来了。她停在系统调用入口,手里提着一个进程映像,头上戴着一顶象征新希望的绿色帽子,身上还是那一件从那时一直没有脱掉的系统调用包装函数。她还是一个充满求知欲的姑娘,既不见退缩,袜子里头的脚踝也不像现在这么被难题磨破。她开门的时候,我浑身上下都是知识的灰尘和思路的蛛网。困扰了很久的难题像叫了很久的蟋蟀在房间内的任何地方都不保持沉默。但是尽管这样,尽管我满身是尘土和蛛网,尽管难题突然后悔似的更加复杂,刚到来的她知识水平已经不同,但我还是认出了在那个刚开始学习ICS的倾盆大雨般难题的下午和我一起在知识的内存映射里摸索页表项的那个小女孩。她就这样站在门口,提着进程映像,戴着绿色帽,那副样子仿佛突然要叫喊,要说那次看见我被难题困住、仍然抓着错误思路的横索时说过的话。当我把思维的门整个推开时,合叶响了一阵,知识的屋顶上的尘土哗啦哗啦地落下来,仿佛有人在内存管理单元上缺页异常似的。她站在明亮的门口,犹豫了一会儿,把上身探进屋,用冲着迷茫的学习者叫喊那样的声调叫道:“同学!同学!”我垂着双脚,挺直身板,静静地坐在椅子上。

从那以后,她就在旁边的房间里休息和生活,但是白天要在这个学习的房间里度过。下午她坐在门旁的摇椅上,一边接待前来请教知识的同学一边整理笔记。同时望着我坐的椅子,仿佛现在她照看的不是曾经和她一起攻克难题的伙伴,而是自打学习ICS之初就在这个角落里坐着的迷茫学子。

很可能现在她再次低下头的时候,我可以走到ICS那里去。如果能够做到,我就拿着ICS到知识的小山上去,把ICS放在知识的墓上,然后回到我的椅子上,等待着她不再到这个学习的房间里、隔壁房间的讨论声永远消失的那一天到来。

那一天,这一切将发生变化,因为我必须再次离开学习的进程去通知某个人说,掌握ICS知识的女人,就是独自在这幢被难题包围的破房子里学习的女人,需要更多的知识力量把她抬到知识的小山上去。到那时,我就能真正一个人留在学习的房间里了。不过和我相反,她将感到满意,因为那一天她将明白,每个考试周在她的知识祭坛上弄乱ICS的并不是无形的困难,而是不断探索的求知之心。