Category Archives: read

读何兆武的《上学记》

前几天偶尔翻到了《上学记》这本小书,名字起的不那么显眼,作者(何兆武 口述)我之前也没听说过,随便翻了一点就被吸引住了,然后三天的上下班地铁上就看完了。真的是很好的一本书,读起来不费劲又能有很多启发,我给五星推荐。

发现我对同类型的书很是感兴趣,先是季羡林的《留德十年》和《牛棚杂忆》,接下来就是这本《上学记》。回来搜了一下,何兆武也是民国时期求学,后来成为历史学家,研究思想史。早年在西南联大读书,跟季羡林差不多属于同一个时期的学者。《上学记》说的是何兆武从1921年出生到1950年参加工作这一段自己读书的经历,期间写到了那个时期的学术、政治、经济、民生和战争的背景,回忆他在西南联大上学七年的生活和对当时一些知名教授和同学的回忆和评价(比如冯友兰、吴晗等)。还有时不时的穿插一些古今对比和一些自己的看法。看后很受启发,能知道不少趣闻又能对当时的社会有个更真实的认识。

何兆武出生在北京,当时叫北平,30年代虽然蒋介石北伐胜利了,但是因为日本人的关系实力范围还是退出了北方,北平由29军军阀统治。按照何兆武的说法,国民党有思想路线,有理论,要宣传三民主义,而军阀就没那么多说道了,所以那时候北平的思想控制很松,结果就是各种思潮都有,左派右派自由派,各种报刊书籍也都能看到。他在北平上中学也受了这种氛围的影响,结果就是他一生都喜欢自由的学术氛围,只有提出不同见解学术才能进步。他很提倡这种自由。相对解放后情况就有变化了。这里也要说一些,书中一旦涉及这种古今对比,尤其是今比如古的时候,何兆武就点到为止,不做过多评论,但具体是什么意思已经很明白了。

后来抗战开始,日本人统治北平,北大清华和南开就迁到昆明组成西南联大,何兆武就在39年进入西南联大学习。当时从北平到昆明和不好走,日本人占了主要交通路线,只能到天津坐船到香港然后取道越南进入云南,要历时3个月。作者说虽然当时后方条件很艰苦,但很多人还是要逃到后方,就算一路艰辛也不当亡国奴。在西南联大条件也很不好,但学生们都没什么悲观的情绪,按照书中的说法,这是因为当时普遍认为抗战最终一定能够胜利的,然后一定会是一个美好的世界。人们的生活有希望,个人发展有希望,所以也就没什么失败主义的情绪。

说到北平被日本占领的时候,还提到了高丽棒子,我这才知道高丽棒子的由来……高丽是朝鲜,这个是清楚的,但棒子就是流氓的意思,所以高丽棒子是朝鲜过来的流氓,他们在日本浪人(也就是日本的流氓)手下做流氓手下的流氓,横行霸道,瞧不起中国人。因为朝鲜早就被日本征服,早一步做了亡国奴,就瞧不起还不是亡国奴的中国人。原来高丽棒子是这么一层含义。

作者说西南联大的七年是他人生最自由最惬意的一段时光,想上什么课就上什么课,可以随意转系,完全凭自己的兴趣。还回忆了对一些知名文人的印象,比如对冯友兰和吴晗就印象不佳,可能是跟他俩建国后紧跟党走有关吧,尤其冯友兰写了很多检讨,有失文人的身份。书中提到大陆四大无耻文人,就有冯友兰,吴晗,臧克家还一个我记不得了。

书中不断提到的一点是学术自由,另外还有一个观点,就是不能死板的看待事情,当事情或者问题用常规方法无法解决的时候,就需要换一套坐标系来看,换个角度。这让我想起对数的发明简化了乘除法,还有信号的傅里叶变换,把信号从时域转换到频域来处理,这样很多事情就迎刃而解了。看后很受启发。

另外让我印象深刻的一个细节,就是“白俄”这个说法,书中说白是跟赤对应的,也就是不赞同俄国红色政权的俄罗斯人。就是我不清楚跟现在白俄罗斯这个国家是否有什么关系,是只是当时的一种叫法还是就是白俄罗斯的前身,不清楚了。看了白俄罗斯国家的简介之后觉得应该就是当时的一种叫法,跟白俄罗斯国家好像没什么关系。

