关于netbsd和freebsd的差别

发表于:2007-06-09来源:作者:点击数: 标签:
请用过netbsd的同学谈一下他和freebsd的使用和配置有那些显著的差异。 dennis2 回复于:2004-08-03 03:43:38 NetBSD与OpenBSD更相似一些(其实应该反过来说才更确切)。就操作系统而言,我现在能想到的有这些区别(用即将推出的2.0版做比较): -没有/stand/

请用过netbsd的同学谈一下他和freebsd的使用和配置有那些显著的差异。

 dennis2 回复于:2004-08-03 03:43:38
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 里面。

- pkgsrc 不仅可以在 NetBSD 上使用,也可以在各种不同的 Linux distribution, FreeBSD, OpenBSD, Solaris, IRIX, AIX, Darwin (Mac OS X)。我个人就在 Linux 和 Solaris 上用过。

- pkgsrc 里的 pkg 虽然不如 FreeBSD 里面的多(因为要兼顾 NetBSD 支持的各种平台),但许多 missing 的 pkg 可以在 pkgsrc-wip (http://pkgsrc-wip.sourceforge.net/) 里面找到。wip 是 work in progress 的意思,一个 pkg 在加入 pkgsrc 之前,要经过 wip。wip 里面的 pkg 大多数都能很好地支持 i386,所以在 i386 上可以作为 pkgsrc 的补充。比如 jdk14 (这个是 NetBSD native 的),pflkm 现在还都是在 wip 里面。

关于 pkgsrc,详见 http://www.pkgsrc.org 。

 llzqq 回复于:2004-08-03 19:01:51
好,有一定的收获,谢谢

 dennis2 回复于:2004-08-23 09:37:05
[quote:a8f4712135="dennis2"]......
比如说,对于 php4 这个 pkg,在 FreeBSD 下就需要在编译时选择编译哪些模块,如果安装以后想要再增加新的模块(或去掉不用的模块),就需要重新编译。NetBSD 则不然,比如说你想安装 php4-mysql,在安装 php4 后,再进入 /usr/pkgsrc/databases/php4-mysql,然后 make && make install 就可以了,其他的 php4 模块也是如此。
......[/quote:a8f4712135]

I'm glad to take my word back - as of php-4.3.8, those php modules were split into separate packages, which is very cool!

 cnhnln 回复于:2005-01-11 13:14:32
学习

 delphij 回复于:2005-01-12 00:34:50
[quote:a7417174fa]- NetBSD 采用的 nsswitch,FreeBSD 好像没有。[/quote:a7417174fa]
FreeBSD有nsswitch

[quote:a7417174fa]- NetBSD 采用 raidframe,FreeBSD 采用 vinum。但这两者都已移植到了对方的系统。[/quote:a7417174fa]
RAIDFrame由于缺乏维护被删掉了:(目前有人正在做新的RAID系统

[quote:a7417174fa]- 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 里面。[/quote:a7417174fa]
目前FreeBSD也采用了类似的做法。

pkgsrc是好东西 :-) 看了bsd.*.mk才知道自己不会写Makefile...

 剑心通明 回复于:2005-01-12 08:11:04
回头装个NetBSD去

 outcrop 回复于:2005-01-12 12:30:13
[quote:f1e74330c0="dennis2"]NetBSD 与 OpenBSD 更相似一些(其实应该反过来说才更确切)。就操作系统而言,我现在能想到的有这些区别(用即将推出的 2.0 版做比较):

- 没有 /stand/sysinstall,配置一般用命令行。有一个叫 sushi 的 progr..........[/quote:f1e74330c0]
受教!
只是很多还不知道是什么东西 :oops:

 dennis2 回复于:2005-01-12 17:09:30
[quote:693753d84f]FreeBSD有nsswitch[/quote:693753d84f]

对,这个我忽略了,FreeBSD 从 5.x 开始加入了 nsswitch 的支持。

[quote:693753d84f]RAIDFrame由于缺乏维护被删掉了:(目前有人正在做新的RAID系统[/quote:693753d84f]

是 FreeBSD 5.x 里面的 RAIDFrame 被删掉了吗?真是可惜 ... 5.3 下的 RAID 比较 confusing,好像与以前的版本不太一样了,用的好像是 GOEM 的 gvinum,可却没有 gvinum 的 man page :( ;而 GOEM 好像也有自己的 RAID (是不是你提到的正在做的新的 RAID 系统?)。我手里有一台 5.1 的 vinum 的系统,我都不敢升级,怕出问题。

[quote:693753d84f]目前FreeBSD也采用了类似的做法。[/quote:693753d84f]

嗯,这个我也注意到了(见我前面 4 楼的贴子)。不过,pkgsrc 现在更进了一步,它把 php4 和 php5 的模块合在一起了,就是说没有了 php4-mysql 和 php5-mysql,只有 php-mysql 了。具体装哪个版本的 php-mysql,根据已经安装的 php 版本来决定。

[quote:693753d84f]pkgsrc是好东西 :) 看了bsd.*.mk才知道自己不会写Makefile...[/quote:693753d84f]

:) BSD 的 make 与 GNU 的 make 也有所不同(好像是 pmake),据说比 gmake 功能还要强大。

 delphij 回复于:2005-01-13 01:14:58
gvinum的用法和vinum基本一样,不过5.3-R的有点毛病,如果一定要用建议用5.3-STABLE或等待下一个RELEASE。

RAIDFrame被删掉最主要的原因是没有人maintain,而NetBSD和FreeBSD的VM差别又很大,慢慢RAIDFrame就连编译都过不去了。目前看来6.0-RELEASE(大约6月左右)应该会有比较成型的新RAID实现。

GEOM目前有独立的RAID3(传说中用软件实现非常难的那种RAID...)但这应该不是最终的FreeBSD RAID。iSCSI支持不知道能不能赶得上6.0了

原文转自:http://www.ltesting.net