免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3713 | 回复: 2
打印 上一主题 下一主题

iPhone OS/Mac OS X知识简介 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-25 10:38 |只看该作者 |倒序浏览
本帖最后由 prolj 于 2010-05-25 11:48 编辑

看很多人对Mac不是非常了解,我来说一点点废话,涉及不便泄漏的内容一带而过,自己想,自己看吧。
首先声明我是Mac fans,jobs教主的忠实信徒。
英语没啥大障碍的先看一下下面这个链接的文章。
http://osxbook.com/book/bonus/ancient/whatismacosx//arch_xnu.html
主要说的是,Mac OS X的内核叫做XNU,X isN't UNIX。
XNU呢?主要包括Mach内核,BSD服务层,I/O Kit驱动模型,Platform Expert和libkern and libsa。
Platform Expert和libkern and libsa自己看吧,这里我们主要谈论一下Mach内核,BSD服务层和I/O Kit驱动模型。
Mach内核,呵呵,很强大的一个东西,3.0是真正的微内核,当然使用了BSD的很多子系统(废话,就是基于BSD开发的)。Mach微内核主要有以下功能:
  1. 1,多任务(进程/线程(线程是个什么玩意儿?就是进程啦))支持,调度。
  2. 2,虚拟内存,内存保护等等内存管理的功能。
  3. 3,中断管理。
  4. 4,实时支持(其实我不知道Mac OS X算实时的,只是使用起来感觉还不错)。
  5. 5,内核调试支持(built-in的一个low-level的内核调试器,叫ddb。kdp是其远程调试协议。)。
  6. 6,终端IO。
  7. 最后,但是最重要的一条,就是IPC,微内核的核心就是轻量级IPC啦。
复制代码
BSD子系统服务层,同样,我也是BSD fans。但是抱歉的是,BSD在Mac里面只是一个子系统服务层,叫做BSD subsystem。2002年(还是2000年?)的时候Apple才改用的FreeBSD 5的代码更新了BSD subsystem,但是仍然是一个子系统服务层。
BSD子系统服务层包含下面功能:
  1. 1,进程模型。
  2. 2,用户识别,权限,安全策略(不知道Apple怎么感谢delphij的,呵呵)。
  3. 3,POSIX API和部分BSD system calls,System V IPC。
  4. 4,TCP/IP,BSD sockets,防火墙,crypto框架。
  5. 5,VFS虚拟文件系统(熟悉Linux的人应该明白VFS跟EXT的区别和联系吧,HFS+是Apple自己的)。
  6. 6,各种同步机制。
复制代码
I/O Kit,Mac并没有使用FreeBSD的驱动模型,而是自己开发了I/O Kit,C++的。我对驱动一毛不懂(改改参数,改改接口算写驱动不?),呵呵,一边儿凉快去了。省的内核牛们过来跟我PK,先走为上策。

其实我感兴趣的在Mach-O,看看这个文章。
http://gemma.apple.com/mac/libra ... ence/reference.html
Mac的可执行文件格式根本没有使用ELF,而是Mach自己的Mach-O。细节自己去看吧,结构体,API都很全了。
你在终端输入
  1. file xxx(可执行文件名)
复制代码
看看?
你再在终端输入
  1. as -v
复制代码
会回显
  1. cctools 多少多少版本(好像是750/50) GNU as 多少多少版本(我记不清楚了,好像就是1985年Mach-3.0那个版本)
复制代码
Mac的ld不是GNU的,而是自己的ld64,ld64是cctools一部分,Mac的toolchain叫做cctools/ld64,具体是gcc还是别的只是实现的一部分。

OK,现在直入主题,iPhone OS。iPad我没有买,用过了,挺好玩儿的,在路上的时候看文档/代码真的不错,比iPhone用起来方便多了,至于重量,谁让你不去国术馆呢,东亚病夫的招牌我们要送给小日本儿的。很多人都越狱(Scofield?),安装一些软件的时候会提示需要BSD subsystem,iPhone OS跟Mac是同样的XNU内核代码,而且上面也是精简了的OS X服务层。这里就不多说了,相比Android,iPhone才是真正赚钱的(MeeGo还没影子呢)。助于赚钱的途径,无外乎俩了,老大,写软件放进App Store赚一点儿美丽的元补贴家用。老二,去Apple做XNU微内核或者其他服务子系统的开发,当然,这个要付出的代价就是忍受万恶的资本主义。

iPhone OS为什么呢?

Apple自己玩儿了A4,Cortex A8+Mali。谁知道Atom二代(啊,我知道你叫他三代)主板的功耗?

希望熟悉的iPhone OS的牛常来本版,我加精毫不吝啬的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2010-05-25 13:03 |只看该作者
看很多人对Mac不是非常了解,我来说一点点废话,涉及不便泄漏的内容一带而过,自己想,自己看吧。
首先声明 ...
prolj 发表于 2010-05-25 10:38



    给俺加精吧.

俺来了...

论坛徽章:
0
3 [报告]
发表于 2010-05-25 23:26 |只看该作者
Mach-O的魅力还在于可以在运行时做一些改变,两次运行之间就更容易了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP