FreeBSD与Linux十个本质上的区别

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 则更接近于右边。许多人会对此有争论,也有些人可能会感觉被冒犯了。但是,个人认为这是一个对”哪些用户使用哪些系统”相当准确的概括。

时间: 2024-10-19 11:22:52

FreeBSD与Linux十个本质上的区别的相关文章

HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已!

理解HBase(一个开源的Google的BigTable实际应用)最大的困难是HBase的数据结构概念究竟是什么?首先HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式. Google's BigTable论文 清楚地解释了什么是BigTable: Bigtable是一个疏松的分布式的持久的多维排序的map,这个map被行键,列键,和时间戳索引.每一个值都是连续的byte数组.(A Bigtable is a sparse

HTTP中GET与POST的区别 (本质上是一样一样的TCP链接)

(转自微信公众号WebTechGarden) GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么. 当你在面试中被问到这个问题,你的内心充满了自信和喜悦. 你轻轻松松的给出了一个"标准答案": GET在浏览器回退时是无害的,而POST

C++学习笔记----2.4 C++引用在本质上是什么,它和指针到底有什么区别

从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量). 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的方式,它所传递的是一个地址值.值传递过程中,被调

大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!

DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!--和一个句子的分词算法CRF没有区别!注:传统DDos检测直接基于IP数据发送流量来识别,通过硬件防火墙搞定.大数据方案是针对慢速DDos攻击来搞定.难点:在进行攻击的时候,攻击数据包都是经过伪装的,在源IP 地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的.这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的.领域知识见:http://blog.csdn.n

GET和POST本质上有什么区别

如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题.我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用. 这个答案好像并不是他想要的.于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把GET改个名字叫GET2.他反问道,那就是单纯的名字上的区别喽?我想了想,我觉得如果说再具体的区别,只能去看RFC文档了,还要取决于服务器(指Apache,IIS)的具体实现.但我不得不承认,我的确没有仔细看过HTTP的RFC文

TCP之Delay ACK在Linux和Windows上实现的异同-Linux的自适应ACK

关于TCP Delay ACK的概念我就不多说了,到处复制粘贴标准文献以及别人的文章只能让本文篇幅加长而降低被阅读完的欲望,再者这也不是什么论文,附录参考文献几乎很少有人去看,所以我把这些都略过了. 和风吹的干皮鞋,吹的断愁绪吗? 写完本文后的补充: 这段话是我写完本文后补上去的.本来我想把这篇文章控制在2000字以内,或者更少的,800-1000字以内,无奈还是说多了...今天心情非常好,因为我竟然在梦里把三亨利之战的细节搞清楚了,迄今,我觉得自己对于西洋史的认知更近了一步,可以说今天是一个里

VC和gcc在保证函数static变量线程安全性上的区别

VC和gcc不同,不能保证静态变量的线程安全性.这就给我们的程序带来了很大的安全隐患和诸多不便.这一点应该引起我们的重视!尤其是在构造函数耗时比较长的时候,很可能给程序带来意想不到的结果.本文从测试代码开始,逐步分析原理,最后给出解决方案. 多线程状态下,VC不能保证在使用函数的静态变量的时候,它的构造函数已经被执行完毕,下面是一段测试代码: class TestStatic { public: TestStatic() { Sleep(1000*10); m_num = 999; } publ

详解Linux 6&7上搭建DNS服务器

整个hteret大家庭中连接了数以亿计的服务器个人主机,其中大部分的网站,部件等服务器都使用了域名形式的地址,如www.google.com.mail 163.com 等.很显然这种地址形式要比使月01231317202103 7A 的户地址形式更加直观而且更容易被用户记住. DNS系统在网络中的 作用处是维护着一个地址数现连,其中记录了各种主机城名与户地址的技关系上内便光安户租序现供正向的地址解析服务正向解析根据域名查IP 地址即将指定的域名解析为相对应的P地址,域名的正向解 析是DNS服务器

【转载】LINUX 和 WINDOWS 内核的区别

LINUX 和 WINDOWS 内核的区别 [声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1.html] 关于LINUX和WINDOWS的口水站已经很多了.本文企图从技术角度来比较下2个主流操作系统的异同.偏重于内核部分. 一.动机: 我最早是 WINDOWS 阵营的.在WINDOWS下写过2年多的驱动程序.后来由于学习需要,转投LINUX,一晃也快2年了.期间经历了很多曲折,也学到了很多