+ -
当前位置:首页 → 问答吧 → 转:中国FreeBSD精英DelphiJ的一段话

转:中国FreeBSD精英DelphiJ的一段话

时间:2009-03-10

来源:互联网

http://www.freebsdchina.org/foru ... mp;highlight=netbsd

天下没有白来的午餐,天上不会随随便便掉馅儿饼,除非有足够的利润驱使,否则绝不可能有人投钱做这些事情,因为资本家并不是慈善家;如果让一群志愿者去做事,那么一定需要是他们感兴趣的事情,反之,就一定要有资金支持。

国内在FreeBSD上进行投资的企业,当然,我想也包括国外的企业,基本上都符合下面的几个条件:

0) 这家企业使用FreeBSD来支持其基础业务,并且这些基础业务使用FreeBSD来支撑的综合成本低于或等同于使用其它系统
1) 这家企业有足够的流动资金来支持其员工进行这方面的研发,并为其提供很好的环境来完成这些工作;这些公司也不介意其员工将所做的改进回馈给开源社区
2) 这家企业有支持 *BSD 发展的远见(换言之,做决策的人受商业广告或鼓吹手的**必将战胜***的影响很小或根本没有,而去自行作出适当的判断),或者,至少出于“不把鸡蛋都放在同一个篮子里”的想法

国内有这样做的公司并不多。我个人认为也没有必要去要求一家企业这样做,因为东西做得好,用的人自然会逐渐增长。

选择*BSD的几大理由:

高水平的参与者

我还是要说,出现4个主要的BSD分支的原因绝不是什么BSD授权“过于宽松”导致的(这么说的人不妨去fork一个他们喜欢的,哪怕仅仅是kernel 试试看,是不是一个月就得累得吐血?),*BSD拥有大量非常高水平的开发者,有能力去fork并维持开发一个也许风格迥异的分支,去证明他们自己的实力;*BSD中也有很多同时参与多个项目的开发人员,仅从commit bit看,就有例如IAB委员Jun-ichiro \"itojun\ " Hagino (OpenBSD+NetBSD+早期FreeBSD)、M. Warner Losh (FreeBSD+ NetBSD)、早期TCP/IP协议栈的开发者Jeffrey Hsu (华裔、FreeBSD+DragonFly),等等。如果仅从活跃参与看,Mach VM的主要继承和维护者Matthew Dillon(FreeBSD+DragonFly)、BSD教父级人物 Marshall Kirk McKusick(所有*BSD)、著名*BSD hacker Poul-Henning Kamp (FreeBSD+NetBSD)等等,都在活跃地参与*BSD的开发。

在开发团队中,突然发现某个人竟然是IEEE/ACM委员(注意,不是IEEE Member)、教授或者某相关专业的PhD的概率非常高。这些人不仅有相关领域的广博知识,而且也对操作系统开发和架构具有丰富的经验。

FreeBSD core team成员Robert Watson曾在一次访谈中提到,尽管自己已经加入FreeBSD的committer团队 5年以上,但仍然时时刻刻感觉自己依旧是一个新手,因为每天仍然能够从整个团队的那些,可能有超过20年开发经验的开发人员那里学到新的东西。任何人想要成为任何一个BSD的committer的话,开发团队都会要求有一个mentor(“导师”)来指导这个人头几个月,甚至前半年乃至一年的commit 操作,而这个mentor给你写的第一封信就会简单地介绍那些非常有经验的开发者,并鼓励将涉及他们专业领域的代码在提交mentor复审之前或同时也发给他们,让他们帮忙看一看。良好的开发传统使得*BSD的开发人员品质能够不断提高。开发团队除了非常多专长于某一领域的专家之外,还有很多熟悉整个操作系统架构的,也许写过我们大学教材的人来阻止不正确的代码或设计进入系统,并在实际编写代码之前帮助完善设计。
良好的开发传统、严谨的开发习惯和正确的开发流程

开发传统和习惯对于软件的品质至关重要。所有的*BSD从项目开始的第一天开始,就从BSD上继承了良好的开发传统。没有任何一个主要的*BSD系统不使用CVS,代码的每一行是从哪来的、因为什么这样写,都可以随时在全球的数百个CVS[,up,sync,web]镜像上查阅。开发团队的每个人在每一次代码改动时都会收到通知邮件,除此之外,所有的*BSD开发团队还鼓励事前的同组复审(peer-review)和监护人复审(maintainer- review),以便最大限度地保证代码品质。

