FreeBSD 促进项目

转载 2007年09月20日 10:16:00
本文出处: http://cnsnap.cn.freebsd.org/zh_CN/advocacy/myths.html
整理:  UNIX技术开发论坛 http://www.usenix.cn

随着 BSD 项目 (DragonFlyBSD、 FreeBSD、 NetBSD, 以及 OpenBSD) 的规模不断壮大,关于它们的迷思也在逐渐增加。 这其中有一部分是由于人们的误解,而另一些则是有人故意散布的谣言。
本页旨在尽可能客观公正地澄清这些迷思。
注意: 此页中, “*BSD” 是指所有四个 BSD 项目。对于只针对某一计划的迷思, 则会单独说明。
如果您认为这页中存在疏漏或错误, 请与其维护人 Tom Rhodes <trhodes@FreeBSD.org> 联系。
目录
迷思

*BSD项目采用“大教堂”式的封闭开发模式

在那篇颇有影响力的 《大教堂与集市》论文中,EricRaymond 以 Linux 的开发模式 (他用来开发fetchmail的模式) 为例,说明了应当如何进行“开放”式开发。 与此相对应,*BSD的开发模式一般被定性为封闭的。
这里隐藏的价值判断是:“集市”(开放)开发模式是好的,而“大教堂”(封闭)开发模式是坏的。
若有什么区别的话,*BSD的开发模式很可能 比 Linux 和 fetchmail更像 Eric 描述的开发模式。
让我们考虑如下事实:

  • 对于所有的 *BSD项目:当前, FreeBSD, NetBSD,以及 OpenBSD 释出的源代码,任何人都可以24小时全天候地从互联网上下载。 你无需等待他人的释出。
    FreeBSD, NetBSD:每 24小时制作一个可安装的项目当前进展的快照。这些快照就像正常的 release版操作系统一样可以安装, 并且不需要安装在现有的系统上。
    OpenBSD:可安装的快照也是每天都产生的, 并且如果 Theo认为快照足够好的话,他会把它们上传到 OpenBSD 的镜像站点上。
    与之不同的是: Linux 的新内核发布是随心所欲的, Linux的发行频率取决于不同发行版制造商心血来潮的行动。
    这里没有 Linux 新内核每次发布时的炫耀号角声, 因为对于 *BSD 用户来说,那是每天都在发生的事情。
  • 所有的*BSD项目都使用CVS来维护他们的源代码。
    所有的*BSD项目:都制作了一棵可以 让任何人24小时地浏览、下载的CVS树。我们可以使用匿名CVS,CVSup,CVSupit,CTM(通过电子邮件), 或者通过FTP来获取源代码树。
  • 任何人都可以使用安装在他们*BSD系统上的名为 send-pr程序,或者通过一个web界面来提交补丁、错误报告、文档, 或者做出其他的贡献。
    Pointers to this system litter the documentation.
  • 当然并不是每个人都可以把他对*BSD源代码的修改提交到CVS树的。为此你需要先成为committer。 一般来说,那些使用send-pr或者其他工具向项目提交了若干经过深思熟虑的修改的人才会被授予“commitprivs”,成为committer。
    这与 Linux 的机制其实是一样的。 理论上说只有一个人允许改变内核--- Linus。但对于一些特定领域(比如网络部分的代码)才委托给其他人。
    另外:Nik (nik@FreeBSD.org) 是一个典型的例子。当他对FreeBSD文档项目和网页做出了一定的贡献之后, 虽然他从没有要求成为committer,他们大方地给与了“commit privs”以免他老是麻烦别的committer来把那些变更写入CVS树。
  •  

你不能制作你自己的发行版或者从*BSD派生出一些工作

