Mac OS 的一点历史: Mac OS, Mac OSX 与Darwin
作为收购 NeXT 公司的结果,苹果公司获得了 NeXTSTEP 架构中的 Mach 和 Objective-C 等设计。尽管 NeXTSTEP 本身已经不再发展了,但是其中的组件在 OS X 中获得了新生。事实上,可以将 OS X 看成是 Mac OS Classic 和NeXTSTEP 的融合,更准确地说,应该是后者慢慢地吸收了前者。这个转变并不是瞬间发生的,Mac OS 经历过一个名为Rhapsody 的临时操作系统,这个系统从未公布于众。然而,就是 Rhapsody 这个系统最终演化成了 Mac OS X 的第一个版本,而这个操作系统的内核也就是我们今天所熟知的 Darwin(中文名称:达尔文)。
在所有操作系统里面,Mac OS X在设计上和实现上与NeXTSTEP最接近,甚至超过了苹果公司自己的OS 9。OS X的核心组件——Cocoa、Mach、IOKit、Xcode的Interface Builder以及很多其他组件——都直接来自于 NeXTSTEP。这两个极端的小众的操作系统——一个有着伟大的 GUI 但是设计糟糕,一个设计很棒但是 GUI 非常平淡——融合的结果就是一个比两者加起来都要流行得多的全新操作系统。
有时候人们会混淆 OS X 和 Darwin 这两个名词的定义以及两者之间的关系。下面来澄清一下:OS X 是整个操作系统的一个集体名称。根据下一章的讨论,这个操作系统由很多组件构成,
Darwin 就是其中的一个组件。
Darwin 是操作系统的类 UNIX 核心,本身由内核(kernel)、XNU(“X is Not UNIX”的缩写,这个缩写类似于 GNU 的递归式缩写)和运行时组成。Darwin 是开源的(iOS 中的 Darwin 是在 ARM 上的移植,这个Darwin则是不开源的,详见稍后的讨论),而OS X中的其他部分,即苹果公司提供的各种框架,不是开源的。
http://hovertree.com/h/bjaf/webfuzadu.htm
OS X 的版本和 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。尽管看上去有点混乱,但至少是一致的。
Mac OS 的一点历史: Mac OS, Mac OSX 与Darwin的更多相关文章
- 回顾苹果操作系统Mac OS的发展历史
在新的MacBook AIR和Mac OS X Lion即将发布之际,我们仅以此文向伟大的苹果和乔布斯致敬.并祝Apple教主乔布斯早日康复,长命百岁,千秋万载,一统苹果! Mac OS是指运行于苹果 ...
- mac废纸篓清空的心得、mac设置不睡眠不待机不锁屏、如何快速锁屏待机睡眠、mac重启、mac学习的必备软件-城
mac废纸篓清空: 1.使用废纸篓的清空废纸篓,清空所有包括被锁定的文件: 2.使用“磁盘工具”的“修复磁盘权限”,修复完成再操作清空废纸篓: 3.使用cleanmymac软件“垃圾清理”和“擦除器” ...
- wan口mac=lan口mac加一,wlan是lan口mac加二
(1)路由器有两个mac地址,一个用于外网(wan),一个用于内网(wlan和lan): (2)一般路由器上面或者配置路由器的网页上面只标注外网的mac地址: (3)内网的mac地址和外网mac地址一 ...
- Mac使用技巧总结-如何独立设置Mac触摸板方向和鼠标滚轮方向?
Mac使用技巧总结 如何独立设置Mac触摸板方向和鼠标滚轮方向? 苹果Macbook的使用者都知道,Mac自带的触控板非常好用,不仅支持多手势操控,而且手感极佳,使用流畅. 但是如果对鼠标的焦距有高有 ...
- mac远程桌面Microsoft Remote Desktop for Mac的安装与使用
mac远程桌面Microsoft Remote Desktop for Mac的安装与使用 学习了:https://blog.csdn.net/ytangdigl/article/details/78 ...
- 开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码
开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码. 开源地址: https://github.com/jkpang/PPRows
- 小鱼易连 for mac如何使用?小鱼易连 mac版使用教程
小鱼易连 for mac如何使用?小鱼易连 mac版是参加远程会议人士的首选,高效极致,简单流畅,视频流畅,语音清晰,无需专用网络的功能深受用户的喜欢,它提供的文件和电脑的共享,让你的会议更加高效.下 ...
- 自定义虚拟机MAC地址 | 它与 VMware 预留的 MAC 冲突 解法
https://blog.csdn.net/wangrui1573/article/details/82056020 问题:我想给VMware ESXi上的一台虚拟机分配一个静态的MAC地址.然而当我 ...
- OS.js – 开源的 Web OS 系统,赶快来体验
OS.js 是一个开源的 Web OS 系统,可以在浏览器中运行,提供了窗口管理器,应用程序API,用户界面开发套件和抽象的文件系统等.可以部署在 Node 或者 PHP 环境中运行.OS.js is ...
随机推荐
- Java程序员的日常—— 基于类的策略模式、List<?>与List、泛型编译警告、同比和环比
早晨起得太早,昨晚睡得太晚,一天都迷迷糊糊的.中午虽然睡了半个小时,可是依然没有缓过来.整个下午都在混沌中....不过今天下载了一款手游--<剑侠情缘>,感觉不错,喜欢这种类型的游戏. 今 ...
- 3 分钟轻松搭建 Ruby 项目自动化持续集成
任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这是一篇关于 Ruby 项目持续集成的快速指导教程,教大家如何使用 f ...
- PHP实现RESTful风格的API实例(二)
接前一篇PHP实现RESTful风格的API实例(一) Response.php :包含一个Request类,即输出类.根据接收到的Content-Type,将Request类返回的数组拼接成对应的格 ...
- 使用(POI)SAX处理Excel文件,防止内存溢出
POISAXReader h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-chi ...
- unity生成WP工程后ExtendedSplashImage显示不正确的问题
这个bug我已经彻底无语了,居然这么久都没有fix. 解决方法如下: <SwapChainPanel x:Name="DXSwapChainPanel"> <Gr ...
- c#将list集合转换为datatable的简单办法
public static class ExtensionMethods { /// <summary> /// 将List转换成DataTabl ...
- 在Windows平台上安装Node.js及NPM模块管理
1. 下载Node.js官方Windows版程序:http://nodejs.org/#download 从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安 ...
- 深入理解CSS元素可见性visibility
× 目录 [1]定义 [2]属性 [3]display[4]JS[5]transition [6]API[7]DEMO 前面的话 visibility属性常见于与display属性的比较中.但实际上, ...
- Oracle Concept
1. Truncate Truncate是DDL命令.表的物理位置是保存在数据字典中表的定义的一部分.首次创建时,在数据库的数据文件内给表分配了一个固定大小的空间.这就是所谓的区间并且为空.那么当插入 ...
- c#方法重载,可选参数,命名参数。
其实这里没什么可说哦,c++的语法大同小异.先看一段代码. class Program { public static void Test(int a) { Console.WriteLine(&qu ...