macOS 和 Linux 的内核有什么区别 | Linux 中国
https://itsfoss.com/mac-linux-difference/
作者 | John Paul
译者 | Stephen (stephenxs) 🌟 🌟 共计翻译:3 篇 贡献时间:31 天
有些人可能会认为 macOS 和 Linux 内核之间存在相似之处,因为它们可以处理类似的命令和类似的软件。有些人甚至认为苹果公司的 macOS 是基于 Linux 的。事实上是,两个内核有着截然不同的历史和特征。今天,我们来看看 macOS 和 Linux 的内核之间的区别。
macOS 内核的历史
我们将从 macOS 内核的历史开始。1985 年,由于与首席执行官 John Sculley 和董事会不和,史蒂夫·乔布斯离开了苹果公司。然后,他成立了一家名为 NeXT[1] 的新电脑公司。乔布斯希望将一款(带有新操作系统的)新计算机快速推向市场。为了节省时间,NeXT 团队使用了卡耐基梅隆大学的 Mach 内核[2] 和部分 BSD 代码库来创建 NeXTSTEP 操作系统[3]。
NeXT 从来没有取得过财务上的成功,部分归因于乔布斯花钱的习惯,就像他还在苹果公司一样。与此同时,苹果公司曾多次试图更新其操作系统,甚至与 IBM 合作,但从未成功。1997年,苹果公司以 4.29 亿美元收购了 NeXT。作为交易的一部分,史蒂夫·乔布斯回到了苹果公司,同时 NeXTSTEP 成为了 macOS 和 iOS 的基础。
Linux 内核的历史
与 macOS 内核不同,Linux 的创建并非源于商业尝试。相反,它是由芬兰计算机科学专业学生林纳斯·托瓦兹于 1991 年创建的[4]。最初,内核是按照林纳斯自己的计算机的规格编写的,因为他想利用其新的 80386 处理器(的特性)。林纳斯于 1991 年 8 月在 Usenet 上[5]发布了他的新内核代码。很快,他就收到了来自世界各地的代码和功能建议。次年,Orest Zborowski 将 X Window 系统移植到 Linux,使其能够支持图形用户界面。
在过去的 27 年中,Linux 已经慢慢成长并增加了不少功能。这不再是一个学生的小型项目。现在它运行在世界上[6]大多数的计算设备[7]和超级计算机[8]上。不错!
macOS 内核的特性
macOS 内核被官方称为 XNU。这个首字母缩写词[9]代表“XNU is Not Unix”。根据 苹果公司的 Github 页面[9],XNU 是“将卡耐基梅隆大学开发的 Mach 内核和 FreeBSD 组件整合而成的混合内核,加上用于编写驱动程序的 C++ API”。代码的 BSD 子系统部分“在微内核系统中通常实现为用户空间的服务”[10]。Mach 部分负责底层工作,例如多任务、内存保护、虚拟内存管理、内核调试支持和控制台 I/O。
Linux 内核的特性
虽然 macOS 内核结合了微内核(Mach[11])和宏内核(BSD[12])的特性,但 Linux 只是一个宏内核。宏内核[13]负责管理 CPU、内存、进程间通信、设备驱动程序、文件系统和系统服务调用( LCTT 译注:原文为 system server calls,但结合 Linux 内核的构成,译者认为这里翻译成系统服务调用更合适,即 system service calls)。
用一句话总结 Linux 和 Mac 的区别
macOS 内核(XNU)比 Linux 历史更悠久,并且基于两个更古老一些的代码库的结合;另一方面,Linux 新一些,是从头开始编写的,并且在更多设备上使用。
如果您发现这篇文章很有趣,请花一点时间在社交媒体,黑客新闻或 Reddit[14] 上分享。
via: https://itsfoss.com/mac-linux-difference/
作者:John Paul[16] 选题:lujun9972 译者:stephenxs 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
- macOS 和 Linux 的内核有什么区别
- macOS 和 Linux 内核之间有什么不同?
- linux里source、sh、bash、./有什么区别
- linux的时间管理(与驱动程序相关,非应用程序使用)内核和普通系统函数和使用c语言库的区别
- 【ARM-Linux开发】ARM7 ARM9 ARM Cortex M3 M4 有什么区别
- linux 内核同步机制-自旋锁与信号量及其区别
- Linux中` `、$、$( ) 、${ } 有什么区别
- linux下的so、o、lo、a、la文件有什么区别?
- 常见Linux有哪些?AS和ES有何区别?CentOS是什么?和Redhat什么关系?
- linux的内核、内核态和用户态的区别
- Linux 输出重定向>和>>的区别是什么?
- 什么是翻译平台最重要的地方? | Linux 中国
- LINUX 和 WINDOWS 内核的区别
- 什么是容器?为什么我们关注它? | Linux 中国
- 进程的内核态和用户态有什么区别?
- UCloud 技术副总裁杨镭:技术的初心是什么? | Linux 中国
- Linux下/usr/local/lib 和 /usr/lib 里的内容有什么区别?
- Linux 0.12内核与现代内核在内存管理上的区别
- 深入分析 Linux 内核链表(转自ibm developerWorks 中国,IBM为开源界做了很多贡献,赞)
- LINUX 和 WINDOWS 内核的区别(转载哦)