你可以这样做。 你只需在文档和源代码中说明代码源自何处。 有一系列派生项目存在着:
  • DragonflyBSD 脱胎于 FreeBSD 4.X的代码分支, 但一直以来, 拥有自己的用户社群和发展目标。
  • TrustedBSD 对FreeBSD提供了一套可信扩展,目标是达到Common Criteria(CC)的信息技术安全评估。 该项目仍在开发中,并且它的很多代码都已经反馈回 FreeBSD操作系统, 只是二者的开发是独立进行的。
  • FreeSBIE 运行在CD-ROM上的完整的桌面操作系统,他也能被安装, 但是对那些没有硬盘的计算机极其有用。
  • Frenzy 另一个“live-CD“发行版,只是为系统管理任务进行了定制。内含用于硬件测试、文件系统检测、安全检测、网络设置和分析的相关软件。
  • PicoBSD经过裁减定制的适应软盘的FreeBSD发行版。 特别适合于把没有硬盘的386PC机改造成一个路由器或者网络打印机。 他是FreeBSD源代码树的一部分,参见/usr/src/release/picobsd。
  • NanoBSD又一个用于剪裁FreeBSD的项目, 它能对 FreeBSD 进行“瘦身”,以便放到闪存卡或者其他大容量存储器中。 它是 FreeBSD 源代码树的一部分, 参见/usr/src/tools/tools/nanobsd。
  • TinyBSD shell脚本组成的工具包,以方便基于FreeBSD 5.x, 6.x的嵌入式开发。
  • ThinBSD 一个很小的基于FreeBSD的引导镜像,允许标准PC作为微软windows RDP server 或者X 终端的无盘瘦客户机。它完全通过DHCP(动态主机配置协议)来配置。
  • PC-BSD 面向桌面的 FreeBSD 衍生系统,试图设计成为易于安装、受到社区良好支持的操作系统。
  • DesktopBSD 另一个继承自FreeBSD,强调桌面易用性的操作系统。
  • Gentoo/FreeBSD是Gentoo项目为了发挥FreeBSD的可信内核、userland长处 而将他们整套管理工具进行移植的成果。该项目非常不成熟, 是实验性质的。
  • m0n0wall一个基于FreeBSD的具有很多昂贵防火墙才具有的特性 (比如 web 界面, 重设出厂默认值,带状态包过滤, NAT/PAT 重定向, DHCP 客户端和服务器, DNS缓存和转发, 等等)的防火墙系统。
  • pfSense 是一种派生自 m0n0wall 的开源防火墙系统,包含许多不同的目标和特性, 例如 OpenBSD 的 Packet Filter (PF)、 FreeBSD 6.1、用于提供高性能数据包队列的 ALTQ 支持, 以及一套集成的包管理系统,用于为该环境扩展新的特性。
  • Whistle Interjet: 可以作为路由器、web服务器、mailhost(包括其他功能)的“网络家电”,并且可以配置使用一个浏览器。 它基于 FreeBSD,并且在保持足够私有权以保持商业生存的条件下向 FreeBSD项目回馈了大量增强代码。
与DragonflyBSD,相似 ,OpenBSD不是一个单独的项目, 他源自NetBSD项目,并且自分化出来那一天就形成了自己的独特方式。


*BSD可以作为一个很棒的服务器,但是是拙劣的(UNIX�)桌面

BSD 可以作为一个很棒的服务器,同样可以做为很优秀的桌面。服务器的许多要求(迅速响应用户请求,稳定性,系统资源的有效使用)对于一个桌面机器来说同样是需要的。
*BSD 可以像 Linux 那样使用相同的桌面工具,比如 KDE,GNOME,火狐浏览器,windowmanagers,并且 象OpenOffice套件等办公应用程序在 *BSD 下也能使用。


TheBSD 的codebase已经过于陈旧、过时,并且正在死去。

虽然BSD的codebase 已经20多年了,不过他既没有过时, 更没有死去。很多专业使用者喜爱FreeBSD提供的久经考验的稳定性。
技术方面的增强仍在不断地被加入到*BSD系统, 这些包括但是不限于:
  • SMP: 对称多处理器,用于多CPU的系统。
  • SoftUpdates: 使得BSD的文件系统至少像 Linux 的文件系统一样快, 却 无需引入 “异步写” 以及与之相关的风险。
  • VM system:虚拟内存(VM)子系统仍在改进。 整合的虚拟内存/缓存设计帮助wcarchive.cdrom.com 这样的系统承受住了成千上万个并发连接。
  • 支持的平台: FreeBSD 当前主要支持七种平台: Alpha、 AMD64、 i386、 安腾、 PC-98、PowerPC 以及 UltraSPARC。 将该项目移植到其他平台的工作仍在进行中。参见支持的平台获取更多信息。
  • MAC Framework: FreeBSD 支持强制访问控制, 一般在昂贵的可信的操作系统才能见到的特性。FreeBSD为你免费提供高级安全。参见 TrustedBSD项目 提供了更进一步的可信扩展。
  • GEOM classess: GEOM 是一个能让你 concatenate,镜像,条带或者加密磁盘的模块化磁盘框架。 具有丰富的功能又能保护你数据的安全。


The *BSD 诸项目彼此在斗争,每星期都分化出不同群体

不!除了各自的用户者偶尔的激烈的争论以外, *BSD的开发者仍旧在彼此合作的工作着。比如FreeBSD的alpha平台的移植最初就是高度基于NetBSD团队的工作的。NetBSD, OpenBSD都使用FreeBSD的ports来管理各自的移植软件库。 FreeBSD,NetBSD都把OpenBSD团队的安全修正集成到自己的系统中了
FreeBSD和NetBSD“分家”十年多了, OpenBSD与DragonflyBSD是过去的十年中仅有的分化出来的项目。
*BSD诸项目在各个领域都合作的非常好。 比如,每月一次的出版物DaemonNews 就是四大项目成员合作的成果。



你不能使用*BSD作集群系统 (并行计算)

如下的网址给出了反证;
需要指出的是: 如果要进行FreeBSD在集群方面的深入讨论, 可以使用邮件列表 freebsd-cluster


*BSD没有商业支持

