关于netbsd和freebsd的差别(1) NetBSD 与 OpenBSD 更相似一些(其实应该反过来说才更确切)。就操作系统而言,我现在能想到的有这些区别(用即将推出的 2.0 版做比较): - 没有 /stand/sysinstall,配置一般用命令行。有一个叫 sushi 的 program 是个菜单式的系统管理界面,但有些东西好像还不 work。 - 网卡的配置文件是 /etc/ifconfig.<if#>,<if#> 可以是 fXP0, xl0 等,每个网卡一个文件。 - Daemon 的启动用的是 NetBSD 的 rc.d 系统,该系统已经被 FreeBSD 5.x 采纳,所以如果用过 5.x 的话应该不陌生。 - 默认的 shell 是 CSh (FreeBSD 用得实际上是 tcsh)。 - FreeBSD 用了 PAM,NetBSD 没有用,但 PAM 在 pkgsrc 里有。 - NetBSD 采用的 nsswitch,FreeBSD 好像没有。 - NetBSD 采用 raidframe,FreeBSD 采用 vinum。但这两者都已移植到了对方的系统。 - NetBSD 的防火墙采用 ipfilter,-current 里还加入了 OpenBSD 的 pf。在 NetBSD 2.0 里,可以采用 pkgsrc-wip 里的 pflkm 来加入 pf 的支持。FreeBSD 的防火墙诸位都应该比较熟悉了,我就不多说了。 另外一个显著的不同是 NetBSD 的 pkgsrc。尽管它是从 FreeBSD 的 ports 派生的,但在其后的演化中加入了许多新特性,比如用 buildlink 替代 DEPENDS,等等。与 FreeBSD 的 ports 比较,有这些不同: - 软件安装的 prefix 是 /usr/pkg,而不是 /usr/local(当然如果你愿意,还可以把它变为 /usr/local)。这样做的好处就是,从源码编译安装的软件仍然可以安装到 /usr/local,而不与 NetBSD 的 pkg 混在一起。当然 FreeBSD 也可以把 prefix 设为不是 /usr/local,但不是所有的 package 都遵循,有的 package 使用 hardcode 的 prefix (/usr/local)。 - pkgsrc 把一个 software package 的不同的模块分解到不同的 pkg 里,这也是我比较喜欢 pkgsrc 的比较重要的一点。比如说,对于 PHP4 这个 pkg,在 FreeBSD 下就需要在编译时选择编译哪些模块,如果安装以后想要再增加新的模块(或去掉不用的模块),就需要重新编译。NetBSD 则不然,比如说你想安装 php4-mysql,在安装 php4 后,再进入 /usr/pkgsrc/databases/php4-mysql,然后 make && make install 就可以了,其他的 php4 模块也是如此。其他的例子还有 subversion,在 FreeBSD 下你或者安装 subversion,或者安装 subversion-python。在 pkgsrc 下,你可以安装 subversion-base,然后安装 py-subversion,还可以安装 ap2-subversion (apache2 的 webdav support),等等。在这一点上,我觉得 pkgsrc 有点象 Debian,把一个软件包拆成不同的功能块,分别放在不同的 pkg 里面。