aufs不能进入内核的原因

阅读更多

    aufs 是一个叫岡島的日本人开发的联合文件系统,用来把原本分离的两个文件系统联合在一起。Linux 下这样的文件系统还有不少,比如很早就有的 unionfs。aufs 最初也是参考 unionfs 而实现的。aufs 很早就被 Debian Linux 发行版所采用,因为它是一个内核驱动,并且在 squashfs 联用时功能特别强,所以我从来就没想过它其实一直是游离在 Linux 之外的。

    联合文件系统听上去也不难,所以有很多开发者尝试过去开发,可一旦尝试就会发现在 Linux 系统上实现联合文件系统非常困难。有个类似的 union mount 的程序,作者 Henson 从 2004 年开始开发,到现在也将近10年了,但还没有正式发布。因为时间太长,Henson 一度放弃开发,最近似乎也要转行去做别的事了。Union mount 在 Linux 界被很多人推崇,因为这个东西太重要,Henson 说在转行前会彻底搞定它。

    回到 aufs 的话题, 因为这个文件系统很好用,经过长时间的检验,它的稳定性、各种功能都非常不错,因此有很多业内人士建议岡島将 aufs 提交给 Linux 内核。岡島也希望让他的作品有更大的影响力,因为就目前来说,除了 Debian Linux 外,其它的 Linux 发行版往往是没有 aufs 驱动的。于是他做了很多工作,以提高代码的可阅读性,并精简了一些不必要的特性,使得 aufs 看上去更规范。和 aufs 提交给内核的,还有其它作者开发的类似的联合文件系统,如 unionfs,但是这些全被 Linus Torvalds 拒绝了,理由大概是,aufs 的代码写的太烂!而其它的么,嗯,Linus 大概只看好 union mount,所以对这些烂代码,就暂不考虑了!当然这只是我的猜测。不过似乎不是只有 Linus Torvalds 觉得他的代码烂,其他人似乎也这么觉得。

aufs不能进入内核的原因_第1张图片

    岡島不死心,这之后又日以继夜的对代码反复修改,也有不少人给 Linux 相关组织提出希望收录 aufs 的想法,然后这就象拉锯战一样,岡島不停的改不停的提交,Linus 不停地拒绝。岡島在论坛里记录最终 Linus 还是不同意 aufs 进入内核,他似乎绝望了,发贴说到,“好了,我们永远也不可能进入内核了,大家幸苦了,大家放弃吧~“之类的话。究竟是怎样的功能强大的烂代码,让我们不妨见识一下吧:


fs/aufs/super.c
aufs不能进入内核的原因_第2张图片

fs/aufs/i_op_ren.c
aufs不能进入内核的原因_第3张图片

fs/aufs/whout.c
aufs不能进入内核的原因_第4张图片

aufs-tools: libau/rdu.c
aufs不能进入内核的原因_第5张图片


    怎么样? 觉得自己写的代码比岡島的要好的多的多的请举手?还是更烂呢?

    尽管 aufs 的代码乱的一团糟,这一点也不影响它的强大,这也许是日本程序员特有的表现手法,就好像日本产品中很多无意义的排版,乱虽乱,但乱中有序。但是无法加入 Linux 内核或许预示着随着时间的推进,aufs 的光辉将逐渐暗淡下来,最终被 union mount 等其它更完美的实现所取代也不一定。作为结束语,想想有个英语更烂的日本,是不是觉得内心瞬间强大起来了呢?
  • aufs不能进入内核的原因_第6张图片
  • 大小: 45.9 KB
  • aufs不能进入内核的原因_第7张图片
  • 大小: 64.1 KB
  • aufs不能进入内核的原因_第8张图片
  • 大小: 63.7 KB
  • aufs不能进入内核的原因_第9张图片
  • 大小: 18.1 KB
  • aufs不能进入内核的原因_第10张图片
  • 大小: 35 KB
  • 查看图片附件

你可能感兴趣的:(Linux,文件系统)