问题描述
Unix,Linux,Ubuntu和Debian之间是什么关系?
我怀疑它们都是相互依赖的操作系统-类似于Windows基于DOS的方式。我的怀疑正确吗?这些操作系统之间是否具有与Windows在DOS下相同的关系类型?它们是否以任何方式与DOS或Windows相关?
最佳思路
Unix是一个始于1969年的操作系统。它最初被设计为开发人员平台,而不是应用程序平台,但是,随着开发的进行和不同厂商的参与,Unix被添加进来。
Unix最初是用汇编语言编写的,但后来发展为C。
与其他内核相比,Linux内核为Unix-like。
Linux是Unix-like内核。它最初是由Linus Torvalds在1990年代开发的。自由软件运动在最初的软件版本中使用了此内核,以编译新的操作系统。内核负责管理系统资源并将其分配给应用程序。
请注意,尽管许多版本都称为’Linux’,但这是一个特定方面,它与文本编辑器,编译器,调试器等一起构成操作系统,而不是本身具有操作系统。
Debian是1990年代初发布的此操作系统的形式之一,也是当今可用的许多Linux版本中最受欢迎的形式之一。
Ubuntu是2004年发布的另一个操作系统,它基于Debian操作系统。它非常受欢迎,因为它易于学习,无需使用终端。
-
Linux:内核(仍在积极开发中)
-
Debian:Ubuntu的早期操作系统(仍在积极开发中)
-
Ubuntu:基于Debian的较新操作系统(仍在积极开发中)
-
Unix:Linux内核松散地基于的旧操作系统
阅读:Linux Kernel阅读Debian阅读Ubuntu阅读:Unix
如果您真的有兴趣学习所有这些背后的历史,我建议您看一部名为Revolution OS的电影,它讲述了这种自由软件运动发展背后的许多历史。
次佳思路
您还需要了解一件事:GNU。
GNU代表“ GNU的非Unix”,它是一种尝试创建由自由软件基金会开发的免费,独立版本的Unix。
他们走得很远,他们制作了一个C编译器,一个C库,一个链接器,编辑器,shell,以及在典型的Unix shell中期望的所有命令,其中包含很多东西。但是内核(称为”Hurd”)尚未完成。内核之外的所有事物(作为用户拥有的进程运行)一起称为”userland”。
当Linus Torvalds创建他的Linux内核时,他没有创建用户区。他只有一个内核,也不是一个完整的系统。事实证明,可以编译他的内核并在GNU用户领域内使用它(这可能并不简单,但我当时不在那儿,也不知道)。
通常被称为”Linux”的OS人们实际上是从具有GNU用户地域的Linux内核开始的,此后又添加了许多其他内容。自由软件基金会一直坚持认为,因此应将其称为GNU /Linux。
Debian是Linux的”distribution”;他们辛苦地编译了整个Linux系统所需的所有各种工具,进行了编译,并提供了许多软盘供下载。或CD,稍后。其他人也这样做,例如Slackware,Red Hat等。
后来创建了许多其他发行版,通常不是从头开始,而是以现有发行版为起点,并向其中添加额外的软件,或者以不同的方式进行组织,等等。 Ubuntu以这种方式基于Debian。
第三种思路
“ Unix”最初是1970年代在贝尔实验室开发的PDP-11操作系统的名称。它的设计具有巨大的影响力,并且被复制并重新实现了数十次。
如今,”Unix”是整个操作系统系列的总称,其中有些(但不是全部)直接源于该原始OS。任何其主要系统编程接口与POSIX.1 API规范兼容的东西都可以合法地称为Unix的实现-其中有数十种。列出不是Unix实现的今天仍在广泛使用的操作系统会更容易:
-
视窗
-
自1970年以来一直在持续开发的IBM z /OS及其亲戚
-
一些deeply-embedded东西,它们更像是运行时库,而不是完整的操作系统
(遗憾的是,还有许多实验研究原型正在尝试超越Unix设计,但它们不符合“广泛使用”的条件。)
“ Linux”是Unix的一种实现的通用名称。自1990年代以来一直存在,并且是当今最常用的五个实现之一-可能是#1或#2,具体取决于您如何计算这些东西。
Linux的与众不同之处在于内核,C库,编译器,”shell”实用程序的基本集合等都是由不同的人群开发的;此外,对于大多数作品来说,还有多种选择。有人必须挑选一套并将它们放在一起,并确保它们可以组合使用。那个人(如今通常是一群人)通常被称为Linux的分发者,而他们的输出就是分发。 Debian和Ubuntu是Linux的发行版。它们曾经非常紧密地联系在一起,但此后又有很大的分歧。
(从技术上讲,Linux的名称专门指内核,如果不使用该内核,则称其为操作系统Linux有点奇怪,但是有人保留了所有其他内容并换出了内核,例如Debian kFreeBSD )
(针对脚步者的脚注:此职位中所有具有优异成绩的glossing-over都是100%故意的。)
第四种思路
UNIX和Linux与DOS或Windows不相关。
DOS是在70’s/early 80’后期流行的8位CP /M操作系统的产物。
Windows NT(基于XP,Vista,7和8的Windows NT)是Microsoft从1993年开始开发的,它借鉴了VAX VMS的许多概念。 Windows NT被开发为现代的,抢占的”real”,multi-user,multi-tasking安全操作系统。
Windows 3.1、95、98和ME几乎是Microsoft的multi-tasking(不是multi-user或安全)DOS的想法/执行。
关于UNIX,Linux等:
-
UNIX是自70年代以来一直存在的内核/API /操作系统。
-
内核为程序提供了运行平台,在Unix中,它允许多个程序在单台计算机上运行,并且多个用户可以访问它。内核不运行任何程序,这些程序必须单独开发和提供。
-
API是程序与内核进行通讯的标准方式。它是内核的一部分。
-
操作系统是一个内核以及用于管理和管理系统的通用实用程序。 UNIX的通用实用程序包括管理服务和登录(初始)的基本程序,允许您输入命令(sh,bash)的shell以及cp,ls,mv等基本文件管理命令。
-
-
Linux是在GPL下发行的UNIX-like内核,最初是在PC硬件上运行的,但现在可以在几乎所有带CPU的系统上运行(如果允许运行它)。
-
GPL是一种许可,它规定任何修改/增强Linux并发布其修改的人都必须向公众公开这些修改,并允许其他人这样做。
-
Linux实现了UNIX API,因此,如果重新编译UNIX程序,它们通常可以在不修改的情况下运行(这比从头开始重写它们要容易得多)-由于它们使用UNIX API,因此它们不在乎是否真的在与Linux或UNIX通信或其他的东西,只要API做同样的事情。
-
-
Debian是Linux发行版。它始于1993年,是最古老的发行版之一。 Linux发行版通常提供:
-
一个Linux内核,
-
基本实用程序
-
安装程序,以便您可以在系统上安装Linux,
-
软件包管理器(以及软件包的格式-Debian使用
.deb
) -
软件包的存储库因此,您可以安装发行版,启动并运行基本的Linux环境,然后在需要软件时使用软件包管理器从发行版的存储库中调用软件包。它与Windows不同,Windows传统上是将软件分发到CD上,并且版本和更新之间的间隔逐年增加。存储库中的软件通常会经常更新,并且程序包管理器负责下载和应用任何更新。
-
Debian也严格只发行开源软件,这意味着需要专有软件才能运行的事物(例如现代视频卡或Wi-Fi芯片组)在Debian“开箱即用”的情况下无法(或根本无法)发挥最佳作用。
-
Debian通常会缓慢创建新版本,并且比新功能更关注稳定性。这使得Debian成为硬件相对静态且软件稳定性至关重要的服务器的最爱。
-
-
Ubuntu是Debian的”fork”
-
Debian允许其他人使用其包管理工具基于它创建发行版。这样做称为”forking.”
-
除了Ubuntu的特定品牌和外观,Ubuntu添加了其他Ubuntu-specific存储库,其中包含更多和更新的软件。与Debian相比,Ubuntu “bleeding-edge”更为实用-从非技术或非UNIX专家的角度来看,Ubuntu的创建更加友好和有用。这是有关开箱即用的新功能和硬件的全部内容。
-
大多数可以在Debian上运行的软件都可以在Ubuntu上运行。由于Debian的软件通常较旧,因此另一种方法可能会出现问题。您可能会遇到一些需要更新才能运行Ubuntu东西的基本组件,但由于Debian仓库中没有较新的版本而无法更新。您可以手动更新这些,但是随后可能需要更新其他组件,等等。
-
应该注意的是,如今Debian比以前更加友好并且了解现代硬件。
-
第五种思路
Unix =商业操作系统规范
Linux =免费的Unix克隆(仅内核)
Debian = Linux发行版(Linux和其他东西)
Ubuntu =重新分发了Debian(Debian使最终用户更加友好)
第六种思路
“Unix”是该操作系统的商标,其灵感来自于1960s-vintage操作系统”Multics”; “Unix”是一个文字游戏,旨在暗示它就像Multics,但并不那么复杂。 (个人说明:在1980年代后期,我从事的不是Unix类型的Multics的商业化后代。)Unix的开发始于1969年的DEC PDP-7,并于1970年转为PDP-11。 1972年,用C重写了它;至此,它已经用汇编语言编写了。 (DEC汇编语言相对来说是programmer-friendly,但仍然是汇编语言。)它仍然是Bell Labs通过1979年发布的“版本7”研究项目。
大约在1977年,开发了另一个分支:”BSD”(伯克利软件发行)。 AT& T于1982年授权了其分支机构”System III”的商业版本,然后于1983年获得了”System V”的授权。然后AT& T与伯克利之间发生了一系列法律纠纷,这对双方都造成了伤害,直到诉讼最终得以解决。
部分是为了响应System V和BSD的战斗,开始了两个新项目:Minix(由Andrew Tanenbaum设计,使用micro-kernel设计复制了现有Unix-family内核的关键功能)和GNU项目(复制了大多数重要的非-现有Unix的内核部分),它们都具有全新的代码,避免了System V和BSD之间的法律麻烦。标准化工作试图解决两个主要部门之间的差异。主要结果是POSIX。
1991年,受Minix,较旧的Unix分支以及GNU内核缺乏进展的启发,Linus Torvalds创建了Linux。它也是所有新代码,并返回到old-Unix类型的内核,而不是Minix-type micro-kernel。
1997年,苹果公司接管了基于BSD的Nextstep,并最终将其开发为新的Mac操作系统,并使其适用于其他Apple设备。
Linux有多种发行版,这些发行版包括Linux内核和各种实用程序。 Debian是Linux的一个发行版,它已分支到一系列发行版中。 Ubuntu是Debian家族的一部分,而它又分支到发行版家族中。
Windows和DOS的历史非常不同。大约在1963年,DEC建造了PDP-6,其操作系统为Monitor。建造PDP-10时,他们将操作系统命名为”TOPS-10″。 Gary Kildall为Intel 8080系列计算机编写了一个操作系统,并将其命名为”CP/M”。它的灵感来自TOPS-10。 CP /M启发了”86-DOS”,由Tim Paterson(使用Microsoft的“独立磁盘BASIC-86” 8位FAT文件系统)为8086系列计算机编写,因为CP /M-86是CP /M的8086系列续集延迟。
IBM希望为其第一台8088机器获得CP /M-86的许可,但是交易存在问题。 IBM听说过86-DOS,并要求Microsoft为他们提供。 Microsoft对其进行了许可(后来又购买了),并以”PC-DOS”的形式将其许可给IBM,并将其以”MS-DOS”的形式许可给了他人。
一段时间后,受Visi On(又受Xerox Star的启发,后者被人们称为Apple的Lisa和Macintosh的灵感)的启发,Microsoft将Windows开发为add-on到MS-DOS。早期版本不是很成功,但是最终Windows 3.0足以取得商业上的成功。几个更高的版本(3.1、3.11、95、98和ME)都在DOS上运行,但是Microsoft意识到DOS在Windows上阻碍了进度。接近尾声时,Windows的大部分分支都是32位的,但它仍然依赖于16位DOS。
为了克服DOS的局限性,微软与IBM合作开发了OS /2,这意味着“ DOS比DOS更好,Windows比Windows更好”。但是,最初的版本并不太好,最终IBM和Microsoft终止了联合开发。 IBM接管了它,并最终制作出了不错的OS /2。
同时,DEC创建了VAX系列计算机来替代其PDP-11系列,并在其上运行VMS操作系统。它与TOPS-10操作系统共享一些历史记录,但是它们并不相互兼容。
为了避免OS /2出现问题的可能性,微软聘请了一些顶级VMS开发人员(和一些micro-kernel研究人员)从头开始构建新的32位Windows。从深处看,它类似于对VMS最佳功能的micro-kernel改编。最重要的是,它看起来像Windows。 32位Windows的第一个版本是“ Windows NT 3.1”,然后是Windows NT 3.5、3.51和4.0,然后是Windows 2000(不带”NT”),XP(第一个64位Windows),Vista,7、8和8.1。
将那些mostly-unconnected开发路径联系在一起的有趣线程是DEC。 Unix的许多早期历史与DEC PDP-7,PDP-11和VAX有关。 DEC PDP-6和PDP-10启发了DOS的一些历史。 DEC的VAX-VMS团队的资深成员构建了Windows NT家族的核心。
第七种思路
I suspect they are all Operating Systems
它们是或曾经都是操作系统。如今,Unix是商标,而不是操作系统。
that may be based upon one another
无论如何,这是事实。后一组基本上基于re-implementation,其中包含来自Unix的许多想法。 Linux中没有Unix代码(尽管这是长期诉讼的主题,最终导致失败)。
similar to how Windows is based on DOS.
我怀疑Windows 8中没有任何PC-DOS代码,甚至可能出于兼容性目的。从DOS到Windows 8都有明显的进步。 Unix和Linux并非如此。
Is this the same type of relationship?
并非完全如此,Unix和Linux的所有权和开发显然是分开的。
Linux是最初由Linus Torvalds完全开发的操作系统内核。它原本的目的类似于Unix,并从Unix汲取了很多想法。 Torvalds并非以任何Unix代码作为基础。
要使操作系统可用,您需要在Linux内核中添加一组由FSF独立开发的”GNU”工具。如今,您还添加了一个或多个竞争子系统(例如Gnome或KDE桌面管理器)。这些中的每一个都称为”distribution”。
有许多这样的分布,每个分布都有自己特定的功能选择。
一些发行版实质上是其他发行版的修改形式。通常,一个分布称为上游分布。下游发行版的发行在很大程度上取决于上游发行版的新发行。
Ubuntu是Debian的下游发行版。 Ubuntu在其中增加了很多价值(与其他一些诸如CentOS和RedHat之类的关系相比)