下边节选一些我觉得有意思的片段:

以前人们常有一种错觉,以为国民党是跟着西方走的,其实国民党的体制是学苏联的专政模式,跟西方的民主模式完全不一样。西方政党不是革命的党,没有说某个政党有自己军队的,只能通过和平手段,通过精选取得政权,西方的领袖更不可能要求党员对他个人宣誓效忠。然而国民党自我认同是个“革命的”党,蒋介石讲话时张口闭口总是“我们革命军人”如何如何,党拥有自己的武装、自己的军队,要用物理对去政权,另行一套体制,所以它必然是个专政的党,必然有一套与之相配的意识形态统治,领袖尊严神圣不容冒犯。

想要做出成绩总得有三个方面的条件,一是天赋,这点不能强求,每个人天赋不一样,这没什么可丢脸的,二是环境,这也不是每个人都能争取到的,第三就是个人的努力,但个人的努力应该得法,不能只讲拼体力,老师延长劳动时间、增加劳动强度,那是不行的。读书也一样,书读得好坏跟你拼不拼命没关系,天天开夜车,我不认为那是一条正路。当然,一个字都不看,那成文盲了,也不行,你好好地做了就是,像吃饭一样,不吃饭不行,那饿死了,但也不是吃得越多身体越好,吃多了没有用的。

我们都恨日本人,再有就是“高丽棒子”。高丽就是朝鲜,棒子是流氓,在日本浪人的手下做事。日本浪人本来是日本流氓,那些高丽棒子就是流氓手下的流氓,他们是亡国奴,可又比你高一等,因为他们是老亡国奴,你还没亡国呢,所以在他们看来,你是更下一等的亡国奴。

常有赶大车的人从乡间来,就在小商店的门前停下来歇脚。那些是真正的下层劳动人民,你从他们的装束就能看出来。一斤们掏出两个铜板,往柜台上一放,说“掌柜的,来两口酒。”掌柜就用一个小瓷杯倒上白酒递给他,并拿出一些花生放在他前面,客人就一边吃着花生,一边喝酒,一边跟掌柜的聊天,一副很悠闲的样子。其实两个人并不相识,谈的都是山南海北的琐事,然而非常亲切,就像老朋友一样。东拉西扯地聊个十多二十分钟,说声“回见”,就上路了。这个场景一次次出现在我的记忆里,让我感觉到一种人与人之间的脉脉温情。

文革的时候更是这样,每天从清晨到夜半就是学习、劳动,而且规定得非常死,学习的内容只能是捧着小红书,好好检查自己的思想。记得有个工宣队的人管我们,发现有一个人看鲁迅的书,申斥了一顿,说:“有人竟然还看与运动无关的书?!”后来又发现另一个人看马克思,应该没问题了,可也遭到了申斥,说:“告诉你,不要好高鹜远!”

真正理解历史一定要提升到哲学的高度,不然只知道姓名、知道年代,你可以知道很多零碎的知识,但不一定就意味着你理解了历史。我想任何学位都是这样,最后总得有人做出理论的总结,否则只能停留在纯技术性的层面。……我所希望的是通过学习历史得出一个全面的、高度的认识。

我想,幸福的条件有两个,一个是你必须觉得个人前途是光明的、美好的,可是这又非常模糊,非常朦胧,并不一定是什么明确的目标。另一方面,整个社会的前景,也必须是一天比一天更加美好的,如果社会整体在腐败下去,个人是不可能真正幸福的。

有一次他(丰子恺)去上海,在火车上遇到一个上海小商人,商人问他贵姓,他说姓丰,商人问是哪个“丰”,丰子恺说:“五谷丰登的丰。”。“五谷丰登是什么?”商人不知道。丰子恺想了想,说:“咸丰皇帝的丰。”“咸丰皇帝?”商人还不知道,后来又说了好几个“丰”,他都不知道。丰子恺突然想起来了,说:“哦,是汇丰银行的丰。”于是那个小商人马上惊呼:“噢——,汇丰银行!汇丰银行!”