FreeBSD:FreeBSDCommercial Vendors Page 列出了给FreeBSD 提供商业支持的公司
FreeBSD Mall 也提供商业支持,以及衬衫、帽子、书籍、软件,宣传品等等。
培训方面,你可以试试BSDMall.com,他们也卖其他的东西,比如衬衫、帽子、书籍、软件等等。相当值得一看。
OpenBSD: OpenBSD CommercialConsulting Page 列出了给OpenBSD提供商业支持的公司


*BSD没有应用程序

自由软件都可以在SunOS以及类似的主流的BSD上系统运行。*BSD用户一般情况下可以无需作任何修改即可编译那些为此类 系统编写的软件。
另外,每一个BSD项目都使用ports系统来管理软件, 使得编译移植软件库中软件极其简单。
  • FreeBSD: 当前 FreeBSD ports 中有16000多个应用程序可以下载和安装。 在 i386 和AMD64 平台上, 提供了 Linux 模拟层能够运行绝大多数 Linux 应用软件。 而在 AMD64 和安腾(Itanium) 平台上, 则提供了用于运行 32 位 FreeBSD 二进制程序的兼容层。
  • NetBSD: Linux 模拟层可以运行大部分 i386平台 Linux 的应用程序,并且大部分SunOS4应用程序能在SPARC工作站上运行。
  • OpenBSD: 当前 OpenBSD ports 中大概有3700多应用程序可以下载与使用。 Linux模拟层可以运行大部分 i386平台的 Linux 应用程序,并且大部分SunOS4应用程序能在SPARC工作站上运行。

用户只需很少的努力, NetBSD与OpenBSD就能够运行FreeBSD的移植软件库的程序。他们很少的移植程序也说明了这一点。
大部分公司把它们的工作迁移到PC Unix平台时最先选择 Linux, 这是事实。 幸运地是, *BSD的 Linux 模拟层能够运行这些程序 (Acrobat, StarOffice,Mathematica, WordPerfect, Quake,Intel ICC compiler, Compaq's Alpha compiler ...) 即使出了问题,也容易解决。
作为一个有历史意义的注记: 曾在 FreeBSD 下运行的带有 Java 支持的第一版 NetscapeNavigator是 Linux 版的。 不过,现在你可以使用带有本地版 Java 插件的本地版 Mozilla 的,那都可以很方便地从 ports 编译!


*BSD比(另一个系统)更好

这仅是用户的观点。


(另一个系统)比*BSD更好

这仅是用户的观点。


贡献者FreeBSD, NetBSD, 以及 OpenBSD 项目的一些成员对该文有所贡献;
Nik Clayton <nik@FreeBSD.org> Jordan Hubbard <jkh@FreeBSD.org>
Ian F. Darwin <ian@DarwinSys.com>
Adrian Filipi-Martin <adrian@ubergeeks.com>
Tom Rhodes <trhodes@FreeBSD.org>
 

相关文章推荐

muc.lists.freebsd.current

Hi I was wondering if anyone else is having this problem building asterisk on -CURRENT.  The pro...

在FreeBSD上安装Bugzilla

Bugzilla 是一款开源的 Web 应用,是一款bug跟踪系统和测试工具,由 mozilla 开发,并采用 Mozilla 公共许可证授权(MPL),它经常被一些高科技公司如 mozilla、红帽...

FreeBSD开发手册中文版

因公司防火墙项目,需要对FreeBSD的协议栈进行深入学习。以前大部分开发是基于Linux系统,虽说Unix是Linux的鼻祖,一段时间接触下来,在Unix上做开发,和Linux对比差异还是存在的,特...

freebsd 怎么限制同一个ip访问某个端口的连接数

Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行...

FROM FreeBSD mail list: merging TCP, UDP, netisr locking changes

link from http://lists.freebsd.org/pipermail/freebsd-current/2011-May/024878.html On Tue, 2...

freebsd的SYSINIT框架

个人觉的freebsd内核子系统的初始化过程比linux更清晰,这主要归功于SYSINIT框架。SYSINIT的基本原理就是构造一个数据结构,将该数据结构的地址放到 一个统一的数据节中,这样当内核初始...

freebsd/mac os x timer的实现

因为timer_create在mac os x下边并没有实现,所以 void ErrorManager::threadFun() { HANDLE hTimer;...

FreeBSD 安装mysql

ports安装:  cd /usr/ports/databases/mysql51-server  make WITH_CHARSET=utf8 WITH_PROC_SCOPE_PTH=yes BUI...

FreeBSD 10 将使用 Clang 编译器替换 GCC

来自 phoronix 的消息称,根据 FreeBSD 2012 第一季度的状态报告 显示,来自 LLVM 的 Clang 编译器将成为 FreeBSD 10 的默认 C/C++ 编译器,废弃...

mailing.freebsd.current

来自 Building asterisk - undefined reference to `__sync_fetch_and_add_4' 讨论的消息 浏览解析项 - 仅显示帖子内容...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)