macOS、iOS、Darwin、类 unix、POSIX


macOS 和 iOS对比

  • 内核

    macOS 的内核是 intel,由PowerPC 改进为 intel。

    iOS 内核和二进制文件编译的目标架构,是基于ARM架构,而不是intel i386 和 x86_84。

    尽管iOS的目标处理器可能不同(A4、A5和A5X等),但都是采用ARM的设计。

    相比Intel,ARM的主要优势在于电源管理,因此ARM的处理器设计对于移动操作系统(iOS 及Android)来说都非常重要。

  • 内核源码-iOS

    iOS 内核源码闭源。

    macOS 中的 Darwin 是开源的。

  • 内核编译

    iOS内核的编译关注的是嵌入式特性和一些新的API。有一些新的API最终会进入OS X,但是其他的不会。

  • GUI

    iOS的系统GUI是SpringBoard,这是大家熟知的触屏应用加载器;

    macOS 中的GUI的Aqua,是鼠标驱动的,而且特别为窗口系统所设计。

    由于SpringBoard如此流行,因此在Lion中以LaunchPad(启动台)的形式移植到了OS X中。

  • 内存管理

    iOS的内存管理要紧凑得多,因为在移动设备上没有几乎无穷的交换空间可以使用。因此,开发者需要适应更严酷的内存限制以及编程模型的变化。

  • 系统限制

    iOS的系统的限制更严(或称为jailed),应用程序不允许访问底层UNIX API(即Darwin),也没有root访问权限,只能访问自己的目录里(沙盒)的数据。

    只有苹果的应用才能有访问整个系统的权力。App Store的应用被严格受限,而且必须通过苹果的审查。

    macOS 没有上面的限制。


macOS & Darwin

OS X 是整个操作系统的一个集体名称,这个操作系统由很多组件构成,Darwin 就是其中的一个组件。

Darwin 是操作系统的类 UNIX 核心,由内核(kernel)、XNU 和 运行时(runtime) 组成。

XNU:“X is Not UNIX”的缩写,这个缩写类似于 GNU 的递归式缩写。

macOS 中的 Darwin 是开源的,而OS X中的其他部分,即苹果公司提供的各种框架,不是开源的。

但iOS 中的 Darwin 是不开源的, 是在 ARM 上的移植。

macOS 的版本和 Darwin 的版本之间有一个简单的关系,除了 OS X 10.0 对应 Darwin 1.3.x之外,其他的版本都服从以下简单的公式:

If (OSX.version == 10.x.y){
    Darwin.version = (4+x).y
}

因此,例如 Mountain Lion 的 10.8.0 版本对应 Darwin 12.0。

Snow Leopard 的 10.6.8 版本对应 Darwin10.8。

尽管看上去有点混乱,但至少是一致的。


Unix & Linux & macOS

通俗的说,Unix 是爸爸,Linux 和 macOS 是兄弟。

unix是最早的出来的多任务,多用户系统,它是收费的。


linux是一个 Linus Torvalds 为了让人们用到免费的类unix系统,高度参考Unix系统原理,做出了一个叫做 linux 的内核。

一般可以认为,Linux是一套自由使用(一般可以免费使用)和自由传播的类Unix操作系统。这个系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约、全世界都能自由使用的Unix兼容产品。

严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用 GNU 工程各种工具和数据库的操作系统。

Linux严格来说已经不是Unix了,因为从内核到外层应用都是独立开发代码。

linux是兼容unix的,或者说是linus写的一种开源的类unix系统。


macOS,是基于Unix内核的图形化操作系统,由Unix的一个分支(BSD)发展过来的,内核叫darwin(达尔文)。


类Unix

类Unix系统(英文:Unix-like)指各种传统的Unix系统(比如FreeBSD、OpenBSD、SUN公司的Solaris)以及各种与传统Unix**类似**的系统(例如Minix、Linux、QNX等)。

它们虽然有的是自由软件,有的是商业软件,但都相当程度地继承了原始UNIX的特性,有许多相似处,并且都在一定程度上遵守 POSIX规范


POSIX

POSIX表示 可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )。

POSIX标准 定义了 操作系统 应该为 应用程序 提供的 接口标准,是IEEE为要在各种UNIX操作系统上运行的软件 而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。

POSIX标准意在期望获得源代码级别软件可移植性

换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。

POSIX 并不局限于 UNIX。许多其它的操作系统,例如 DEC OpenVMS 支持 POSIX 标准,尤其是 IEEE Std. 1003.1-1990(1995 年修订)或 POSIX.1,POSIX.1 提供了源代码级别的 C 语言应用编程接口(API)给操作系统的服务程序,例如读写文件。POSIX.1 已经被国际标准化组织(International Standards Organization,ISO)所接受,被命名为 ISO/IEC 9945-1:1990 标准。

猜你喜欢

转载自blog.csdn.net/lovechris00/article/details/81291449