我当时想,诗人大概可分为四等,一般吟风弄月或别愁离恨,是低等的,即所谓rhyme(韵诗)。李白的诗天马行空、睥睨一世的气魄更高一等,而杜诗则历尽沧桑,感慨深沉,似乎又再高一等。至于那些说出了人生中不可说、不能说的恍惚迷离,乃至肠断魂销、心肝破碎的愁苦和哀怨,应该是诗中最高的境界。

人总得靠着希望活着,甚至于很小的希望,比如我想发点小财,想改善一下生活,如果没有任何一点希望可以寄托的话,人就活不下去了。二战的时候,我们真诚的相信未来会是一个光明的、美好的世界,一个自由的、民主的世界,一个繁荣富足的世界,好像对这些完全没有疑问。这种信心对全世界的人民也是一种鼓舞。不知道人们是不是太容易受骗了,二战以后,无论是国际上还是国内都让我们大失所望,没有想到会有那么多的曲折。

[翻译] 非易失性内存上的文件系统支持

原文: Supporting filesystems in persistent memory September 2, 2014

前言:在今年的CLSF会议上,一个NVDIMM的话题非常火爆,大家对这种可以把内存当硬盘用的设备都很感兴趣。同时上游内核也在做DAX相关的东西,以后RHEL7上可能也是要支持的。我就趁着热呼劲儿再多看看相关文章了。

正文:
近几年来,一直有传言说非易失性内存设备(non-volatile memory – NVM)将会改变我们使用系统的方式。这种设备能够提供大量(也许是TB级别)的非易失的、能以内存的速度进行访问的存储空间。这么大量的非易失性内存可以用来做什么现在还不是很清楚,但是NVM已经引起越来越大的关注了。可能我们会在NVM上运行传统的文件系统——但是这些文件系统需要一些修改从而让用户能够得到NVM的全部性能优势。

在NVM上加上一层块设备驱动而让NVM设备看起来像普通存储设备是很容易的事情。但是,这样做会强制所有数据和系统page cache之间进行复制。既然NVM设备是可以直接访问的,那么这些复制就是效率低下的。对性能敏感的用户会尽可能的避免使用page cache来达到NVM设备的最高速度。

事实上从2005年开始,随着ext2加入了excute-in-place(XIP)支持,内核就已经对NVM设备直接访问有一定支持了。这些代码可以把可以直接寻址的设备映射到用户空间,这样文件数据就不需要通过page cache来访问了。但是使用XIP的人很少,这些代码已经多年没有更新了,并且无法在现在的文件系统上工作。

去年,Matthew Wilcox开始着手改进XIP代码,试图把它和ext4文件系统整合在一起。在整理的过程中,他发现XIP无法和同时代的文件系统很好的结合在一起,并且代码里还有很多恼人的race condition。所以,随后他的工作从改进XIP转向了代替它。这项工作由21个patch组成,受到越来越多的关注。现在已经接近完成,可以并入主线内核了。

这些patch使用了一个叫做DAX(很显然代表“direct access”)子系统代替了XIP。在块设备层上,它用以下函数替换掉了struct block_device_operations中的direct_access()函数

    long (*direct_access)(struct block_device *dev, sector_t sector,
			  void **addr, unsigned long *pfn, long size);

这个函数接收sector号和size作为参数来说明调用者想访问多少字节的数据。如果给定的空间是可以直接访问的,那么基地址(内核地址)就通过addr返回,同时相应的页帧号(page frame number)也保存在pfn中。当从用户空间直接访问这些内存的时候,页表会使用这个页帧号。

这种使用页帧号和地址的方法可能有些奇特,内核大部分时候通过struct page来处理这一级别的内存。但这在DAX的情况下是不可行的,因为一个简单的原因:非易失性内存不是普通的内存,没有和它们相关联的页结构体(page structure)。缺少页结构体产生了很多后果,也许最重要的一个是这些NVM不能被其他设备用来做DMA访问。所以在网络设备和存储设备之间做零拷贝(zero-copy)传输,像这样的操作在NVM设备上就无法实现了。Boaz Harrosh正在写一些patch来增加NVM的page structure的支持,但这项工作还处于一个早期阶段。

