ChinaUnix:本来Java在FreeBSD平台的支持就磕磕碰碰的,现在好了,Oracle收购了Sun,FreeBSD平台上的Java还会有好的发展么?
delphij:我认为我需要修正一下,FreeBSD 对 Java 的支持并没有什么太严重的问题,过去FreeBSD 对 Java 的支持不太好用的原因是 Sun 的授权不允许 FreeBSD 直接发布编译过的二进制包,这导致在 FreeBSD 平台上安装 Java 很不方便,因为编译一个二进制版本的包需要的时间比较长。
在 FreeBSD 基金会和 Sun 公司的努力下,Sun 公司授权 FreeBSD 基金会发布了一系列新版本的二进制 Java 版本,这在一定程度上缓解了先前由于必须自行编译或使用 Linux 兼容 ABI 支持使用 Linux 版本 Java 的不便。2006年底,Sun公司宣布以 GPLv2 发布一套名为 OpenJDK 的新的 Java 版本,并分步骤发布了较为完整的新版实现,FreeBSD 目前也提供了基于这组套件的新版本 Java,未来将取代FreeBSD 现有的 native JDK。
Oracle 收购 Sun 目前仍在进行中,现在评估其影响可能还为时尚早。不过,由于OpenJDK 已经以 GPLv2 发布了多个版本,Oracle 未来将其重新变为不公开源代码的可能性并不太大,最严重的情况也无非是新版不再公开代码而已,而根据美国法律,这并不影响社区继续维护已有版本的合法性, 以及相关的研发能力。
相比 IBM,我认为 Oracle 收购 Sun 尽管不是十分理想的结果(个人感觉两家公司的企业文化差异还是比较大的),但是要比前者好一些,因为至少双方业务上的互补性更强一些。如果这次收购成功, 也许能够给 Sun 这家领跑硅谷27年的技术公司注入新的活力。这次收购对于开源的影响,我想因为两家公司规模很大,还需要一段时间才能够看得比较清楚。
ChinaUnix:FreeBSD平台的文件系统目前发展的如何,ZFS可以在生产环境使用了么?相比较而言,Linux平台的文件系统发展的很快,比如有最新的Ext4、另外还有Btrfs,能比较一下这几者间的差别么?
delphij:FreeBSD 目前提供了两种主要的文件系统——UFS和ZFS。在生产环境中使用早期的ZFSv6 版本(直到 7.2-RELEASE 和之前的 FreeBSD 7.x 版本),在大量并发的条件下存在一些问题,而新的 ZFSv13 版本,也就是目前 7.2-STABLE 中的版本,则已经相当稳定,而且性能方面也有相当显著的改善。
ZFS 是一个非常关注数据可靠性的文件系统,正确配置和使用的 ZFS 与其他现有的文件系统,包括 UFS、ext3、ReiserFS、XFS 等等相比,都具有无可比拟的可靠性优势。当然,在性能方面,这些文件系统各自有不同的擅长的领域,例如 XFS比较适合于跑数据库、ReiserFS 比较适合大量小文件的情形,然而正如 Donald E Knuth 说的,计算机硬件和程序都是“Garbage in, garbage out”的,好的程序员有一万种方法在不换文件系统的前提下改善性能,却没有任何一种办法在数据损毁的情况下让计算机得到正确结果。这一点上我非常赞同 Solaris 的一项设计原则:Performance is a goal, correctness is a constraint。
ChinaUnix:国内BSD系统部署的大概情况,主要应用在哪些方面,能给大家做个介绍么?
delphij:我了解的国内部署主要有作为CDN的反向代理、国内一些知名网络游戏的服务器后端、商用的虚拟主机、DNS等等。最近在美国这边也看到有 报道说,国内的一些高校也基于 FreeBSD 开发了一些操作系统产品,并在一些国有银行中取代了 SCO Unix。FreeBSD 提供的防火墙和路由等机制非常适合于作为办公室、学校和网吧的安全设备。
ChinaUnix:FreeBSD系统上的虚拟化技术支持目前进展如何?在这种技术趋势中FreeBSD能够扮演什么角色,另外还有云计算。
delphij:FreeBSD 从 4.0,也就是 2000 年左右的时候就已经提供了其特有的虚拟化技术——jail,这是一种轻量级的虚拟化技术,配合 FreeBSD 的 Linux ABI 支持,能够同时运行 FreeBSD 和 Linux 应用。与 Xen 相比,尽管它不能支持其他 OS 并行运行,但这种虚拟化的开销要少很多,能够满足许多大型互联网公司的需要,并且在过去近10年中被许多虚拟主机提供商使用。我们过去在公司内部的开发环 境,以及一部分生产环境中也大批量地使用了 jail 技术,并达到了充分利用硬件资源的目的。
此外,最近一段时间 FreeBSD 的 Xen 支持也有相当多的进展(FreeBSD目前已经能够很好地在 Xen 3.3 中运行,但 Amazon EC2 所采用的是较早版本的 Xen,因此有开发人员正在进行这方面的工作)。我认为支持 Xen (不仅是目前已经支持的 domU,也包括 dom0)对 FreeBSD 来说是一件很重要的事情,然而对普通用户,特别是希望尽量多地将硬件资源用于真正的业务和计算上的用户来说,jail也许是个更好的选择,毕竟在真正的生 产环境中需要同时混合 *nix 和 Windows 环境的机会并不是很多,类似 Xen 那样同时运行多个不同的内核的方法带来的开销就有些得不偿失了。
ChinaUnix:能和大家谈谈FreBSD操作系统的桌面支持进展如何?特别是硬件,比如显卡、声卡等等。
delphij:这方面 FreeBSD 比较需要新的人手 :) 比较常见的硬件,如 Lenovo 和 Dell的笔记本、常见的 AC97 声卡、Intel 3945/4965无线网卡等,FreeBSD 已经能够提供相当完善的支持,但一些不太常见的硬件目前很可能还支持的不够好,或完全不支持。
对于希望参加 FreeBSD 团队的开发人员来说,这些都是很好的入手方向,因为驱动开发可以说是内核开发中最简单的部分。我们也希望硬件厂商能够尽可能地开放他们的硬件 datasheet,因为只开放二进制版本或缺少注释的源代码驱动出来,尽管也许能够使用,但非常不利于社区修正其中的bug和持续的维护,并且也会增加 这些企业的人力成本。
ChinaUnix:FreeBSD 8.0可能是下半年的重点吧,这个发行版将会带来什么新特性?
delphij:FreeBSD 8.0 目前已经进入了代码变动减速阶段,再过大约一个月之后将进入代码冻结,因此,基本上可以确定这个版本会在今年下半年发布(目前的计划是8月左右)。这个版 本除了在先前版本基础上所作的性能和可靠性方面的改进之外,还有一些比较重要的改进:
- POSIX TTY。使TTY从驱动中抽象出来,并简化了两者的逻辑。有助于改善可靠性和X的用户体验。