一个Linux操作系统如何“基于”另一个Linux操作系统?


38

我最近一直在浏览许多Linux发行版,以了解周围的情况,并且不断出现的一句话是“ [此OS]基于[另一个OS]”。例如:

  • Fedora基于Red Hat
  • Ubuntu基于Debian
  • Linux Mint基于Ubuntu

对于来自Mac环境的人,我理解“ OS X是基于Darwin”的,但是当我看Linux Distros时,我发现自己问:“它们都不都是基于Linux的吗??”。

在这种情况下,一个Linux操作系统基于另一Linux操作系统到底意味着什么?


17
达尔文基于BSD。您可以将NeXT OS扔给那两个...:D
Keltari

12
“ Red Hat是基于Fedora的”,那是相当不准确的。Fedora更像是对RedHat中稍后使用的元素进行beta测试。
vartec

基本上你需要分布的核心部件,改变你想要什么,(软件,标识,名称,无论...),现在你你有“味道”,或者分配基于其他的“发行”
TheXed

2
最简单的方法是获取所需的确切Linux发行版,然后在某处(可能只是)更改一行/etc/motd,然后,您将拥有自己的新Linux发行版。Linux OS如何不能不基于现有的OS。这是更难的问题。
沃伦·P

4
我想你的答案已经被回答了。然而,这里是所有的Linux发行版是围绕历史的一个很好的图形表示:upload.wikimedia.org/wikipedia/commons/1/1b/...
Dohn乔

Answers:


59

Linux是内核,Debian是该内核的发行版和一堆与系统进行实际交互的软件。

现在,我可以使用Debian,并将引导屏幕上的徽标更改为自己的徽标,然后我的发行版将基于Debian(以非常原始的方式)。通常,在派生分布中进行的调整会更大。

关键是,如果您想更改某个发行版,则可以按照自己的喜好对其进行修改,然后根据现有的发行版发布自己的发行版(只要遵守所有许可)。


10
准确,但也许过于简单?
法国奥斯汀T

...当然,在实践中,派生的分布通常在特定区域进行一些用户可见的重要更改。例如,Ubuntu专注于完善桌面环境。但是仍然大多数Ubuntu软件包都是从Debian复制而来的。
Jan Hudec

2
@AthomSfere:抱歉,写这篇文章时我正在打电话。我现在将对其进行改进,但是其他答案似乎涵盖了所有详细信息。
Der Hochstapler,2013年

8
@OliverSalzburg您在打电话吗?您非常上瘾:-D
Luc M

9
@AthomSfere KISS也可以应用于答案!
jsedano

32

Linux是内核,它是一种(复杂的)软件,可以与硬件一起使用,并可以导出特定的应用程序编程接口(API),以及有关如何精确使用它的二进制约定(Application Binary Interface,ABI)。空间”应用程序。

Debian,RedHat和其他操作系统是完整的软件环境,它由内核和一组用户空间程序组成,这些程序使计算机在执行明智的任务(发送/接收邮件,允许您浏览Internet,驱动程序,机器人等)。

现在,每个这样的OS在提供几乎相同的软件(例如,免费邮件服务器程序或Internet浏览器或台式机环境并不多)的同时,实现此目标的方法以及目标和发布周期也有所不同。

这些操作系统通常被称为“发行版”。IMO,这是一个错误的术语,因为您在技术上能够手动构建所有必需的软件并将其安装在目标计算机上,因此这些OS 分发了打包的软件,因此您无需构建(Debian,RedHat)还是它们促进了这种构建(Gentoo)。他们通常还提供安装程序,以帮助将操作系统安装到目标计算机上。

制作和支持操作系统是一项非常复杂的任务,需要复杂而复杂的基础架构(上载队列,构建服务器,错误跟踪器,存档服务器,邮件列表软件等)和人员。显然,这为创建新的,从零开始的操作系统带来了很大的障碍。例如,Debian提供了ca。用于约五种硬件体系结构的37k软件包—来计算支持这些东西需要投入多少工作。

但是,如果有人认为出于任何原因需要创建新的OS,则最好使用现有的基础进行构建。这正是基于其他操作系统的操作系统应运而生的地方。例如,Ubuntu通过仅从Debian导入大多数软件包并仅重新打包其中的一小部分,再打包自己的软件包,提供自己的图稿,默认设置,文档等,在Debian上进行构建。

请注意,此“基于”的事物有所不同。例如,Debian促进了其自身的“纯混合”的创建:发行版直接使用Debian,仅添加了一堆软件包和其他内容,这些内容仅对相当一部分用户有用,例如从事教育,医学或音乐工作的用户工业等

另一个问题是,并非所有这些操作系统都基于Linux。例如,Debian还提供FreeBSD和Hurd内核。他们的用户组很小,但无论如何。


8

Red Hat,Debian等都是Linux的发行版(“ distros”)。

请记住,从技术上讲,Linux只是内核,它是一个有效且有用的系统的一部分。

您将需要基本的实用程序,有关系统中所有内容的决定,安装和更新软件的机制以及约定/标准(例如程序所在的目录)将它们结合在一起。