再把目光移向IO栈的更上一层,NVM的支持在VFS层已经做了很多所有文件系统都能用到的工作。新建了各种通用的帮助函数(helpers)用以辅助一些常见的操作(reading, writing, truncating, memory-mapping等等)。在大部分情况下,文件系统只需要在可以使用DAX的inode中标记一个新的S_DAX标志然后在正确的地方调用帮助函数就可以了。(一点点)更多的信息可以参考patchset中的文档。这个patchset在ext4中加上了一些必要的支持。

但是Andrew Morton针对这项工作有一些疑问。最主要的问题是,为什么不直接使用一个经过修改的内存文件系统(ramfs, tmpfs)?这看上去是一个很好的问题,因为这些文件系统已经是为可以直接访问的内存设计的并且做了很多优化。但问题也在这,ram-based文件系统是为ram设计的,并不能很好的适应NVM设备。

来自Dave Chinner的信对此做了详细的解释,而且这封信很值得一读。大体上概括起来说,问题归结到以下这一点上:ram-based文件系统并没有针对数据持久性做任何设计。它们在每次启动的时候都是一个全新的文件系统,并不需要处理上一次系统运行遗留下来的东西。但在另一方面,NVM需要处理更多数据持久性相关的问题,比如在NVM上存储的数据在机器重启之后也不会丢失,并且需要在系统崩溃的时候足够健壮,在升级内核之后数据也是需要依然存在的等等。这些需求ram-based文件系统都无法满足。

所以,NVM文件系统需要所有传统文件系统所拥有的工具,用来来识别磁盘上的文件系统,做检查并处理文件系统损坏的情况。为了保证持久存储上的数据一直处于一致的状态,NVM也需要各种传统文件系统所使用的技术。例如,元数据写入的顺序必须非常仔细的处理并且用屏障来保护。因为在不同内核之间的兼容性是很重要的,所以内核中的数据结构不能直接存储在文件系统中,数据必须在host format和on-disk format之间来回转换。这些都是传统文件系统做了而ram-based文件系统没有做的事情。

然后,Dave解释道,在可扩展性方面还存在一些问题:

更进一步,NVM文件系统需要可以被扩展到非常大的存储上。在不久的将来机器上会有好几十TB的NVDIMM存储容量,所以对空闲空间的管理和对已使用空间的分配/释放的并发操作,这些都会是影响NVM文件系统性能的关键问题。所以最后你需要使用块/分配组来把空间做进一步划分。这看起来很像XFS和EXT4现在做的。

然后你需要所有的索引扩展到千万级别。至少是千万级别的,其实更可能是亿或者十亿级别。因为存储好几十TB的小文件就需要对数十亿的文件进行索引。而且因为这样做基本上没有性能上的惩罚,人们就会把文件系统当作一个大的数据库来用。所以现在你又需要有一个可扩展的并且和posix兼容的文件夹结构,可扩展的空闲空间索引,动态的、可扩展的inode分配/释放操作等等。噢,为了处理机器上的上百个cpu核还需要高并发性。

作为结论,Dave指出现在内核已经有不少满足上述需求的“非易失存储实现”了,那就是XFS和EXT4文件系统(虽然Dave一直认为ext4的可扩展性有问题)。现在这两种文件系统都能够在非易失性内存的块设备上工作。但最大的问题就是没有一种方法能够让用户直接访问数据而不需要经过page cache,这就是DAX所需要提供的功能。

现在有一些工作组在从头为NVM设计文件系统。但这些工作基本都还处于早期阶段,在内核邮件列表里还没有人发出patch来,更没有申请合并到主线内核的。所以想充分利用NVM性能的用户,在未来几年是不会从这些工作上得到什么帮助了。所以说,在目前已有的文件系统上增加NVM支持是一个真实的需求,得出这样的结论也并不是不合理的。

目前来看DAX就是通往这个目标的一条路。现在所需要做的就是尽快review这些patch并让patch达到让所有相关子系统的维护者都同意合并的状态。review工作目前进行缓慢,因为patch很复杂并且修改了很多不同的子系统。但是,作为对之前review的回应,patch已经有了很多的改进,并且看起来离最终的版本不远了。也许在不久的将来DAX功能最终就会进入主线内核。

读《牛棚杂忆》

