1

我知道这部分是关于抽象的,但由于我是初学者,这些概念对我来说非常模糊。Mac OS 是建立在 Linux 架构之上的吗?Linux 与 Unix/Ubuntu 有什么关系?我曾尝试在其他地方对此进行研究,但很难找到非常明确的解释。

4

4 回答 4

4

Unix 是最初在 1970 年代开发的操作系统,Mac OS X 正是基于该操作系统。Linux 是一个内核(操作系统的与硬件接口的部分),而 Ubuntu 或 Fedora 等发行版添加了其余软件(其中大部分来自 GNU 项目)以使其成为完整的操作系统。Linux 和 GNU 项目最初的存在是为了提供封闭源 Unix 的免费替代方案,因此虽然代码不是来自 Unix,但它们非常相似。

于 2013-01-13T18:38:13.237 回答
3

Linux 只是一个操作系统内核,它符合 Unix 标准。内核是现代操作系统中最小的运行软件组件,它处理程序的执行、管理硬件、内存、IO 等。它不是普通用户直接与之交互的东西,甚至是不知道的。

Ubuntu 是一个使用 Linux 内核的完整操作系统。一个完整的操作系统包括程序(网络浏览器、文件浏览器、照片查看器、打印机驱动程序、桌面环境等)并提供完整的用户界面。由于它运行 Linux 内核,因此符合 Unix 标准。

Unix 是操作系统内核以及用户空间实用程序和最初在 1970 年代开发的标准的通用名称。

Mac OS 是一个完整的操作系统,运行 Darwin 内核和 FreeBSD 用户空间实用程序,并且符合 Unix 标准。

这意味着用 C 编写的符合 POSIX/Single UNIX 规范(操作系统标准集)的程序将在 Linux、Mac OS、FreeBSD 等上以相同的方式编译和工作。请注意,Windows 是一个奇怪的操作系统不兼容 POSIX/Single UNIX,并且与上述操作系统有很大不同,并且不一定能够在不进行重大修改的情况下运行该程序。

于 2013-01-13T18:52:06.483 回答
0

它们都是“类Unix”系统。

Ubuntu 是一个Linux . 它运行Linux 内核( Android也是如此)。

Unix今天不作为一个具体的操作系统存在......除了作为一个原型,那个原型是Posix(Posix 是一个标准规范,而不是现有软件),现在是OpenGroup Unix(这也是一个标准规范) .

旧的 ATT Unix 代码在法律上几乎丢失给破产的 SCO。

您列出的所有系统都在实施 Posix。

因此,一个符合 Posix 的 C 程序可以很容易地从一个程序移植到另一个程序——您可能只需要重新编译它。

于 2013-01-13T18:37:46.213 回答
0

Unix 是 70 年代与 C 编程语言一起开发的操作系统。UNIX 范式对从那时起开发的每一个操作系统都产生了深远的影响,它的元素甚至可以在 Windows 中找到。

已经创建了几个遵循 Unix 范例的操作系统。Mac OS 有一个内核,它基于为 PC 制作的第一个 Unix 版本,称为 BSD Unix。

Linux 最初是一个爱好者操作系统,后来成为一个非常专业的操作系统。顾名思义,它也遵循 Unix 范式。这意味着通常在 Unix 上编译的程序将在 Linux 和 MacOS 上编译。

许多开源操作系统都有一个叫做发行版的东西,所以有 Linux 和 BSD 的发行版。这些发行版本质上只是一组预配置的软件,但通过努力,您可以自己从头开始组装相同的东西。Ubuntu 就是这样一种发行版。

由于有各种类 UNIX 操作系统,Unix C API 已被标准化为 Posix。大多数操作系统本机支持 Posix。Microsoft 也为 Windows 提供了 Posix 层。

于 2013-01-13T19:01:43.417 回答