自从1991年诞生以来,一共有两万多人对Linux内核做出过贡献。
这其中有业余爱好者、黑客、研究人员、有受聘于大公司的员工...... 其中有一个人,为Linux的发展做出了杰出贡献,最后却成了杀人犯。
这个人就是Hans Reiser。
0 1
神童
Linux内核奉行精英管理,只有最好的代码才能进入Linux。
汉斯写的代码就是最好的代码,他是一个神童,童年时不合群,受到过同学的排斥和虐待。
13岁时因为鄙视僵化、传统的教育体系从初中辍学。
15岁时汉斯被加州大学伯克利分校录取,但是他没有好好读书,13年后才获得了计算机学士学位。
在此期间,他发明了一个角色扮演游戏,写了一本外星人入侵地球的科幻小说,然后就发现了一个令他超级感兴趣的东西:Linux。
他觉得Linux的文件系统还不够好,想做一个更快更高效的。
什么是文件系统呢?
有个绝妙的比喻:文件系统是磁盘的图书管理员。
当在图书馆里放一本新书时,管理员需要找到一个空书架,放到那里,然后更新卡片目录(相当于索引),记录下书具体的位置,这样以后可以找到这本书。
如果你正在做这件事的时候,突然停电了,屋里一片黑暗,会发生什么事情呢?
图书管理员可能找到了书架,但是书还没放上去,或者放上去了,还没有更新目录。
这种半成品的状态让整个系统乱掉了,崩溃了,你得运行一个磁盘检查工具,等上几个小时......
另外,随着文件越来越多,也会出现性能问题,系统会变慢。
1993年,30岁汉斯想解决这个问题,但是这不是一个人就能搞定的,他需要一个团队。
0 2
爱情事业双丰收
当时苏联刚解体不久,经济崩溃,生活艰难。
俄罗斯那些数学基础极好,才华横溢的程序员,找不到工作,赚不到钱。
汉斯看到机会,飞到莫斯科,把这些程序员组织起来,让他们和自己一起实现ReiserFS的梦想。
汉斯其实没有多少预算,他拼命工作,努力赚钱,换了好几家公司,Synopsys ,Sun,甚至在某个军事研究中心兼职。
然后把赚来的钱给这些俄罗斯程序员发工资,钱虽然也不多,但对于处于困境的俄罗斯程序员绝对是雪中送炭了。
汉斯往返于美国和俄罗斯之间,督促团队精益求精,确保代码干净,算法高效。
在他的不断努力下,ReiserFS逐渐成型了。
ReiserFS完全从头儿设计,几个独门绝技:
1.日志机制(Journaling)
每个实际的数据在修改之前,相应的日志已经写入硬盘,文件和数据的安全有了保障,解决了“图书馆放入图书时停电的问题”。
2. 优秀的小文件处理能力
ReiserFS 使用了一种叫做 B*-树的数据结构,可以将小文件直接存储在 B*-树的叶子节点中,这让它性能卓越。在处理文件小于1k小文件时,效率可以比ext2快约10倍。
3.高效磁盘空间利用
Reiserfs对一些小文件不分配inode。而是将这些文件打包,存放在同一个磁盘分块中,非常节省空间
4.支持海量磁盘
ReiserFS可轻松管理上百G的文件系统,支持的最大文件系统为16TB,非常适合企业级应用。
优越的性能,让ReiserFS受到很多公司的青睐,成为了SUSU Linux默认的文件系统。
对于那些经济非常贫困、前景黯淡的国家,年轻女性嫁给富裕的西方人(尤其是美国人)可能是一条诱人的出路。
二战以后的菲律宾是这样,苏联解体后也是如此,一个叫做“邮购新娘”(Mail-order bride)的业务蓬勃发展,婚姻中介会在纸本目录、网络、电视、或其他形式的广告宣传想出嫁的女性,而那些富有的西方人会从这些列表中挑选对象。
当然,这种关系也充满危险和欺诈,比如结婚拿到绿卡的第二天就离婚。
1998年3月,35岁的汉斯在俄罗斯遇到了邮购新娘尼娜·莎拉诺娃 (Nina Sharanova),妮娜是个医生,汉斯对她一见倾心,他担保妮娜进入美国,两人很快恋爱,结婚。
1999年9月,他们的第一个孩子出生。
此时ReiserFS获得了开源社区的认可,爱情事业双丰收,一切看起来都非常美满。
0 3
危机到来
但是危机的种子也被悄悄埋下,为了ReiserFS,汉斯大部分时间都在俄罗斯度过,妮娜在美国不得不独自照看孩子,独自面对新的文化和新的生活。
两人的矛盾开始爆发,妮娜有自己的梦想,想在美国成为一名医生。汉斯认为俄罗斯女人应该呆在家里,放弃事业,照顾孩子,专注家庭。
妮娜感到非常孤独,困在了让人窒息的婚姻中。
2001年,汉斯成立了一家Namesys的公司,除了维护ReiserFS之外,还开始了新的文件系统Reiser4的开发。
五角大楼向Namesys提供了60万美元的资助,支持Reiser4的开发,汉斯长期在莫斯科和他的程序员团队一起工作,妮娜则担任公司的CFO。
但是不久以后,公司的现金储备在莫名其妙地迅速缩水,汉斯的父亲曾是越战时期的陆军情报人员,他对自己的儿媳妇进行了“评估”,并警告儿子,她不诚实,怀疑她挪用资金用于不明用途,但汉斯不相信。
公司没钱,发不出工资,妮娜找到了汉斯儿时好友肖恩,说服他借给Namesys一大笔钱。
不久之后,妮娜就和肖恩就传出了绯闻,肖恩让妮娜接触到摇头丸,“两人似乎都在寻求越来越多的刺激,并且走得越来越远。”
愤怒的汉斯指责肖恩是一个“有纹身,吸毒成瘾”的家伙,与妮娜一起合谋Namesys的资产。而肖恩则说汉斯是自大狂,“以为自己是世界上最伟大的程序员。”
在养育儿女上,两人也矛盾重重,汉斯让孩子玩暴力的电子游戏,这样孩子可以接触现实世界,向小男孩灌输男子汉气质。
妮娜则认为电子游戏中的那些怪物和死亡画面会伤害孩子,孩子需要的安全舒适的环境,而不是虚拟的战场。
他们的儿子罗里有焦虑、噩梦等行为问题,妮娜带着罗里去看医生,汉斯不以为然,认为这是成长中的正常现象,妮娜捏造病情,是为了获得监护权。
各种矛盾累加起来,冲突在不断升级,两人开始分居,打官司,2005年12月,法院将完全的监护权判给妮娜,汉斯有探视权。
这个时候ReiserFS也被爆出了问题,虽然它非常适合处理小型文件,但无法扩展。它无法处理越来越常见的海量数据集和高容量工作负载。
但汉斯不在乎,他对修复ReiserFS兴趣不大,他有Reiser4,这个下一代文件系统将解决所有问题。
汉斯过于专注自己的愿景:建立完美的文件系统,有序的数据王国。但它忽略了现实世界:软件是需要维护的,社区是需要合作的。
他和Linux内核开发人员产生了严重的冲突,Linux之父也对Reiser4不感兴趣。
一方面是失败的婚姻,家庭的矛盾;另一方面是开源社区的争论。
汉斯的压力越来越大,他失去了控制。
童年时遭受虐待的阴影开始出现,他瞄准了伤害过他的人。
0 4
rm -rf 妮娜
2006年9月3号下午,妮娜带着孩子来到汉斯妈妈的家里,汉斯也住在那里。
两个孩子到地下室去玩儿,妮娜和汉斯在楼上爆发了一场激烈的争吵,导火索还是儿子的病情,妮娜说她现在有完全的抚养权,要继续带孩子去看心理医生,汉斯勃然大怒,用拳头打她的脸,用胳膊锁住了她的喉咙。
从那以后,妮娜便失踪了,再也没有人看到她。
警方对汉斯实施了监控,终于发现了汉斯失踪了的本田思域轿车,里边的血迹和妮娜的DNA匹配。
汉斯被逮捕,被判一级谋杀罪。
但案件有个巨大的缺口,警方一致没有找到妮娜的尸体,这就像文件系统中,一个关键的数据——Nina的位置——丢失了。
2008年7月,汉斯与当局达成认罪协议,透漏了尸体的埋藏地点,以换取减刑。
Linux社区对于汉斯的罪行感到震惊和难以置信,ReiserFS也因为汉斯而蒙羞。
2022年,ReiserFS被Linux弃用,并计划于2025年删除。
汉斯认为他的Reiser4会彻底改变Linux,现在看来,永远不可能了。
2023年,在加州监狱的汉斯发出了一封长信,信中谈到了ReiserFS的发展历程,自己犯下的错误。
最后他说到:
在监狱里我学会了“通过沟通来解决问题”,并且相信自己可以通过沟通来解决问题,我希望在我结婚前或者加入LKML(Linux内核列表)之前就学会这些能力,我也希望有一天,在小学能教这些东西。
全文完,觉得不错的话点个赞或者在看吧!
近期爆文:
热门跟贴