《牛棚杂忆》是季羡林对文化大革命的回忆录,主要记录了他自己经历的文革,被扣帽子,被批斗,被劳改,被迫住进牛棚,最后重获自由。书中没有痛心疾首的控诉,有的只是最平实的语言描述最真实的经历和心理,但平实的文字更能让人深切感受到当时的社会环境和氛围。同时季羡林还不忘幽默,很多痛苦的回忆是用幽默的口吻写的,还有不忘学者身份,甚至认真研究起“比较自杀学”。仍然是五星推荐的一本书。

季羡林写这本回忆录是为了记录文革这一段历史,不至于中国后代都忘掉了这段扭曲的历史,要从中吸取教训。用他自己的话说就是
“我怕这些千载难得的经验一旦泯灭,以千万人遭受难言的苦难为代价而换来的经验教训就难以发挥它的社会效益了。再想获取这样的教训恐怕是难之又难了。……如果把这一场灾难的经历如实地写了出来,它将成为我们这个伟大民族的一面镜子。常在这一面镜子里照一照,会有无限的好处的。它会告诉我们,什么事情应当干,什么事情又不应当干,决没有任何坏处”。

一开始季羡林还没有受到多少文革的影响,只不过是扣了些“走资派”,“资产阶级学术权威”的帽子,而他自己又欣然承认这些帽子,顶多是有些写写大字报批判他,没有其他进一步的迫害。但是后来被抄家,被找到的罪证是烧了一半的信,放在枕头底下的菜刀和一张蒋介石和宋美龄的照片。从此被打倒被批斗被劳改。对抄家一段的描写非常“精彩”,还是直接般原文吧
“对付三个手无寸铁的老人,何必这样兴师动众!只派一个小伙子来,就绰绰有余了。……这些小将究竟年纪还小,旧社会土匪绑票时,是把被绑的人眼睛上贴上膏药,耳朵里灌上灶油的。我这为师的没有把这一套东西交给自己的学生,是我的失职。由于失职,今天我得到了点好处:我还能听到外面的情况。……遇到锁着的东西,他们把开启的手段一律简化,不用钥匙,而用斧凿。……我多年来省吃俭用,积累了一些小古董、小摆设,都灌注着我的心血;来之不易,又多有纪念意义。在他们眼中,却视若草芥;……他们手足麻利,横扫千军如卷席。然而我的心在流血。……我们呼天天不应,呼地地不答。我不知道,我们是置身于人的世界,还是鬼的世界,抑或是牲畜的世界。茫茫大地,竟无三个老人的容身之地了。”

被抄家、打倒之后,季羡林认真的思考过自杀,也就是一开是提到的研究的“比较自杀学”,因为他在思考哪种自杀方法更好。最后选择了服用大量安眠药。在准备好了安眠药准备往颐和园走的时候,却被突如其来的批斗救了一条命,却经历了无数场折磨人的批斗。批斗中最让他受不了的就是坐“喷气式”,一坐就是一个多小时甚至几个小时,腰酸腿麻头晕眼花,相对来说其他拳打脚踢和辱骂都算是好过的。后来为了熬过喷气式,季羡林在家里平时还特意自己坐喷气式,为了锻炼腿部肌肉!
“我在阳台上争分夺秒的锻炼也已取得出乎意料的成功,我坐喷气式姿势优美,无懈可击;双腿微感不适,再也没有酸痛得难忍难受之感了。”
我好奇,想知道喷气式到底是什么样的,上网搜了下照片,自己也照着做了一下,几分钟都很难坚持,何况一小时了,更何况一个五十多岁的老人了。

甚至到后来,经历的批斗多了,对批斗都开始“挑剔”了,再次引用原文吧
“我现在在被批斗方面好比在太上老君八卦炉中锻炼过的孙大圣,大世面见得多了,小小不然的我还真看不上眼。这次批斗就是如此。规模不大,口号声不够响,也没有拳打脚踢,只坐了半个小时喷气式。对我来说,这简直只能算是一个‘小品’,很不过瘾,我颇有失望之感。……总起来看水平不高……如果要我给这次批斗打一个分数的话,我只能给打二三十分,离开及格还有一大截子。“

