Linux的标志是一只十分可爱的小企鹅,而FreeBSD的标志是一个拿着叉子的小恶魔。你是否经常会听到人们把 Linux及 BSD 系统混为一谈?是的,我有时会经常听到一些新手,甚至于媒体都这么说。当然,事实上这两者确实有很多相似之处,比如它们都是基于 Unix演变而来,而且基本上这两类系统都是由非盈利组织及团队开发,另外我更想说的是,这两个系统都有一个共同的目标–那就是创建最有用、最可靠的操作系统。
不过话说回来,这两个系统确实存在着明显的差异,当人们忽略这点的时候,整个 BSD 社区都会感到异常的愤怒,因此我们也可以经常看到 BSD 社区人员或 BSD 用户会对 Linux不屑一顾。因此,我会尽我所能来帮助我的 BSD 的弟兄们,让更多的人了解到 Linux与 BSD 的不同之处在哪里。
1、许可证
正如我们所知道的,Linux操作系统是基于 GPL 许可证授权下的。该许可证可防止开源软件被转换为封闭源代码软件及确保源代码的可用性。 GPL 许可证的目的就是防止二进制包成为唯一的软件发行源。
而 BSD 许可证的限制则要少得多,它甚至允许二进制包成为唯一的发行源。这就是核心差异,可以这样理解:GPL 许可证让您有权拥有任何你想要使用该软件的方法,但你必须确保提供源代码给下一个使用它的人(包括你对它的改变部分)。而 BSD 许可证并不是要求你必须那么做。(译者注:这里分别是维基百科上对 BSD 及 GPL 许可证的解释)
2、代码控制
BSD 的代码不是被控制在任何一个人手里,而 Linux的内核基本上被 Linus Torvalds ( Linux创始人)所控制,BSD 并没有单一的人来说什么可以或什么不可以进入代码。相反,BSD 通过一个核心小组” Core Team”来管理该项目,这个核心小组比非核心小组有更多的发言权来指导 BSD 社区的发展方向,(译者注:而据我所知,FreeBSDD 核心小组的成员会每两年选举一次。)
3、内核vs 操作系统
BSD 项目维护的是整个操作系统,而 Linux则只是主要集中在单一的内核上面。这点确实是需要注意的,虽然这两个系统上都运行着许多相同的软件。
4、UNIX-Like
这里有一个关于 BSD vs Linux的古老说法:” BSD is what you get when a bunch of UNIX hackers sit down to try to port a UNIX system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a UNIX system for the PC “,这里表达了很多。你会发现 BSD 系统更为类似于 UNIX ,而事实上它就是传统 UNIX 的直接衍生品。而 Linux,则是一个松散的基于 UNIX 衍生品( Minix)而新创建的一个 OS 。
5、基本系统
这是一个关于 BSD 与 Linux之间差异的至关重要的理念。 Linux的”基本系统”是并不真正存在的,许多人会说,Linux的基本系统就是内核,但问题是如果没有任何可用的应用程序的话,那么这个内核是完全没有价值的。而另一方面,BSD 则有一个包括众多工具的基本系统,甚至 libc 也是基本系统的一部分。因为这些组件都被作为一个基本系统,所以它们都是被一起开发和打包的,许多事实表明这样更能创建出一个更具凝聚力的整体。
6、更多来自于源代码
由于 BSD 的开发方式(使用 Ports 系统)的关系,所以用户们更多的是从源代码来安装程序,而不是预先编译好的二进制包。这是一个优势还是劣势?这取决于不同的用户。如果你更多的想从友好或易用性方面考虑的话,看到这一点后你也许会有放弃的念头,对于新用户更是如此。但一些新的用户也有想要从源代码编译安装,这可能比较累人。但是,从源码安装也有一定的优势,比如库版本控制,通过特殊的包来构建系统等等。
7、升级
由于 BSD 的开发方式的原因(见第5项),你可以利用一条指令就可以升级你的基本系统到最新版本( Freebsd 下是用 freebsd-update fetch update 命令)。或者你也可以下载整个源代码树,然后通过编译来升级。而在Linux中,你也可以通过内置的包管理系统来升级系统。前者(BSD)仅更新基本系统,而后者( Linux)则会升级整个系统。不过请记住,BSD 中升级到最新的基本系统并不意味着所有的附加软件包也将会被更新,而Linux升级的时候,所有的软件包都会被升级。这是否意味着 Linux处理得更好吗?在我看未必。我经常会看到Linux在升级时出现严重错误,从而需要重新安装整个系统,但这个现象基本不太可能发生在 BSD 的升级过程中。
8、前沿技术
基本上你不太可能会看到 BSD 系统运行着任何非常前沿版本的软件。而在 Linux这一方面,大量的发行版会分发前沿版本的软件包。如果你是一个”If it isn’t broken, don’t fix it”这样观点的持有者的话,你将会是 BSD 的超级粉丝。但是,如果你很新潮,想要体验一切最新的东西,那么你最好尽快迁移到Linux。
9、硬件支持
你会发现,通常情况下 Linux的硬件支持要比 BSD 更早一些。但这并不是说 BSD 没有像 Linux那样支持足够多的硬件,它只是意味着在某些情况下 Linux会在 BSD 之前先支持某些硬件。因此,如果你想要最新的、最好的显卡的话,基本上不用考虑 BSD 了。如果你有一个包含了最新无线芯片的新型笔记本的话,建议你选择 Linux,运气好的话也许它会支持。
10、用户群
在这里我冒险概括一下计算机用户们,但我想先声明一下每一个事物都有例外。下面我要向你展示我对用户分布方面的概括。
Mac –> Windows –> Linux–> BSD –> UNIX
从左边到右边,分别是”使用该 OS 的人里精通电脑的用户群最少”到”使用该 OS 的人里精通电脑的用户群最多”的过渡。我们可以看到,Linux的被放置在了中间,而 BSD 则更接近于右边。许多人会对此有争论,也有些人可能会感觉被冒犯了。但是,个人认为这是一个对”哪些用户使用哪些系统”相当准确的概括。
当年之所以弃 Linux 投奔 BSD 就是因为是在受不了 RedHat 社区的那个混乱。来到 BSD 以后就感觉,“整个世界清净了”。后来公司的生产系统上线都是用 BSD 的。
BSD 最大的问题就在于“学院派”(当然这也是最大的优势所在),商业支持不够,例如 Oracle 数据库在 BSD 上就是巨大的痛苦。
然后换回 Windows 其实是因为换公司了。当然这个系统是不能忍的。幸亏还有 Cygwin。这是上班第一天就装上的东西。当然,这说的都是放在桌上的机器。机房里面天天折腾得那可是什么操作系统都有的。
熬到去年单位的办公软件终于可以在 Linux上奔跑了,立刻第一时间换成 Ubuntu ……