忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 101938 | 回复: 53

[FreeBSD] 选择 FreeBSD 六个理由 ^_^ [复制链接]

论坛徽章:
12
2015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56寅虎
日期:2014-05-10 09:50:35狮子座
日期:2013-09-08 08:37:5215-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:03
发表于 2012-09-04 22:32 |显示全部楼层
本帖最后由 ulovko 于 2012-09-05 13:51 编辑

第一个理由:FreeBSD 是一个免费的开源的操作系统

Linux 也是一个免费的开源的操作系统。不过 Linux 是基于 GNU General Public License 的,而 FreeBSD 是基于 BSD License 的。BSD License 比 GNU General Public License 更加宽松。
OpenSource-License.jpg
FreeBSD 的系统源码可以通过各种方式免费的得到。系统源码包括内核源代码和基本系统源 代码,如果你在安装系统的时候选择了安装源码,那么它就在 /usr/src 目录底下。如果你经常更新系统源代码,那么 经常看看 /usr/src/UPDATING 是个很好的习惯。同理, 如果安装了 Ports 系统,经常看看 /usr/ports/UPDATING 可以了解很多有用的信息。

源代码的作用有很多。如果你是一个系统软件或者应用软件开发者,你可以改进源代码为 FreeBSD 作出贡献,或者你参考系统源代码写出很棒的应用软件,或者你通过阅读源代码掌 握了很多知识、取得了经验。如果你是一个普通用户,可以通过从源代码配置编译系统获得 更高的系统性能。总之,开放的源代码不仅给用户提供了很多好处,也为 FreeBSD 系统的 开发者提供了一个可能性,就是不同的人都可以通过源码找出系统中可以改进的地方并及时 反馈给系统开发者。

第二个理由:FreeBSD 是一个完整的系统

Linux 这个词指的是内核。当我们提到操作系统的时候,严格的用词应该是 GNU/Linux 或 者某个发行版的名字,比如:SUSE Linux,Debian GNU/Linux,CentOS, Fedora, Ubuntu Linux,Mandriva Linux 等。这些发行版使用的都是相同的 Linux 内核,可能只是内核的 版本有差异而已。各个发行版的系统结构可能都是不同的:比如系统启动的脚本,文件系统 的布局,系统和软件升级的方式方法,默认桌面环境等。

而 FreeBSD 这个词指的是一个完整的系统,包括内核,系统环境,应用软件,各种文档等。 不严格地说,Ubuntu 和 RedHat 之间的关系就有点像 FreeBSD 和 NetBSD,OpenBSD。但是,后面这些 BSD 系统都是 从 4.4BSD 发展来 的,而 4.4BSD 本身就是一个完整的操作系统,不是一个孤单的内核。
(FreeBSD被认为是自由操作系统中的不知名的巨人。它不是Unix,但如Unix一样运行,兼容POSIX。作为一个操作系统,FreeBSD被认为相当稳建可靠。)

FreeBSD 有一个 Core Team 来管理这个项目。这些 Core Team 成员是从为数众多的 Committer 中选举出来。这些 Committer 有权力对 FreeBSD 的内核代码进行维护,改进,升级等。 Core Team 和 Committer 对 FreeBSD 的内核代码质量有严格的把关。FreeBSD 的人经常说: 有问题的代码不能在这里生存。而 Linux 的内核掌握在 Linus Torvalds 手 里。所有有能力的人都可以对 Linux 内核作贡献。也就是 Eric S. Raymond 所说的 市集开发模式。 从管理模式来说,Linux 内核的代码质量相对要低一些。因此,如果是求稳定的话, FreeBSD 肯定是不二的选择。

FreeBSD 的应用软件要通过 Ports 系 统 来安装管理。所有的软件都经过特殊的设置来配合 FreeBSD 系统。这 些特殊的配置包括编译的参数,安装的路径,文档的存放等。这样可以方便的管理,安装, 卸载应用软件,而不需要太多人工的参与。而 Linux 系统的应用软件管理则比较混乱,各 种发行版都不相同。不过越来越多的 Linux 发行版都在向 Ports 系统学习。典型的比如 Debian/GNU Linux 的 APT。FreeBSD 的 Ports 系统更新是相当快的。随着系统的每次升级,Ports 系统都会有活跃的更新,以便使 各种应用软件跟上系统的升级。

第三个理由:FreeBSD 有清晰的目录结构