再后来,接受劳改,每天吃不饱,没有充分的休息,还要干很多重体力活,时不时还要接受批斗。而且精神极其压抑,没人抬头,没人说话,精神时刻高度紧张,有人叫自己的名字要马上答应,否则就是拳打脚踢。生病了得不到治疗,文中记述睾丸肿胀,无法走路,只好爬了两个小时到医院,结果医生看是“反革命”不给看,又爬了两个小时回到工地。一个五十多岁的老人,这都是怎么坚持下来的非人生活?!

然后住进了劳改人员自己搭起来的牛棚,在牛棚中的生活,被季老总结为“折磨论”,红卫兵小将用各种方法折磨这些老人。而且分章节描述了折磨的不同方法,拳打脚踢都是最基本的,其他还有睁眼看太阳,不让睡觉,脖子上挂又重又大的木牌,住的地方湿气严重蚊虫无数,精神压迫,体力上的折磨,随时抽查的背语录等等等等,现在看来都不是正常人过的生活。再次引用一些原文,从中能多少感受到当时“生活”的真实情况。
“我们‘罪犯’们已经丢掉了笑的本领。笑本来是人的本能,怎么能够丢掉了呢?……试问,在打骂随时威胁着自己的时候,谁还能笑得起来呢?劳改大院里也不是没有一点笑声的,有的话,就是来自牢头禁子的口中。在寂静如古墓般的大院中,偶尔有一点笑声,清脆如音乐,使大院顿时有了生气。然而,这笑声会在我们心中引起什么感觉呢?别人我不知道,在我耳中心中,这笑声就如鸱鴞在夜深人静的时候狞笑,听了我浑身发抖。”

最后牛棚换到了办公楼里,再后来慢慢恢复了自由。我觉得能从文革批斗中坚持活下来的都是勇士!

读《留德十年》

之前对季羡林没什么了解,前些年季老先生去世的时候受到社会上广泛关注,我才知道有这么一个人,但也仅仅是知道而已。这次看《留德十年》又翻看了百度百科,才对季羡林有了一个大致的了解,是一个很认真朴实又很真实的一位老人。

《留德十年》是讲季羡林在德国留学十年的经历。但这段经历很不寻常,因为留学的时间是从1935年到1945年,是亲历了二战,也是作者从普通大学毕业生成长为知名学者的十年。引用作者自己的话说就是“能值得记述的东西只有两段,一个是留德十年,一个是十年的空前浩劫。”。(关于十年浩劫的记述可以看《牛棚杂忆》)。而且季羡林的文字既真实又朴实,看起来毫不矫情又能很准确顺畅的表达,让人看着很舒服。

30年代的中国,跟现在也差不多,都有留学热(虽说现在已经不像十几二十几年前那么热了),也有出国留学镀金一说,作者也是一样,从清华毕业之后也渴望出国留学“镀金”(季羡林不仅仅是镀了金,可以说是抱了金砖回来)。当时正好有清华大学和德国有学生交换项目,作者就考上交流项目,去德国留学了。坐火车到哈尔滨然后穿过西伯利亚草原到达莫斯科,然后换乘波兰的火车到达德国柏林。本来原定两年的学期因为37年抗日战争爆发而延长,之后又爆发二战,这一延长就延长到了十年!作者在二战中亲历了德国普通城市和市民的生活的变化,一开始节节胜利,后来偶尔有空袭,再后来基本全天都在空袭警报中,最后美国兵进城,二战也就结束了。二战结束后作者辗转瑞士、法国、越南、香港,最后抵达上海,终于回国,结束了将近11年的留学生活。

从作者的记述中我们也能从中看到一些有意思的东西。给我印象深刻的是,不同时期的人们,不管是学术泰斗还是普通老百姓,都是有血有肉的普通人,普通人就少不了普通人的烦恼,谁也不能免俗。比如一开始作者说大学毕业后渴望出国留学镀金,当真的有留学机会的时候也是会“狂喜”的。到了德国对学习也迷茫过,不知道到底该学什么,该走什么样的道路。也有七情六欲,比如和邻居迈耶一家的大女儿,伊姆加德小姐,之间的可以算是恋情的感情(据百度百科里说,伊姆加德在季羡林回国后终身未嫁,伴随一台老式打字机等了60年,因为季羡林总是请她帮忙打论文)。但学术泰斗毕竟不是普通人,作者在德国同时学习三种语言(主修梵文,还学习了吐火罗文和斯拉夫语,比如俄语和南斯拉夫语),而且各科成绩都是优秀,最后的博士论文也是优秀,得到各个教授的赞赏。在遭受盟军空袭轰炸最厉害的时期还是坚持每天写日记,即使是在防空洞人挤人的环境下。这就是大师之所以是大师的原因吧。

从书中我们还能了解到当时中国和德国的一些普通老百姓的生活状况和不同国家的人的不同特点,看着也很有意思。作者要去德国就要坐火车先到哈尔滨,当时哈尔滨俄罗斯人很多,书中叫“白俄”,在哈尔滨需要置办火车上将近十天的伙食,因为火车上食品非常贵,而且只收美元。作者买的就是“白俄”商店里卖的食品包,主要是“咧巴”和香肠,热水则需要在每个车站自己下车去打水,有一个俄罗斯老太太每次等他们打水回来都会来要一些开水去。书中还描述了西伯利亚草原的辽阔,贝加尔湖的景色。

到了德国之后感受到了德国人的严肃和严谨,家庭主妇每天都要用肥皂水刷洗自己门口的人行道,街道上和屋子里都是一尘不染。还有德国人的遇事平静,即使正在遭受轰炸城市也没有混乱,大家还是平静的生活,只是后来轰炸太频繁生活才有了变化。到后来轰炸严重的时候,城市里缺少能源,政府就准许市民砍伐周围森林里的树木,但是只有政府标记号的树木可以砍伐,这在中国是不可想象的,在那种情况下德国人还是能严格遵守规矩。德国人虽然严谨,但是作者说在政治上德国人是幼稚的,轻易的相信了纳粹政府的忽悠和煽动。

二战结束,美国兵进城之后也感受到了美国人的“活泼有余,严肃不足”。到了法国乘船也感受到法国人的热情,“把心都放在手心里,准备随时交给你”。还有中国大使馆官员的官僚作风,吃硬不吃软。在香港更是形容香港地少人多,人们都住在“鸽子笼“里(这个形容在三四十年代就有了啊),在街上到处听到楼上的麻将声音(对比当前香港和大陆之间的矛盾,挺有感慨的)。

作者在德国十年,把德国称为第三故乡(第一第二故乡是北京和济南),他跟他的女房东一起生活了十年,可以说是相依为命,认识了那么多教授学者,那么多朋友,但是在回国一别之后基本都失去了联系,可以想象作者在回忆这些情景的时候会是一种什么心情。非常推荐这本书,不是很长,语言平实,但充满了真情实感。我也跟着作者的回忆感受了一下近一百年前的生活,感受了一下他人生活的酸甜苦辣。

[翻译] Negative dentries的价值

原文: https://lwn.net/Articles/1511/

“directory entry” (dentry)是文件系统内部用来存放文件查找结果的内部数据结构。Linux的”dentry cache”会保存最近使用的dentries,这是很有用的,因为文件通常会在短时间内被多次访问。在dentry cache里查找文件会节省很多时间,避免全文件系统查找。

Kernel还保存”negative dentries”,这些dentry表示相关的文件不存在。Andrea Arcangeli最近表示这些negative dentries会占用相当大部分的内存,他怀疑这是否有用。他还发了一个patch,用来更快速的让negative dentries释放内存。

但实际情况是,”文件不存在”是很有用的信息。比如用strace跟踪一个GNOME程序,会发现程序会查找很多不存在的文件,因为在查找它需要的很多的库文件。同样的,apache也在不断的查找.htaccess文件,shell查找可执行文件,等等。在不调用耗时的系统调用的情况下就能知道文件不存在是非常有价值的,特别是对那些经常被查找的文件来说。所以negative dentries会被保留。

但是还是可以进一步优化。在Andrea提到的情况中,negative dentries的产生是因为删除了拥有大量文件的文件夹。当文件被删除后,相对来说在段时间内它被再次查找的可能性相对较小,所以保存negative dentry就不那么有用了。或许在这种情况下,删除dentry cache是更好的选择。