尊重统一的代码编写习惯是所有*BSD的共识。NetBSD和OpenBSD直接继承了来自UC Berkeley的BSD KNF(\"内核代码范式\"),在FreeBSD和DragonFly上,这一规范被称作style(9)。对于代码的持续清理,使得代码的可读性和品质有了更大的改善。

更为重要的是,*BSD的开发流程有正确的交付工程步骤。从代码冻结、集中复审、测试、修正问题、交付的过程看,每一个RELEASE都会成为最近一个阶段这一分支上最为稳定可靠的版本。修正bug时,所有*BSD都鼓励编写衰退测试案例(Regression Tests),使得交付工程组能够对新的 RELEASE中是否有引入了之前发现过的问题进行集中而有效的测试。*BSD从不赶日期推出RELEASE,如果一个RELEASE有问题,甚至不惜把公告前已经发出的.iso文件全部销毁,或甚至将已经打过tag的版本取消并推出另一个版本以避免混淆。

重视安全、尊重别人的版权、高品质的代码

*BSD非常重视安全,从不故意掩盖安全问题。最近几年曾经有一次,FreeBSD的Security Officer发现有一个问题在数月前有人在重写一个函数时无意中修正了一处安全问题,结果也发布了一个安全公告。“将风险告知用户”是*BSD通行的做法,所有的*BSD的安全页面都会写上这么一句话:“[某个BSD]的Security Officer欢迎[经过一定时间延迟的]对安全问题的彻底揭露”,因为我们相信,昨天发现的一个安全弱点,在今天就会成为一个实实在在的安全威胁。在第一时间修正问题并发布安全公告,有助于帮助用户及时修补问题、规避风险。

除了“亡羊补牢”的安全公告之外,*BSD更重视未雨绸缪的安全防范。在配置方面,目前默认安装的*BSD都不开放任何有安全隐患的服务端口。在代码方面,*BSD严格的代码复审机制(在2001年前后,*BSD做了一次统一的代码复审工作;而新加入的代码则被所有人复审),以及持续不断的安全改进,特别是来自OpenBSD的特权分离等安全措施和理念,使得*BSD得以成为最为安全的系统。2004年公布的TCP RST攻击,当所有厂商都在补漏洞和发布补丁时,只有OpenBSD按兵不动——因为那个问题早已在1999年就被这些执着的安全狂热分子修正了。

当你听说一个rsync远程漏洞的时候,在FreeBSD上面,做过非特权化,或者说,默认设置时最严重的后果是“可能让rsync服务崩溃”,而在其他系统上面,则是“靠!被人root了!!”——因为那些人即使只维护一个kernel,也是在不停地往里引入安全问题的。

和重视安全的*BSD形成鲜明对比的是,某个kernel的项目领导者,在HTT安全漏洞被发现时,竟然采取鸵鸟态度,声称“这是OpenSSL的问题”,并阻止别人修正这个问题。此前,这个人还多次悄悄修正安全漏洞,并借助那个kernel不大力公布开发过程中进行的修改,而避免公众注意到安全漏洞的存在。具有讽刺意义的是,正是由于鸵鸟政策,使得这个总在指责Windows如何不安全的团体,在每个季度出现的内核级特权提升漏洞,能够达到 Windows一年全部漏洞的一半之多。

尊重别人的版权是*BSD的另一个显著的特点。早期,由AT&T的Unix系统实验室(USL,目前这个实验室在SCO,历史总是重复的 )对BSD的诉讼曾经使开发停滞近一年之久。然而,由于BSD严谨的开发习惯,使得它得以通过代码历史向法庭证明自己的清白,并要求对方重印所有的抄袭BSD代码而未给出适当署名的说明书,并最终达成和解:USL及其继承者永远不得起诉*BSD。

这之后*BSD更为重视尊重版权。每一个committer都有责任确保大段代码来源的纯洁性,使得使用*BSD代码成为规避知识产权风险的一项非常好的途径——只要尊重BSD授权的署名要求,就可以自由地使用代码。BSD授权通过简单的两条条件和两项声明,有效地确保了代码使用者的自由,以及确保代码不发生被窃取并只以*PL授权重新发布的问题(使用*PL授权并同时以BSD授权发布文件的双授权做法是符合授权的,但删除BSD授权并只以*PL授权发布则违反授权,有意思的是,某个kernel经常这样做,并最终导致同是大段抄袭BSD代码的SCO公司的起诉威胁)。

使用*BSD意味着能够规避信息安全和知识产权两方面的困扰。*BSD尊重使用代码并对其进行改进的人的意愿,不强迫别人开放源代码,因为*BSD的开发者认为设计要比实现更为重要,而开放不开放源代码并不能阻止他们通过测试去了解设计。
对于技术的执著追求

*BSD的开发人员很多在各大高校从事操作系统的研究工作,因此其开发具有很大的前瞻性,并不为那些并不懂技术的所谓“最终用户”随意左右。*BSD每设计一个新的结构,往往能够被广泛接受,并用上很久,而不是几个月大换血一次。为*BSD开发驱动程序,即使不开放源代码,也不必担心随*BSD的版本升级而不得不重新写一遍——当然,开放源代码意味着整个开发团队能够对这些驱动进行更好的优化——在台湾,已经有一位开发人员获得了src/ tree的 commit bit,除了已经在做的WiFi工作之外,他也将作为那家硬件厂商在FreeBSD的联络人,帮助他们的硬件更好地在FreeBSD上使用;而在国外,在*BSD社区的努力下,包括Adaptec、LSI、Intel在内的许多大公司,更是鼓励员工为*BSD撰写驱动。

它是一个随你的需要和贡献而成长的系统

*BSD重视,但并不放纵开发人员。新的OpenBSD上提供了包括ProPolice、W^X等辅助手段帮助发现代码中的潜在问题和阻止缓冲区溢出攻击;新的FreeBSD上则提供了一系列帮助发现代码中潜在问题的选项,这些为内核开发人员提供了很好的“防护网”,阻止他们写出有问题的代码。

在*BSD上也提供了许许多多的开发工具和辅助的调试工具。任何人都可以为*BSD编写代码,即使这些代码最终没有被接受,也会有人告诉你为什么,甚至帮你写一份更好的版本。为*BSD开发程序,能够认识很多高水平的人,也有助于自己的学习和提高。

作者: foxwb   发布时间: 2009-03-10

在cu上看到转了,我现在正式喜欢上BSD了,嘿嘿
从第一次参数CU聚会别人介绍BSD到现在都过去一年多了,上周末才开始真正喜欢BSD
因为linux/BSD都是业余爱好,工作中用不着,目前拿来做桌面使用
感觉BSD的桌面的确没LINUX那么好用,但问题不大,这几天都呆在FreeBSD 7.1 桌面下,感觉还算适应
用了快两年的gentoo,现在用用BSD,感觉很棒,继续学习使用 BSD & linux
经常看到BSDer说BSD如何好,一点感觉也没有,哈哈,真正使用了解后,发现的确很棒
这玩意不适合所有人,自己觉得棒就用吧

作者: axlrose   发布时间: 2009-03-19

比起Linux我比较偏爱BSD的开发模式。觉得mailling list上的人比较友好。

作者: wsw   发布时间: 2009-04-14

楼上,我喜欢你的签名。

作者: www1862   发布时间: 2009-04-15

必须承认,BSD 的稳定性实在令人惊叹!

但要是在 Laptop 上安装 BSD 实在是一场灾难,灾难大小与笔记本的新旧成度正相关。当然,自己有本事解决的人除外。也许正是 BSD 驱动问题,限制了它像 Linux 一样进入普通人群。

就我个人而言,Laptop 上用 Arch Linux (风格接近 BSD),Server 上用 BSD (纯命令行界面),成为无奈的选择。

作者: cwjiof   发布时间: 2009-05-04

我也喜欢三楼的签名,呵呵~~


不过BSD不了解,有空去摸摸的说!

作者: oyasmi   发布时间: 2009-05-04

>>尽管自己已经加入FreeBSD的committer团队 5年以上,但仍然时时刻刻感觉自己依旧是一个新手,因为每天仍然能够从整个团队的那些,可能有超过20年开发经验的开发人员那里学到新的东西

目前我用ARCHLINUX的唯一原因是我要用KVM虚拟XP跑一些WINDOOWS程序, KVM的确非常棒! FREEEBSD下没有类似的虚拟机板:(
其它时间我都在FB下, 的确好用!

BTW, 国内有20年开发经验的还在做技术的真是少之又少啊!!!

作者: sw2wolf   发布时间: 2009-05-16

如何参与开发?
哪位哥们介绍介绍。

作者: linuxtester   发布时间: 2009-06-01

这个某个Kernel都指的是Linux吗?

作者: 亞利艾爾   发布时间: 2009-07-16

引用:
作者: 亞利艾爾
这个某个Kernel都指的是Linux吗?
你说呢?

作者: fender010   发布时间: 2009-07-22

如果是直指Linux,那么那個HT的漏洞問題的表述是具有誤導的。當時只有RedHat認為這個問題是OpenSSH的問題并只發佈了OpenSSH補丁。Ubuntu當時因為和OpenBSD一樣默認就沒有打開功能,所以按兵不動。Linux內核表示2.6版本沒有受到影響,此後發現HT漏洞的工程師和內核組聯繫,在最新版本的Linux內核上測試了漏洞并沒有成功再現問題,即使這樣內核官方還是給出了一個補丁以防萬一。
  另外關於單一領導人問題上,OpenBSD在實際上也是有Theo一人領導,這一點在很多關於BSD管理模式的討論中是公認的。
  最后就是關於漏洞數目的問題。不可否認在公開漏洞數目上Linux非常不樂觀。但是以此和Windows比較是不合理的。前者的更新速度很快,后者發佈補丁了也會產生很大的危害。BSD在公開漏洞上表現不錯。但是在漏洞公開后修復速度上面和Linux不具有明顯優勢。例如Debian在漏洞公開后平均2小時后就可以發佈新的補丁。而且高危漏洞的比例Linux沒有那么高。
  個人以為文章突出的表達了BSD方面開發的特點,但是不像所說的那樣令人信服。要更好的分析這個問題,作者可能要從一個更客觀的位置來表達雙方的特點。

作者: 亞利艾爾   发布时间: 2009-07-30

转自:Gentoo的前世今生,大伙都应该看一看的。
==================================
......
FreeBSD之印象

首先,我真的很喜欢FreeBSD。我感觉这个操作系统是一个组合的很完美的系统,它的几乎每一个部分都同样精巧,而这种精巧的在Linux世界中几乎不存在。我的满意实质上是来源于那些FreeBSD中非常充足的man page,这可不像Linux里那些只有GNU info文档的很多软件那样让人根本没法用。

最最重要的是我对FreeBSD中维护与升级系统的ports系统印象非常深刻。与Linux维护与升级的方法不同,ports使用的不是二进制的软件包而是直接去原始的软件站点下载所需要的源代码并编译。不管你是安装Samba或是升级核心系统都是在你的机器上用源代码编译而成。这样的实现方法和我在Gentoo Linux中建立的那套机制有着异曲同工之处。从这点和其他许多方面来说,FreeBSD的这种设计符合我作为一个开发人员和一个系统管理员所期望的那种感觉。就这样,FreeBSD为我营造了整整几个月舒适的工作环境,同样我也很乐意于花些时间在这个出色的操纵系统中探求与获取知识。

FreeBSD的优点

很多Linux和FreeBSD之间的不同点都是源自与它们本身开发架构的不同。Linux的开发架构非常松散,我们只是依靠不同的发行版把分散在Internet上呈离散状态的很多部分组合成一个完整的Linux,而FreeBSD和其他BSD系统(OpenBSD和NetBSD)都有一个唯一的核心小组来确保源代码的单一性和协调性,这样至少每一种BSD自身都拥有一套统一的源代码设置。这是一件挺棒的事情,也是FreeBSD感觉上和 Linux那种“patch集合”有所不同的主要原因。

接下来,我们在纯技术方面再作个比较。很多FreeBSD的粉丝都声称FreeBSD比Linux更合适用作服务器上跑的操作系统,他们会告许你在高负载情况下FreeBSD表现得更好,而且它的TCP/IP栈相对出色一些(如果你用Linux 2.2或更早版本的内核和FreeBSD作比较,我同意这个说法)。FreeBSD确实是一个很好的服务器操作系统,这点勿庸置疑,但是这只是 FreeBSD相对Linux 2.2或更早的内核版本时的情况。我作为一个新版本内核的粉丝,早就在我的电脑上用上了2.4测试版的内核,它确是也很棒,从出色的TCP/IP栈到整个重新设计的“netfilter”系统都是。我觉得在不久的将来,新的性能标准将会由Linux来定义,而“free UNIX”将会在商业领域面对Linux强有力的挑战。

FreeBSD的不足

与服务器领域的应用不同,在桌面应用上,Linux占有绝对份额上的优势(仅相对BSD来说,Linux不管是对Win还是对MAC都完全处于下风)。所有最新的桌面应用软件一定是先在Linux上出现、在3D加速和声卡的支持方面,Linux也比BSD走在了前面。随着2.4版本内核的临近, Linux在这块地盘上还是会继续保持它的优势地位。

我对FreeBSD采用的UFS文件系统并不喜欢,虽然UFS相对Linux的ext2文件系统来说更健壮,但是付出的代价是那个另人昏昏欲睡的龟速。现在也有一个UFS文件系统的扩展叫“soft update”,它是把小块的IO操作聚合成大的文件块后再写入物理硬盘以提高文件系统的速度,就算“soft update”这套机制大幅提高了UFS文件系统的性能,我也没法就说在所有方面的比较中UFS都比ext2优秀。当然,UFS和“soft update”更加可靠,FreeBSD也可能会在文件系统的战争中击败Linux,但是请不要忘记,输给FreeBSD的仅仅只是现在的2.2版本或者更旧版本的Linux,这不代表将来也会。

现在,我们把话题转变一下,我们比较的双方是现今的Linux 2.2版本、2.4版本和FreeBSD。Reiserfs(一个新的日志型文件系统)已经给我们带来了一阵惊喜,而Linux还有蓄势待发的ext3、 IBM的JFS和XFS文件系统,这些文件系统都在提供高可靠性的同时提供了优秀的性能。Reiserfs给了Linux在文件系统上超越FreeBSD 的一个契机,这也是我认为Linux 2.4版本会上演大逆转的原因,FreeBSD的传统强项在未来2.4内核面前可能会荡然无存。
......

=============

linux作为草根文化的杰出代表,其平民化思想绝对是俺的最爱。

freebsd?还是留给教授们自己慢慢玩吧。

作者: zhou3345   发布时间: 2009-08-16

如果你喜欢linux,你能说出无数个优点,

如果你喜欢freebsd,你能说出无数个优点,

要是我有空啊,写个对比文章,能写个几页,

但是,结论就一句:“各有所长”。

作者: fender010   发布时间: 2009-08-20

最主要还是驱动问题~~~
人气太少~~~

作者: defrag   发布时间: 2009-08-23

架構確實很吸引人,現在用了OSSv4,確實很好。不過原來關於它ACPI、SMP、MySQL的性能問題的負面文章太多了。而驅動也是一個問題。

作者: 亞利艾爾   发布时间: 2009-09-06

我使用pkg_add的方式来安装apache和mysql和PHP
ishang# pkg_info | grep mysql
mysql-client-5.0.77_1 Multithreaded SQL database (client)
mysql-server-5.0.77_1 Multithreaded SQL database (server)
qt4-mysql-plugin-4.4.3 Qt MySQL database plugin



ishang# pkg_info | grep mysql
mysql-client-5.0.77_1 Multithreaded SQL database (client)
mysql-server-5.0.77_1 Multithreaded SQL database (server)
qt4-mysql-plugin-4.4.3 Qt MySQL database plugin



qishang# pkg_info | grep apache
apache-2.2.11_4 Version 2.2.x of Apache web server with prefork MPM.
qishang#

mysql工作正常。apache工作也正常 可是我在/usr/local/etc/apache22/httpd.conf
加上
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

然后在apache目录里。写上phpinfo的脚本。无法访问
让我去下载,不知是问题出在哪里

作者: Netwrom   发布时间: 2009-09-10

还是那句话,我需要生存,所以我不选择BSD。

作者: leal402   发布时间: 2009-09-22

引用:
作者: leal402
还是那句话,我需要生存,所以我不选择BSD。
这么容易被残酷的现实压弯了腰?
FB这16年的艰辛,是一种执着。

作者: 1562269   发布时间: 2009-11-23

........

作者: beyond1314   发布时间: 2009-11-23

说说我为什么喜欢linux胜于freebsd

第一, linux安装,通常划分一个swap和一个/就可以进入安装过程了。
以后不用担心某个目录内东西多了反思为什么我开始不把分区给规划好。
与此对应的是freebsd,他用一个分区空间,然后在份成 a c d e f 个块,来管理。初次尝试一直担心分的不好。

第二, 作为windows用户出现, 初次尝试使用其他系统。目前会用windows,会用dos的时候想感受一下其他系统。 没有光驱软驱。 那是很难进入 freebsd的。
对应的是linux, 我可以用 grub 进入小的 linux环境。 可以用 loadin 进入 小的linux。可以用img映像启动工具启动linux安装盘。 freebsd 以前版本根本就没能成功进入过安装。加上以前刻录光驱难求, freebsd 光盘难买, 软驱几乎被这个世纪末淘汰荡然无存。 所以很难从第一步安装入手了解 freebsd,而 linux在这方面做的很好。
第三, linux不知道从什么时候开始, 很多 发行版开始从安装到使用。 进入了中文化的界面。然后一步步带用户到使用的过程。 而 freebsd到现在都没能做到。
第四,驱动。 如果你有个机器装上freebsd后没有声音,装个 linux 声音正常。你会如何选择。
第五,我不是系统管理员。我更喜欢一个好的桌面环境。一个相对简单点的系统。无论他是win..还是其他什么。我只希望这个系统处理好用还有很多秘密可以用来闲暇时候探险学习一下。

有太多的理由让我在两者之间选择 linux 。 所以我会最终评价, linux更适合像我这样的人使用。而 freebsd, 一直很陌生。

作者: 木人   发布时间: 2009-12-02