Linux 下目录结构有一个为人诟病的大缺点,就是文件存放的随意性。各种发行版可能都有 不同的选择。比如系统库,就有可能在 /usr/lib,或者 /lib 里面。比如 X (XFree86 或者 Xorg) 应用软件有可能放到 /usr/lib 里面。当一个 Linux 用户想要从源码编译安装 软件的时候,往往没有明确的标准来确定自己编译的软件到底应该安装在什么地方。他有可 能会作很多 symbolic link 把文件链接来链接去。系统里面经常留下很多失效的链接。而 FreeBSD 的目录结构是相当清晰的,我们可以看看一些目录作用的解释:

  1. /bin/      user utilities fundamental to both single-user and multi-user environments

  2. /boot/     programs and configuration files used during operating system bootstrap

  3.                 defaults/  default bootstrapping configuration files; see loader.conf(5)
  4.                 kernel/    pure kernel executable (the operating system loaded into memory
  5.                            at boot time).
  6.                 modules/   third-party loadable kernel modules; see kldstat(8)

  7. /etc/      system configuration files and scripts

  8.                 defaults/  default system configuration files; see rc(8)
  9.                 mail/      Sendmail control files
  10.                 mtree/     mtree configuration files; see mtree(8)
  11.                 namedb/    named configuration files; see named(8)
  12.                 pam.d/     configuration files for the Pluggable Authentication
  13.                            Modules (PAM) library; see pam(8)
  14.                 periodic/  scripts that are run daily, weekly, and monthly,
  15.                            via cron(8); see periodic(8)
  16.                 ppp/       ppp configuration files; see ppp(8)
  17.                 ssl/       OpenSSL configuration files

  18. /usr/      contains the majority of user utilities and applications

  19.                 compat/   files needed to support binary compatibility with
  20.                           other operating systems, such as Linux (created by
  21.                           sysinstall(8))
  22.                 include/  standard C include files
  23.                 lib/      shared and archive ar(1)-type libraries
  24.                           aout/       a.out archive libraries
  25.                           compat/     shared libraries for compatibility
  26.                                       aout/       a.out backward compatibility
  27.                                                   libraries
  28.                 local/    local executables, libraries, etc.  Also used as the
  29.                           default destination for the FreeBSD ports framework.
复制代码
以上是 FreeBSD 系统下命令 # man hier 的输出的节选。 基本上每个目录都有特定的作用,什么东西放到哪里都有明确的规定。系统管理员在管理系 统的时候将从清晰的目录结构中得到很多益处。BSD 学院风格的严谨作风在这里体现得非常明显!

第四个理由:FreeBSD 可以方便的安装升级

Linux 各种发行版的用户肯定都有在网上到处寻找 rpm 的经历。而且很多用户都不敢贸然 升级自己的内核。如果要升级整个基本系统,对于很多 Linux 用户来说就是一个浩大而繁 杂的工程了。对于 FreeBSD 来说,升级只是一件很简单的事情。

从升级基本系统来说,FreeBSD 可以使用各种方式来升级。比如 Anonymous CVS、CVSup 等。或者也可以二 进制升级。比如,如果我要升级我的系统,可能我只需要如下的几个命令就可以轻松的完成:

  1. #cvsup stable-supfile
  2. #cd /usr/src
  3. #make buildworld
  4. #make buildkernel
  5. #make installkernel
  6. #reboot
  7. ... ...
  8. #mergemaster -p
  9. #cd /usr/src
  10. #make installworld
  11. #mergemaster
  12. #reboot
复制代码
这些命令做了四件事情:第一是更新你的系统源码、第二是重新编译系统源码,第三是编译 安装新内核、第四是更新你的系统配置文件。这篇 The Cutting Edge 详细的解说了怎么更新你的系统。当然,我省略了内核的配置以及 mergemaster 这个命令的使用方法等。可能显得有点复 杂吧,不过与 Linux 相比,我觉得还是很简单容易上手的。

要安装升级应用软件,在 FreeBSD 下就更加简单了。如果你在安装系统的时候选择了安装 Ports 系统,那么你 只需要到 Ports 下相应的目录输入几个命令就可以轻松完成。比如,你要安装 Nvidia 的官方显卡驱动,那么你只 要:

  1. #cd /usr/ports/x11/nvidia-driver
  2. #make install clean
