009_【OS X和iOS系统学习笔记】 OS X架构
1.OS X是整个操作系统的集体名称,而Darwin是其中的一个组件。
2.Darwin是操作系统的类UNIX核心,本身由内核、XNU和运行时组成。
3.uname指令:可以得到有关架构的详细信息以及Darwin的版本信息。
比如在Terminal中运行uname得到的结果是Darwin,
运行uname -a得到的信息:Darwin alex.local 16.4.0 Darwin Kernel Version 16.4.0: Thu Dec 22 22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64 x86_64 (-a 表示显示所有的参数),通过输出结果我们可以看到Darwin内核版本号是16.4.0,系统是X86_64,是64位操作系统。
4.iOS和Mac OS X
其实iOS就是Mac OS X,只不过两者之间有着区别。
iOS的内核和二进制文件编译的目标架构是基于ARM架构的,而Mac OS X是基于Intel架构的。
iOS的内核源代码是闭源的。
iOS的内核编译稍有不同,关注的是嵌入式特性和一些新的API。
iOS的系统GUI是SpringBoard,OS X的GUI最早是Aqua,后来由于iOS的启发,将SpringBoard以LaunchPad形式移植进Mac OS X。
iOS的内存管理要紧凑的多。系统限制比较严格,因此后来有了越狱这种说法。目前iOS的可越狱版本是9.3.3,更高的版本估计要继续等太极和盘古团队了,而且貌似不能通过重新刷Firmware的方式给iOS系统降级,我目前没有成功。
苹果官方OS X和iOS文档中展示的分层方法。
- 用户体验层。Aqua(早期OS X的GUI基础,由于后来iOS GUI基础SpringBoard的出现,OS X GUI的基础变成了 LaunchBoard)、DashBoard(类似于Windows的桌面小工 具)、Spotlight(相比较于Windows系统自带查询工具的效率来说,Spotlight无疑是出色的)等等。对于iOS的用户体验层来说,主要是SpringBoard,当然,iOS里也有Spotlight。
- 应用框架层。OS X包括了Cocoa、Carbon和Java,iOS主要是Cocoa演变的Cocoa Touch。
- 核心框架层。图形和媒体层,包含核心框架、Open GL和QuickTime。
- Darwin。操作系统的核心,包含内核和UNIX Shell环境。Darwin是开源的,是整个系统的基础,提供了底层的API,其他的层则是闭源的。Darwin = Mach + BSD。
009_【OS X和iOS系统学习笔记】 OS X架构的更多相关文章
- 学习笔记——OS——引论
学习笔记--OS--引论 操作系统的定义 操作系统是一组管理计算机硬件资源的软件集合: 用户和计算机硬件之间的接口 控制和管理硬件资源 实现对计算机资源的抽象 计算机系统硬件 冯诺依曼体系结构和哈佛结 ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
- Dubbo -- 系统学习 笔记 -- 快速启动
Dubbo -- 系统学习 笔记 -- 目录 快速启动 服务提供者 服务消费者 快速启动 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubb ...
- Dubbo -- 系统学习 笔记 -- 配置
Dubbo -- 系统学习 笔记 -- 目录 配置 Xml配置 属性配置 注解配置 API配置 配置 Xml配置 配置项说明 :详细配置项,请参见:配置参考手册 API使用说明 : 如果不想使用Spr ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 泛化引用
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 泛化引用 泛接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 结果缓存
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 结果缓存 结果缓存,用于加速热门数据的访问速度,Dubbo提供声明式缓存,以减少用 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 分组聚合
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 分组聚合 按组合并返回结果,比如菜单服务,接口一样,但有多种实现,用group区分 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 多版本
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 多版本 当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 服务分组 当一个接口有多种实现时,可以用group区分. <dubbo:se ...
随机推荐
- 使用Visual Studio 2013进行单元测试
使用Visual Studio 2013进行单元测试 1.打开VS2013 --> 新建一个项目.这里我们默认创建一个控制台项目.取名为UnitTestDemo 2.在解决方案里面新增一个单元测 ...
- c#程序阅读分析
using System; using System.Collections.Generic; using System.Text; namespace FindTheNumber { class P ...
- Visual Studio 2015的安装和简单的测试
首先是Visual Studio 2015的安装 Visual Studio是微软开发的一套基于组件的软件开发工具,目前最新的版本是2015. 在 I Tell you 网站下载Visual Stud ...
- Linux搭建好apache后,只有本地能访问,局域或外网不能访问
由于防火墙的访问控制导致本地端口不能被访问. 解决方法: 1,直接关闭防火墙 systemctl stop firewalld.service #停止防火墙服务 systemctl disable ...
- 移动硬盘插到台式机,外接网卡无法连接wifi处理
在网上买了一个希捷500G的移动硬盘,避免供电不足,硬盘需要插到台式机后面,高高兴兴的通过USB连接了,发现硬盘可以用,然后打算网上查询是否正品,发现不能连接网络了,我是台式机,用360wifi作为无 ...
- Docker(八)-Docker创建Nginx容器
获取Nginx镜像 最简单的方法就是通过 docker pull nginx 命令来创建 Nginx容器. $ sudo docker pull nginx 或者: $ sudo docker pul ...
- Jenkins配置匿名用户拥有只读权限
场景:查看cucumber reporting测试报告时需要登陆,比较麻烦 解决:允许匿名用户拥有只读权限 操作:Jenkins->系统管理->全局安全配置->授权策略,勾选“All ...
- 如何用js替换文本里的换行符 \n?
有下面一段文本, 在编辑器里的格式如下: <div id="foo"> line1line2line3</div> 切换到浏览器, 显示如下 line1li ...
- 题解 P5239 【回忆京都】
你们这些写题解的,就不能把话说清楚嘛!(吐槽1) 你们这些出题的,就不能多出点东方嘛!(吐槽2) 你们这些做题的,就不来写一篇详细一点的题解嘛!(吐槽3) 以上均是个人吐槽,纯属吐槽,不带任何针对性和 ...
- 【转】crc16几种标准校验算法及c语言代码
一.CRC16校验码的使用 现选择最常用的CRC-16校验,说明它的使用方法. 根据Modbus协议,常规485通讯的信息发送形式如下: 地址 功能码 数据信息 校验码 1byte 1byte nby ...