为什么选择 Linux?为什么选择 Debian?
本结果来自于网络,旨在分享知识,原文为全英文
地址:https://people.debian.org/~srivasta/talks/why_debian/talk.html
为什么选择 Linux?为什么选择 Debian?
我可能不是谈论对操作系统选择进行冷静比较的最佳人选,部分是因为我不是公正的,部分是因为我对任何不是我主要选择的操作系统的经验有限。我也不是倡导我的选择的主要候选人,因为我选择我喜欢的原因不太可能是普遍的,以及我最初做出决定的环境(因为有一点历史惯性会保持我在哪里)不再存在。
然而,我试图让这个演讲比我单独的观点有更广泛的视角,并征求其他做出与我相同选择的人的意见——但鉴于这个话题是多么主观,我要发言这里主要是从我的角度,以及已经选择 Debian 的人的角度。
鉴于本次演讲的主要听众的性质,我不会花太多时间来解释为什么人们应该选择类似 UNIX 的操作系统而不是微软的操作系统。可以说,以下标准明确指出我远离 Windows:安全性。灵活性。特征控制。哲学。成本。速度。效率。可靠性。应用软件的可用性和选择。对蠕虫和病毒的易感性。已知缺陷的开放性和解决速度。聚类。多用户操作系统。没有 GUI 或 HTTP 浏览器作为操作系统的组成部分。
http://www.michaelhorowitz.com/Linux.vs.Windows.html 对 Linux 和 windows 进行了比较中肯的比较,可以作为 windows 用户对 Linux 的介绍。它确实有更多的商业倾向,而不是适合本次演讲(例如,对 Linux 发行版/公司的市场成功的关注)。
哲学与社区
最终,哲学是我们正在考虑的操作系统之间最持久的区分标准。性能数字发生变化。软件的易用性、可靠性、可用性——所有这些特性都会随着时间而改变,你必须随着时间的推移重新评估它们。
我必须承认,哲学和社区是我最初进入 Linux 阵营,然后是 Debian 的原因。我认为这些仍然是最重要的标准,而且经常被低估。
为什么免费软件是一件好事?在我参与自由软件的近二十年里,我问过人们这个问题(而且常常对答案感到惊讶)。流行的答案似乎是因为它很酷,或者因为它是零成本。作者的动机也各不相同,但他们获得的报酬往往是在同行群体中的认可、赞誉或可以在工作场所换取的经验。
但我认为这缺少自由软件的关键存在理由——站在巨人的肩膀上 方面。我喜欢类比学术研究的方式。如果研究人员注定要重新发明轮子,并为自己发现超出教科书内容的所有内容,那么研究界的进步就会受到阻碍。我的大多数同龄人都是通过文献搜索、寻找有趣的调查以及可能关联不相关的论文,在该领域其他研究人员的想法和技术的基础上开始研究的。大多数实验室的保密研究只存在于发表的那一刻——然后人们分享他们的技术、想法和结果——事实上,可重复性是成功的主要标准。
与专有软件相比,我们都是从零开始的——我相信,只要我们能够自由地分享和建立在他人的想法和劳动之上,我们就能腾飞。这将降低创新的时间、精力和成本,允许最佳实践和设计模式发展和成熟,并减少增加内部开发解决方案障碍的繁琐编程。
我们只需要确保成就的动机仍然存在(它不必是纯粹的利润动机)。
这种信念使我选择了 GPL 和自由软件基金会对事物的看法,而不是 BSD 许可证,后者也是自由软件许可证,并最终导致我选择了 Debian。在我个人看来,BSD 许可证更多的是关于编写自由软件的个人自豪感,而不关心软件的去向;我想要的不止这些。我希望我的工作能够帮助建立一个协同的社区;反馈到有用软件的源泉。
Debian 是社区谷仓建设的练习;共同努力,我们可以取得远远超过我们自己所能取得的成就。Debian 社会契约是我选择 Debian 的一个重要因素,它融合了对自由软件的承诺和务实的认识,即在某些情况下可用性要求软件不符合我们的指导方针。
社区是我选择 Linux 而不是 BSD 的另一个原因。当时我正在四处寻找一个免费的类似 UNIX 的操作系统来安装在我的全新大学发行的 386 上,BSD 更强大,性能也更好,而且我有朋友发誓要使用 BSD。让我感到厌烦的是渗透到 BSD 社区的种姓制度。有核心开发人员在高层,而你则下降到低级的新手想成为贡献者。Linux 社区虽然杂乱无章,但似乎更具包容性——你的血统比你编写的代码更重要。我可以立即为开发我将要运行的操作系统做出贡献。我想这是我喜欢 Debian 的另一个原因——我已经在那里工作了足够长的时间来指导它成为我认为的布局方式的操作系统。
实用性和可用性
假设我没有完全失去你们当中的实用主义者,那么绝大多数人在选择操作系统时所持有的最高标准是成本、实用性和可用性之后。当然,实用性取决于您的目标和要求,但我们仍然可以解决广泛的领域。
操作系统不仅仅是一个内核,上面有一大堆软件——在讨论系统的优点时,系统集成通常是一个短暂的话题。但是一个集成良好的系统——每个部分都与系统的其他部分相吻合并适应它——与替代方案相比大大增加了实用性。
就我的经验以及我的一些受访者的经验而言,Debian 是目前最好的集成操作系统。Debian 软件包不仅通过平面依赖/冲突机制来追踪它们之间的关系,而且还通过一组更丰富的细微关系——预依赖、普通依赖、推荐、建议、冲突和增强关系。除此之外,包根据优先级(基本到额外)及其功能进行分类。包装系统意识到并关注的这种丰富的关系表明了包装相互配合的水平。
Debian 由大约 1000 名志愿者开发。这意味着每个开发人员都可以自由地维护他感兴趣的程序或他在现实生活中的特殊任务所需的程序。这就是 Debian 能够涵盖不同专业领域的原因——它的开发人员只想解决他们自己的特殊问题。这种广泛的关注点不同于仅仅试图涵盖主流任务的商业发行版。
我发现工作中的 Debian 机器需要更少的手持,更容易更新,而且不会 像我管理的 Red Hat 和 Mandrake 盒子那样经常损坏。有人告诉我,例如,处理 SunOS 就更有趣了。
选择 Debian 而不是其他发行版的原因之一是其项目的庞大规模,这强烈表明 Debian 不会突然消失,并且会突然离开而没有任何支持。Debian 不能破产。它的社会契约不允许项目突然决定不支持非企业版本的发行版。我不希望我的操作系统 受制于任何人的商业计划!
您可以微调您想要承担的风险程度,因为 Debian 具有三个独立的版本:Stable、Testing 和 Unstable。在我们的一些机器(服务器、kiosk 机器)上,我们运行“stable”。其他一些系统(单个工作站)运行各种测试/不稳定组合。(请注意,没有用于测试的安全更新)。我在自己的工作站上运行一些实验性的东西。最棒的是能够为服务不同功能的不同机器做出精细分级的决策。但即使是更具冒险精神的选择也足够稳固,几乎不会中断。而且“稳定” 永远不会中断;-)。
Debian 在上游提供了大量反馈。例如,XFree 项目本身并不在 Debian 支持的所有体系结构上维护或调试 X——它依赖于 Debian。对 libc 进行了许多深度修复(最近在 glibc 中存在一个引用计数缺陷,当 dlopen 使用 Debian 开发人员发现的某些 ELF 依赖项的共享对象时)。这种对细节的关注是任何其他 Linux 发行版都难以匹敌的。为最终用户提供的知识渊博、快速和友好的帮助水平非常出色——我无法从像 DEC 这样的老式商业公司获得任何东西——除非你付给他们真正的大笔钱。这可以在没有内部专业知识的情况下为基于 Debian 的企业提供第三方支持。
对于衍生系统,DFSG 和“主”通过可预测的许可简化了构建系统。
实施质量
人们经常说他们是如何因为 apt-get 而来到 Debian 的,或者说 apt 是 Debian 的杀手级应用。但是 apt-get 并不是让体验如此出色的原因:apt-get 是一个很容易被其他发行版复制的功能(而且,在我看来,从来没有与之匹敌)——称之为 urpmi、apt4rpm、yum 或其他发行版。差异化因素是 Debian 政策和严格的包格式 QA 流程(看看 apt-listchanges、apt-list-bugs、dpkg-builddeps、pbuilder、pbuilder-uml 之类的东西——没有一个可以如此容易地实现,缺少策略(想象 listchangelog 没有健壮的变更日志格式))。在 Debian 机器上安装软件真的很容易。
这类似于 货物崇拜宗教:也就是说,apt-get 是 Debian 政策系统的可见方面,就像货物崇拜实践将跑道和其他特征视为西方货物(“货物”)的来源一样,并建立了自己的复制品,配有用于控制塔的假木制耳机。以同样的方式,其他发行版创建了 Debian 打包基础结构的浅显可见方面,而没有解决政策的深层问题。更糟糕的是:技术要求和营销/经济要求之间的冲突经常会产生交叉作用。对于大多数 GNU/Linux 发行版来说,不如专有软件那么反常,但仍然明显存在。
Red Hat、Mandrake 和该类中的其他发行版具有非常庞大的基础安装。为什么?我确实相信这是因为它是安装软件的 PITA。即使使用 RPM,它也是一个笨拙的程序,无法编纂。使用 Debian,轻而易举。
所以杀手级应用程序实际上是 Debian 政策、安全团队、正式的错误优先级机制和关于错误的政策(即:任何没有手册页的二进制文件都是自动错误报告。任何不使用 debconf 的用户交互都是错误)。正如 Wiki 页面 Why Debian Rocks 所说:
这是 Debian 的症结所在,它是 Debian 的核心,也是它比所有其他操作系统如此出色的原因。政策已定义。很明显。它是通过您每天使用的工具强制执行的。发布时
apt-get install foo
,您不仅仅是在安装软件。您正在执行政策 - 该政策的目标是为您提供最佳系统。Policy 定义的是Debian的界限,而不是您自己对系统的操作。策略说明包管理系统可以更改系统的哪些部分,不能更改哪些部分,如何处理配置文件等。通过以这种方式限制分发范围,系统管理员可以在外部进行修改该区域无需担心 Debian 软件包会影响这些更改。本质上,Policy 引入了一类新的错误,即策略错误。政策错误是发布关键的——违反政策的软件包将不会包含在官方稳定的 Debian 版本中。
让我重申一下,因为这就是全部秘密: 违反政策的软件包将不会包含在官方稳定的 Debian 发行版中。
此外,Debian QA 团队负责进行非维护者上传 (NMU),帮助清理错误,执行安全更新,并确保有人从整体上查看系统,并致力于创建集成操作系统,而不仅仅是修复单独的软件包 这就是让人们对 Debian 发誓的原因。QA 子系统中有很多工具可以帮助开发人员处理他们的包——看看http://qa.debian.org/developer.php?login=srivasta
每个包装在进入测试之前必须在不稳定的分发中经历评估过程,这增加了成品的质量。一旦一个包在一段时间内没有显示任何重要问题,它就会进入测试分发。此发行版是未来稳定发行版的候选发行版,仅在解决所有发行版关键错误时才发布。这种仔细的测试过程是 Debian 的发布周期比其他发行版更长的原因。但是,就稳定性而言,这是一个优势。(注意:RH Enterprise Linux 的发布周期显然是 12 到 24 个月。更接近 Debian 的历史。)
Debian 支持尽可能多的架构这一事实也影响了软件包的质量:移植软件通常会发现底层代码中的缺陷。再加上 Debian 中的所有软件都经过 10 个左右的自动构建守护进程,并且在这些不同的环境中构建时需要没有错误,要求构建和安装脚本非常健壮,并且需要非常严格地跟踪构建时间依赖关系。添加源存档镜像和版本跟踪,你就有了一个相当健壮的系统(snapshot.debian.net 提供了简单的回滚)
Debian 错误跟踪系统是发行质量的关键。由于发布与系统中发布关键错误的数量相关联,因此它确保发布的质量优于我运行的任何专有 UNIX。发布管理器非常无情地丢弃任何带有 RC 错误的非必要包,如果它们没有得到修复 - 或者如果它是带有错误的关键包,则延迟发布。
与商业 Linux 发行版相比,Debian 的开发人员与软件包的比例要高得多。除了缺乏商业周期驱动的最后期限外,Debian 倾向于做正确的事,而不是在圣诞节前及时发布新版本。
根据最近的 Slashdot 故事,现在基于 Debian 的发行版比市场领导者 RedHat(63 和计数,包括 Xandros、Knoppix、Lycoris、Lindows(Lind--s?)、Libranet、mophix .. .)。
故障恢复绝对是最好的。(请参阅 http://www.linuxworld.com/story/32607.htm)另请参阅有关在不备份/var/lib/dpkg 的情况下恢复 Debian 系统 的脚本。
功能集和软件选择
Debian 现在有超过 10000 个软件包。很有可能您需要的任何东西都已经打包并集成到系统中,并由专人负责保持它(以及少数其他包)是最新的、集成的和无错误的。
Debian 在国际化方面付出了巨大的努力,不仅翻译文档(我有人向我发送我维护的软件包的翻译手册页),还翻译了配置和安装脚本(所有 debconf 交互都可以完全国际化)。拥有一个地理上分布广泛的社区会有所帮助——我们有数以吨计的语言为母语的人。我认为 Debian 的国际化努力与 Gnome 和 KDE 相匹配。
其他值得注意的,我没有足够的时间去关注,有:Debian 文档项目、Alioth、Debian 安装程序、Debian CD、Lintian 和包跟踪系统。
其他一些东西会让我继续使用 Debian,直到它们得到其他东西的支持:
debconf 和预播数据库的能力
关闭所有安装时提示的 make-kpkg
/usr/share/doc/{Changelog.Debian,changelog,copyright,README.Debian}
Debian 还为内核或发行版黑客和系统集成商提供了一套很棒的工具 debbootstrap、chroots、用户模式 Linux、Xen。各种简洁的工具来帮助破解安装机制、内核和驱动程序。
有许多利基社区已经找到了 Debian 的家。这些是子项目;Debian-Jr、Debian-med、Debian-Edu、Debian-non-profit 和 Debian-lex。许多 Debian 开发人员是盲人,因此,Debian 对盲人非常友好。还有关于 自定义 Debian 发行版的附加材料。
内核
从各方面来看,BSD 内核似乎比 Linux 内核更稳定,质量也更好。BSD 内核更容易阅读和理解。另一方面,Linux 内核功能更丰富,质量也有了显着提高,似乎比 BSD 内核性能更好,硬件支持也更好。确实,我听到有人评论说,在驱动程序支持方面,BSD 与 5 年前的 Linux 相同。我将在下面详细讨论硬件支持。就个人而言,Linux 内核的所谓附加错误并没有超过我的可接受阈值。而且,总的来说,我不认为 Debian 机器感觉比 FreeBSD 机器更健壮和稳定。当然,最近 Linux 内核中出现的大量漏洞开始使这一点变得紧张。(然而,
当然,Debian Gnu/FreeBSD 可能提供两全其美。
用户土地
BSD 用户域与 GNU 用户域不同。为了保持一致性,我在 Ultrix/Aix/HP-UX 机器上安装了 GNU 用户空间长大,而对我来说,GNU 用户空间感觉要舒服得多。
应该注意的是,您可以在 BSD 机器上安装 GNU 用户空间,并且有很多人这样做(例如 /usr/local/gnu/*)。在确实安装了两组实用程序的安装中,报告显示用户群绝大多数都使用 GNU 实用程序,即使这不是默认设置。一般来说,FreeBSD 实用程序看起来更轻,但功能很差,在现代硬件上,少量的内存节省无关紧要。
他们没有提供良好的命令行帮助也无济于事。foo --help告诉新手,如果他们打字,他们会得到一些可能有用的东西, 这要容易得多 。
OpenBSD 的基本用户空间相当完整。我更喜欢 GNU 用户空间,因为我已经习惯了,但 OBSD 的基本系统非常实用。FBSD 是一个完全不同的故事——在 FBSD 中,他们努力生产一个最小的基本系统,并且他们不希望人们只使用它——他们希望人们安装许多端口。FreeBSD 成为 BSD 家族中最像 Debian 的系统——你有一个基本系统,你可以在它之上构建。它的用户空间是您选择的任何内容。
维护和管理
升级被认为是 Debian 的杀手锏。与大多数其他操作系统相比,网络是Debian 的分发和升级机制。策略、维护者脚本中的思想、调用方式、apt 和朋友对依赖网络进行的完整拓扑排序,所有这些都共同确保升级顺利进行(I'我从来不需要重新安装我的机器,尽管有些机器已经升级了 5 年以上)。在推荐的 BSD 升级路径中重新安装并非闻所未闻(从 2.8 或 2.9 开始,OpenBSD 至少两次向 i386 用户说“不支持/不推荐升级,重新安装”)。
这种升级的便利性也影响了系统的安全性;感谢安全团队,在 Debian 上进行安全升级比在其他系统上方便得多。对于我们这些不在 vendor-sec 上的普通人来说,在我们的源列表中包含 security.debian.org 可以确保我们的盒子在任何漏洞被公开后方便、快速地更新——因为安全团队之前已经在修复细节公开。这意味着系统可以在几分钟内更新,而在 BSD 操作系统上进行升级的推荐方法涉及重新编译整个系统(至少是“世界”)。
Debian 试图确保跳过主要版本的顺利升级——我在其他地方并不支持这一点。我不断回归包装质量
管理 Debian 是大多数人坚持使用 Debian 的主要原因。我知道没有其他发行版可以在其中输入 apt-get install sendmail,然后离开功能齐全的邮件服务器,配备 SASL 和 TLS,完全配置,并配备证书。仅给定拨号速度,所有管理都可以通过 SSH 完成。
Debian 保证将保留用户对配置文件的更改,并且所有配置文件都应存在于 /etc 中(而不是遍布文件系统),这使得备份更容易(我的 /etc 处于版本控制之下)。
Debian 符合 FHS,并且 LSB 符合性是一个发布目标。
Debian 开发和分发的分布式特性使得建立一个单独的自定义软件包存储库非常容易,然后可以在内部分发;政策和构建机制确保第三方可以以可复制的方式轻松构建系统。
便携性和硬件支持
Linux 倾向于支持比 BSD 更多的深奥硬件。这是否有问题,取决于您的需求。对高质量硬件的支持基本相同。一个值得注意的例外是 RAID 硬件。3ware RAID 卡刚刚在 BSD 中得到支持,但对 Linux 的支持已经有一段时间了。IBM 保证其所有硬件和 HP 都支持 Linux,这也是 Linux 的一个优势。我也喜欢最近进入 Linux 内核的多个日志文件系统。对于台式机,杀手级因素是驱动程序。Linux 将所有其他 X86 Unix 远远甩在后面。
谈到可移植性,NetBSD 应该是代名词。但是,我仔细研究了 NetBSD 和 Debian 支持的内容:我发现 Debian 支持 ibm s/390 和 ia64,而 NetBSD 支持 sun2 (m68010)、PC532(不管是什么[显然一台只生产了 200 个型号的定制机器])和 VAX。我确定我对哪一组更感兴趣(尽管在地下室里放一个 VAX 可能会很酷)。请注意,NetBSD 调用的架构通常被 Debian 标记为子架构,因此不计入 11 个支持的架构计数。
源构建
我听说过很多关于 BSD 的 ports 机制和 gentoo 的 portage 系统的事情。我还听说人们如何在端口系统中编译东西时遇到问题。除了编译所有东西都很快变老的事实(当我在 93 年使用软着陆系统 (SLS) 发行版时,我一直在那里,这样做了)。
并不是说你不能做一个像 Debian 的自动构建这样的移植——我们在 11 种架构上都有自动构建器,它们每天都在不断地这样做——问题是为什么要这样做?我还没有看到一个单一的、可复制的测试通过本地定制的优化编译来证明任何明显的性能改进——在我看来,当然没有一个可以证明花在调整和构建软件上的时间是合理的。
有人说,当他们年轻的时候,想玩恶作剧时,他们会在某人的计算机上调整一些无意义的参数,并告诉他们“这会使它运行大约快 5%,但你可能不会注意到它”。面对这样的挑战,他们的反应通常是完全相信他们的机器已经有了很大的改进,他们可以感受到 5% 的差异!
传统观点似乎表明整体系统性能提升不到 1%。不过,特定程序可以从中受益匪浅,而且您始终可以在 Debian 中为您的环境调整关键应用程序。我认为通过运行优化系统节省的时间远远超过了构建系统和构建系统升级所花费的时间(我听说有人在后台运行日常更新,同时在后台执行其他操作)前景。)
更不用说由于没有一个可以很好地测试各个部分的互操作性的中心位置,集成如何受到影响,因为每个系统都会与参考系统大不相同。
当涉及到重大升级时,源代码构建系统也存在更多问题——我有轶事证据表明它不像 Debian 升级机制那样安全和健全。
无论如何,如果我确实想在 Debian 上从源代码构建软件包,我可以使用 apt-get source -b、apt-src 或许多工具中的任何一个。在进行本地构建时,我确实相信本地构建的 deb 将以安全和理智的方式安装,正确替换旧的东西。构建依赖于拉入构建所需的任何依赖项,我经常在 pbuilder-user-mode-linux 中构建以确保统一构建。
这里真正的重点是,Gentoo 是一个为业余爱好者和 übergeeks / 硬核 linux 用户提供的发行版,他们可以抽出时间来构建他们的应用程序。我知道 Gentoo 也提供预编译的二进制文件——但这不会破坏他们所谓的优势吗?对于停机确实要花钱的企业环境,这是不可接受的,而 Debian 提供了最佳解决方案。那些管理多台机器的用户可以真正体会到能够发布是多么方便apt-get update && apt-get upgrade在没有任何自动化帮助的情况下,无需在每台机器上下载、配置、编译和安装软件机器(我在这里并不完全公正地出现/移植,但重点很清楚,我希望)。我可以强调这一点:对于“严重”/生产使用,二进制发行版是最好的也是唯一可行的解决方案;其中,Debian(不仅因为APT,还因为DD为确保包装的正确性所做的所有努力)是最好的[我尝试过SuSE,RedHat和Mandrake,即使我也不会回去提供了很多钱;Gentoo 也不是一个选择]
安全性和可靠性
在安全性和便利性之间总是需要权衡取舍——最终安全的计算机是永远不会打开的。安全,但不是很有用。你必须决定你的舒适区在哪里。
当有人说安全和类 Unix 操作系统时,人们会想到什么?OpenBSD,有一些理由。它经过审核,具有小尺寸、小系统要求和基于纯文本的安装。如果您坚持核心安装,您将获得一个经过审核的系统,默认情况下没有打开任何服务,并保证默认安装中没有可能导致远程 root 入侵的漏洞。但是,您最终会使用旧软件,而默认安装确实很少。W^X 和 OpenBSD 上的堆栈溢出保护 (ProPolice) http://www.openbsd.org/33.html,以及适用于 Linux 的 exec-shield 和 Adamantix (PaX) 补丁(您可能需要在 Debian 上为这些补丁重新编译内核)。大多数人都同意 OpenBSD 的安全和审计部分并没有提供他们需要的所有软件。此外,与 2.6.3 内核上的 SELinux 相比,OpenBSD 的性能数据,嗯,很差。
OpenBSD 的安全声誉是有道理的——但只有当您了解该项目,当您熟悉它真正涵盖的内容时。OpenBSD 可能是一个很好的防火墙,甚至可能是邮件或静态 Web 服务器 - 只要您远离端口树,您就拥有一个经过审核的、具有安全意识的系统。然而,我知道这样一个系统的应用很少。OpenBSD 用户空间端口比稳定的 Debian 更频繁地中断——但是,在 OpenBSD 中,端口正式不是系统的一部分,如果其中一个出现安全问题,您就只能靠自己了。
可以说,Debian stable 等于或超过了确切的声明——此时 Debian 和 openbsd 之间在现实世界中似乎几乎没有区别。必须努力使用标准优先级软件包来强化默认的 Debian 安装,但这对于有经验的管理员来说只是几分钟的工作。OpenBSD 的代码审计处于更高级的阶段;尽管必须记住,尽管最近进行了所有审计,但 OpenSSH 中仍然存在一些引人注目的错误——因此,请在经过审计的标签上加点盐。
Debian GNU/Linux 发行版非常注重安全性和稳定性。我们有一个安全团队、自动构建系统来帮助安全团队在所有受支持的架构中快速构建版本,以及针对这些目标的策略。这里有更多关于 OpenBSD 和 Debian 的 安全性比较。
即使您不需要在每个目标 BSD 系统上都有一个工具链来推出安全更新(“make release”或“make package”以在一台机器上构建并安装在其他地方),但它比它更不方便Debian 打包系统。Debian 更好地处理二进制包分发。使用 Debian 的本机机制,可以拥有自己的 aptable 存档并从 is 提供所有生产服务器。
然而,当涉及到真正的安全性时,如果没有强制访问控制,您就几乎没有保证。所以 SELinux(以及仍然新生的 TrustedBSD)将是比 OpenBSD 或基本 Debian Stable 更好的选择。
即使没有 SELinux,我也发现 Debian stable 坚如磐石的稳定性,以及来自安全团队提供的反向移植安全修复程序的安心,非常有说服力。未经培训的收件人很容易了解最新的安全性;并降低妥协的可能性。这在拥有大量计算机的商业环境中非常重要,重要的是不要每隔几个月就升级软件。
在稳定发行版方面,Debian 的安全团队还有另一个好处。但是,只有一个版本的端口树。而在 Debian 中,您有多个版本,例如 apache、KDE 和 X11 - 每个套件都有一个版本,带有稳定套件的安全更新 - 在 FreeBSD 上没有这样的东西。当然,如果在给定的软件包中发现漏洞,port makefile 将被更新,但在这种情况下堵住系统漏洞的唯一方法是安装新版本的软件包,所有可能出现的问题这可能会导致。与 Debian 相比,您可以安装相同版本的软件,并向后移植安全修复程序。此外,如果您正在使用易受攻击软件包的端口安装版本,您
我有一些比较 Linux 发行版和修补已知安全漏洞的时间的数据,但是没有 BSD 的数据。它可以在http://people.debian.org/~jfs/debconf3/security/data/获得。
可扩展性和性能
我一开始根本不打算谈论性能和数字,因为这些对我个人而言无关紧要,而且性能数字会随着版本的发布而变化。但是,我意识到这些对某些人来说是重要的决策标准,因此我试图查看最近的数字。
完整的基准测试集和代码可在此处获得。 http://bulk.fefe.de/scalability/ 这是他的话,来自结论部分,更新以反映最新的基准。
Linux 2.6 在所有基准测试中的规模为 O(1)。言语让我无法想象这是多么令人印象深刻。如果您现在使用的是 Linux 2.4,请立即切换到 Linux 2.6!
NetBSD 比 FreeBSD 具有更好的可扩展性。
FreeBSD 5.1 具有令人印象深刻的性能和可扩展性。(请注意,它尚未发布)我愚蠢地假设所有 BSD 在性能方面都在同一个联盟中发挥作用,因为它们都共享大量代码并且可以自由地合并彼此的代码。我错了。FreeBSD 的性能在 BSD 中排名第二,甚至接近 Linux 2.6。
Linux 2.4 还不错,但是对于 mmap 和 fork 来说扩展性很差。
OpenBSD 3.4 在这些测试中表现很差。磁盘性能很差,内核不稳定,在网络可扩展性部门甚至超过了它的父亲 NetBSD。OpenBSD 还因为他们对 IPv6 堆栈的破坏而被扣分。如果您使用的是 OpenBSD,那么您现在应该离开。
结论
据我所知,没有其他操作系统或发行版具有这种混合特性(易于维护、可负担性、稳定性、大小、可定制性、强大的支持)。在大多数情况下,我不想修补和调试我的工作站,我想轻松、安全地完成我的工作,并且对我使用的基础设施的担忧最少。Debian 帮助我实现了这一点。
从技术角度来看,这仍然是我今天使用它的主要原因。软件安装和升级。这些软件包是一流的,它们通常可以完美地安装和升级。软件维护仍然是任何系统管理员工作的重要组成部分,而对于 Debian,这简直是微不足道的。这不是问题。甚至在谈论 Debian 的任何问题时都不要提起它,这不值得。边缘无瑕。
致谢
以下人员帮助提供了数据和见解,使我能够进行这次演讲。
Wouter Verhelst < wouter@grep.be >
何塞·路易斯·塔隆 < jltallon@adv-solutions.net >
安德鲁·萨菲尔德 < asuffield@debian.org >
哈维尔·费尔南德斯-桑吉诺·佩尼亚 < jfs@computer.org >
罗素·科克 < russell@coker.com.au >
安德烈亚斯·梅茨勒 < ametzler@downhill.at.eu.org >
史蒂夫 < sgbirch@imsmail.org >
托尼·穆勒 < toni@debian.org >
马克·哈伯 < mh+debian-devel@zugschlus.de >
乔治·丹切夫 < danchev@spnet.net >
Lionel Elie Mamane < lionel@mamane.lu >
格雷格·福克特 < greg@gregfolkert.net >
鲁迪·戈多伊 < rudy@kernel-panik.org >
安德烈亚斯·蒂尔 < tillea@rki.de >
Nathanael Nerode < neroden@twcny.rr.com >
马克·费拉特 < ferlatte@cryptio.net >
Gunnar Wolf < gwolf@gwolf.cx >
吉姆·麦克洛斯基 < mcclosk@ucsc.edu >
比尔·沃勒 < wohler@newt.com >
比尔·理查森 < bill@bothan.net >
亚历克斯·佩里 < alex.perry@qm.com >
伍德罗·柯顿 < wkirton@surfwayx.net >
大卫 B 哈里斯 < dbharris@eelf.ddts.net >
Joost van Baal < joostvb@mdcc.cx >
比尔 Allombert < allomber@math.u-bordeaux.fr >
< root.man@earthlink.net >
维克多·罗森菲尔德 < rosenfel@informatik.hu-berlin.de >
“阿德里安 'Dagurashibanipal' von Bidder < avbidder@fortytwo.ch >
Razvan Petrescu < rpetrescu@montran.ro >
s。基林 < keeling@spots.ab.ca >
Karsten M. Self < kmself@ix.netcom.com >
还要感谢 开发人员邮件列表上 线程中的参与者的输入。