复制代码
就可以自动完成驱动的安装和配置。当然,还有更加快捷的安装方法,使用命令 pkg_add -r nvidia-driver 可以从网上自动下载已经编 译好的驱动然后自动安装。FreeBSD 的官方文档 Using the Packages System 详细解说了 packages 的使用方法。如果是升级已经安装的驱动程序,则可以:

  1. #cd /usr/ports/x11/nvidia-driver
  2. #make deinstall reinstall clean
复制代码
或者你可以使用 portupgrade 来升级已经安装的程序。

第五个理由:FreeBSD 的文档十分齐全

到目前为止,Linux 的文档在很多方面还比不上 FreeBSD 的文档。Linux 因为发行版的原因, 各种文档都纷繁复杂,难于寻找。而 FreeBSD 的文档几乎涵盖了系统的各个方面。对于 FreeBSD 的初学者来说,仔细阅读文档应该是必修的功课。国内的 FreeBSD 用户甚至翻译 了一个中文版本,这对 阅读英文有困难的 FreeBSD 中国用户来说是一个福音。

FreeBSD 的文档不仅包含最重要的 Handbook 和 FAQ,还有 专门给软件开发人员的 Developer's Handbook 和 Porter's Handbook。而且这些文档还只是所有 FreeBSD 文档的一个部分。Unix 系统的传 统 man 文档, GNU 的 Texinfo 文档等在 FreeBSD 中都很完整而详细。另外,FreeBSD 还有很多系统配置的例子 (一般这些例子都在 /usr/share/examples 和 /usr/local/share/examples 目录下)。这些例子对新手 系统管理员和普通用户是很好的帮助。

第六个理由:FreeBSD 很稳定而且性能优异

Linux 很稳定而且性能也很优异。在性能方面甚至要超过 FreeBSD ,比如文件系统的性能。 在 FreeBSD 的文件系统默认使用 softupdates 之前, FreeBSD 的磁盘性能一直是低于 Linux 的。虽然如此,Linux 的磁盘高性能是以牺牲系统 的稳定为代价的。在没有使用日志文件系统 之前,Linux 的文件系统使用会使用 async 模式将数据写入磁盘。而 FreeBSD 默认是使用 sync 模 式将数据写入磁盘。什么是 async 模式和 sync 模式?简单地讲, async 模式下系统往往把不太重要的数据写入内存或者 磁盘缓冲,等一段时间之后再把数据真正的写入磁盘。这样做的好处就是磁盘的读写效率比 较高,但是不安全。万一在数据真正写入磁盘之前系统突然掉电,那么那些你以为已经真正 写入磁盘的数据就会丢失。sync 模式是把所有应该写入 磁盘的数据都立即写入磁盘,这样的好处是数据比较安全,但是因为大量的读写操作导致磁 盘性能下降。FreeBSD 在版本 4 之前一直使用 sync 模 式来写入数据,安全是比较安全了,但是在文件系统性能方面就比不上 Linux 了。

Linux 开始使用日志文件系统之后,文件系统的稳定和安全通过日志系统得到了弥补。而 FreeBSD 没有采用日志文件系统,而是走了另一条道路,也就是 softupdates。softupdates 的原理就是强制 metadata 更新时的依赖检查。所谓 metadata 就是,比如磁盘的 i-node 和 v-node 之类的数据。这些数据描述了文件数据在磁盘上存储状态,不是一般的数据,所以叫 元数据。有了 softupdates 之后,FreeBSD 的磁盘性能有了很大的提高,而且在稳定性方面更加出色。FreeBSD 从版本 5 开始支持后台 fsck,就是后台文件系统检测。后台文件系统 检测可以让你在系统崩溃后重新开机时迅速恢复服务,而不需要像其他不支持这个特性的系 统那样,要等待 fsck 执行完毕之后才能进入到系统。 对于有海量硬盘的系统,这是一个非常吸引人的特性。

另外,在网络方面。FreeBSD 的性能也是相当优异的。在很重的负载之下,FreeBSD 仍然可 以稳定的运行。这也是很多网络服务器采用 FreeBSD 的原因之一。

具体的跟系统的介绍可以参考:  http://bbs.chinaunix.net/thread-3751530-1-1.html

FROM: http://dhg.blogbus.com/logs/3644215.html
PS: 虽然有点老,也可以看看嘛 ^_^
http://bbs.chinaunix.net/thread-3750579-1-1.html

评分

参与人数 1可用积分 +2 收起 理由
gvim + 2 辛苦了

查看全部评分

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2012-09-04 22:38 |显示全部楼层
呵呵,转发辛苦