大多数发行版通常都将大多数经典实用程序的GNU版本视为基本版本,因此,例如,这就是为什么Debian将其称为GNU / Linux。尽管有几乎所有其他内容,但有很多选择。而且由于Linux,GNU实用程序以及在Linux下运行的许多东西都是免费软件,因此任何人都可以随时创建新的发行版。如果该发行版未包含任何受版权保护或专有的内容,则包括从该发行版派生。

图像和徽标通常是带有商标/版权的,通常不能直接在派生发行版中使用,除非您遵守拥有者的条款和条件。如果已获得GPL或类似GPL的许可,则通常可以使用相同的软件。

通常与发行版相关的一件事是软件包管理器或方法,该软件包用于维护,测试和分发软件。派生发行版通常与其“上游”包管理器兼容。但是,没有什么可以阻止您在任何Linux发行版上进行手动程序安装。

通常,这意味着您将使用相同的程序包管理器以相同的方式安装软件,并且可执行文件和配置文件的位置将位于同一位置。


7

在Linux中,有发行版或发行版。从字面上看,有数百个。

Linux是开源的,因此任何人(或任何团体或公司)都可以修改他们希望的操作系统的任何部分。这就是为什么某些版本具有不同的安装程序(.debvs. RPM或仅仅是tar)和不同的命令(apt-getvs. yum)的原因。

大多数发行版会选择目标用途或特定用途,并围绕该目标进行某种形式的演变。

例如,Redhat及其亲戚是面向服务器的。大多数操作系统都是围绕稳定或快速而设计的。

Debian易于使用,因此支持.deb易于安装的软件包文件。

Ubuntu继承了Debian的基础,并添加了代码和软件包,使其成为第一个Linux发行版。

然后,Mint删除了一些Ubuntu代码,以创建一个更快的操作系统,该操作系统与Ubuntu相似,但是当Ubuntu将桌面管理器更改为Unity时,它也更多地类似于传统桌面。

这是详细的GNU / Linux家族树:http : //upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg


1
AFAIK,sudo无处不在。 yum的等价于apt-getaptitude
Izkata

1
@Izkata是的,很抱歉。已经有一段时间了,今天早上咖啡很淡;)
Austin T French

1
您将内核(Linux)与分发中聚合的其余软件混淆了。
Matteo Italia

2

扩展以上答案。Linux只是内核,大多数系统级命令(gcc,grep,bison)最初是由GNU项目编写的,大多数用户级应用程序(XFCE,Apache,XMMS)是由第三方编写的。

通常在早期创建发行版时,内核便与系统级命令以及一部分用户应用程序和服务器组件捆绑在一起。今天仍然是这样,但是许多新发行版不想重复努力使所有内容都很好地配合使用,因此他们选择了Debian,CentOS,Slackware等基本发行版,并添加或减去了GNOME,KDE等用户应用程序。 ,LXDE等。他们还可以编写自定义菜单,并将自己的徽标和背景注入发行版(SUSE,PCLinux等)中。他们可能会走得更远,并创建特定于分发的应用程序,例如程序包管理器或自定义前端。

因此,当您说例如Ubuntu基于Debian时,您在技术上是正确的,但是如今最好说一说,特别是在Ubuntu的情况下,它是从Debian派生的,因为对Debian的更改可能会或可能不会出现。 Ubuntu的。

这应该有助于形象化我在说些什么,它说明了如何将几个已建立的发行版分叉到其他发行版中。虽然不是100%准确,但可以提供一个想法。

http://photos1.blogger.com/blogger/3370/2500/1600/GNULinuxupdatedw4.0.jpg

据我所知,该图像是100%准确的,并且是所有Linux发行版的时间表,并显示了它们的来源。如今,只有极少数的分布(少于六个)可以追溯其起源。根据这张地图,只有2个,Redhat和Debian,甚至我心爱的Slackware都不是原始的。

http://www.techjini.com/blog/wp-content/uploads/2011/10/linuxdistrotimeline-7.2.png


1

Mac OS X在达尔文之上运行,因此它是基于达尔文的。可以这么说,它对达尔文有运行时依赖性。

从某种意义上讲,Ubuntu是基于Debian的。

如果您采用Debian的软件包和构建系统,Debian的软件包和脚本以及诸如此类的东西,并制作与Debian类似的自己的发行版,那么您将基于Debian。

您系统的用户会发现与Debian非常相似(例如,系统的安装方式,软件包的更新方式或在下塑造系统配置的方式/etc)。

Debian也基于Debian:最新版本Debian基于Debian的先前版本。


0

Linux只是使您能够访问计算机硬件的核心部分。通常在其上分层放置GNU C库,在该层上分层放置您习惯使用的所有命令和软件(包括任何图形用户界面)。

在一个软件没有被某家公司锁定的世界中,发生了什么呢?不同的团队将全部基于两个主要组件的不同的软件组合在一起:Linux内核和GNU C库。在每个系统中几乎都可以找到这两个。

通俗地讲,我们将所有这些操作系统称为“ Linux”或“基于Linux”,并且由于对各种标准的约定,它们都非常相似。

附带说明一下,OS X的Darwin内核实际上是从BSD(早于Linux)开发的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.