简要概述Linux kernel与Mac Kernel的相似与不同

2023年 8月 18日 72.1k 0

简要概述Linux kernel与Mac Kernel的相似与不同-1

Linux kernel 和 macOS Kernel 都是基于 UNIX 的,有人说 macOS 就是「Linux 换个了壳」,也有人说由于命令和文件系统层次结构的相似性,Linux 和 Mac 两者兼容。本文系统极客就向大家简要介绍,Linux 内核和 Mac 内核之间的差异和相似之处。

macOS内核

1985 年,由于与 CEO(John Sculley)和苹果公司董事会意见不合,Steve Jobs 离开苹果成立了一家名为 NeXT 的新电脑公司。Steve Jobs 希望快速发布(带有新操作系统的)新计算机,为了节省开发时间和发布周期,NeXT 团队使用了 Carnegie Mellon 大学的 Mach 内核和部分 BSD 代码库来创建 NeXTSTEP 操作系统。

简要概述Linux kernel与Mac Kernel的相似与不同-2

也许 Steve Jobs 继承了在苹果公司大手笔花钱的习惯,NeXT 在财务上一直没能取得巨大成功。苹果此时也曾多次试图(甚至与 IBM 合作)更新其操作系统,1997 年以 4.29 亿美元收购了 NeXT。作为收购交易的一部分,Steve Jobs 也重新回到了 Apple,NeXTSTEP 也因此成为了 macOS 和 iOS 的基础。

Linux内核

与 macOS 内核不同,Linux 不是因为商业目的而创建。相反,它是由计算机学生 Linus Torvalds 于 1991 年作为开源项目创建。最初,Linus Torvalds 为了用上他的新 80386 处理器,所以才开始写 Linux 内核。从 1991 年 8 月在网上发布了他的新内核代码开始,很快就收到了来自全球的代码和资源建议。第二年 Orest Zborowski 将 X Windows 移植到了 Linux,也让 Linux 很快就支持了图形用户界面。

macOS内核资源

macOS 内核官方称为 XNU,根据 Apple 的官方 Github 页面,XNU 是将 Carnegie Mellon 大学开发的 Mach 内核与 FreeBSD 和 C++ 组件结合起来,的混合内核。代码的 BSD 子系统部分 通常在微内核系统中作为「用户空间」服务器实现,Mach 部分则负责低级工作,例如:多任务、受保护的内存、虚拟内存管理、内核调试和控制台 I/O。

简要概述Linux kernel与Mac Kernel的相似与不同-3

与 Linux 不同的是,XNU 内核允许其中的一部分(停止下来)进行维护,而另一部分则继续工作,这也成就了 macOS 内核的稳定性。

Linux内核资源

macOS 内核结合了微内核与 Mach 和 BSD 这样的单片内核的功能,而 Linux 则只是一个单片内核。单片内核负责管理 CPU、内存、进程间通信、设备驱动程序、文件系统和系统服务调用,也就是说它在完成所有事情时都不进行细分。

很多人认为单片内核除了速度慢之外还更容易出错,这让 Linus Torvalds 和其它开发人员引起了很多议论,而 Linux 每年的表现都恰恰与之相反,而且可以向混合内核方向进行优化。此外在 RedHat 的帮助下,Linux Kernel 已经拥有了 Live Patch 能力,允许实时维护而无需重启。

macOS(XNU)和Linux内核之间的差异

  • macOS Kernel(XNU)存在时间比 Linux Kernel 长,并且基于「久远」代码库的组合,这非常有利于稳定性。
  • Linux Kernel 代码更新,属于从头开始编写并已经在许多设备上使用。
  • 分别为 macOS 与 Linux 编写的驱动程序不能互用
  • 比较奇特的是 Linux 有一系列 macOS 守护进程,包括 CUPS 打印服务。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论