论坛徽章:
12
2015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56寅虎
日期:2014-05-10 09:50:35狮子座
日期:2013-09-08 08:37:5215-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:03
发表于 2012-09-04 22:49 |显示全部楼层
回复 2# gvim


    应该做的 ^_^

论坛徽章:
3
卯兔
日期:2013-08-15 13:17:31处女座
日期:2014-01-10 11:35:23双子座
日期:2014-01-25 02:16:06
发表于 2012-09-05 13:30 |显示全部楼层
这个写的好!最近刚接触BSD系列。

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43ChinaUnix元老
日期:2015-01-30 15:14:07
发表于 2012-09-05 15:17 |显示全部楼层
辛苦了,这个是转载的,还是原创的啊?

论坛徽章:
27
技术图书徽章
日期:2013-09-02 19:59:502015年亚洲杯之阿曼
日期:2015-03-05 21:12:582015元宵节徽章
日期:2015-03-06 15:51:332015小元宵徽章
日期:2015-03-06 15:57:20操作系统版块每日发帖之星
日期:2015-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17操作系统版块每日发帖之星
日期:2015-09-21 06:20:002015亚冠之水原三星
日期:2015-10-30 00:06:07数据库技术版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2016-01-07 10:32:07操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-05-18 06:20:00
发表于 2012-09-05 15:25 |显示全部楼层
这个是转载的吧!@send_linux

论坛徽章:
0
发表于 2012-09-05 16:42
同事介绍我喝NE美白茶,我平时上班本来也要泡茶喝,于是也在乐购时尚网http://www.letgogo.com/#r-pzxz定上了2包,现在每天都会泡了喝,自己的肤色的确越变越好,象婴儿一样的白里透红的自然。推荐你也试试

论坛徽章:
0
发表于 2012-09-05 17:38 |显示全部楼层
第六点文件系统方面好像没提到SU+J
补充一下, 引用delphij的 BLOG
时间是  December 14, 2009 2:28
现在FreeBSD 9.0后,bsdinstall分区格式式UFS2的时候默认是把 SU + J 打勾的,可以在option里看到

原文出处 https://blog.delphij.net/2009/12/suj.html



  1. Jeff Roberson 下周左右将会正式发表对于 UFS 的一项改进,为 Soft Updates 加入 Journal-ling,从而简化其恢复逻辑,并消除对 fsck 的依赖。

  2. 目前常见的保持元数据一致性的方法有四种:最原始的、将元数据以同步方式写盘的方法,性能非常差;常见的文件系统中使用的元数据回写日志(如ext3),缺点是无法检验日志本身的正确性,而且元数据需要写入两次因此对性能有潜在影响;Soft Updates,缺点是需要运行fsck来释放资源泄漏,而这个操作很耗时,且实现本身比较复杂;Copy-on-Write,在WAFL和ZFS中采用的技术,随着硬盘的淘汰随机存取时间不再是性能瓶颈,应该是未来的发展趋势,目前的缺点是会导致产生较多碎片。SU+J结合了Soft Updates和Journalling的优点,即,使用Soft Updates来确保写到磁盘上的数据的一致性,而使用Journalling来确保资源泄漏能够迅速回收,从而消除了fsck的必要性。

  3. 非常期待看到明年BSDCan的presentation。虽然目前我拿到的代码还有少量毛边,但是总体来说这次改进:

  4.     不需要修改磁盘上的文件系统数据结构,因此能够用于现有系统;
  5.     减少了 Soft Updates 本身的复杂性,每个事务所需的描述数据只需32个字节,扫完32K次操作(1MB日志数据)需要的时间只需2秒不到;
  6.     极大地减少了由于 fsck 需要吃很多内存、很多 I/O 导致的恢复速度慢的问题,这个实现基本上可以不再使用fsck了


复制代码

评分

参与人数 1可用积分 +3 收起 理由
ulovko + 3 感谢分享 ^_^

查看全部评分

论坛徽章:
0
发表于 2012-09-05 17:44 |显示全部楼层
lollol

论坛徽章:
0
发表于 2012-09-05 17:45 |显示全部楼层
http://home.lupaworld.com/home-s ... -blog-id-25186.html  
DistroWatch.com新闻——从FreeBSD迁移到Debian GNU/Linux

好几年前的旧闻了,里面有作者换OS的原因,apt-get 方便呀, 按成现在的有了 pkgng 的话,猜测可能作者不会换debian了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP