免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

深入理解内核系列之---Mac OS X和iOS内核初探有奖交流(获奖名单已公布-2014-6-26) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-05-20 16:05 |只看该作者
支持一下,希望能拿到100元卡

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
12 [报告]
发表于 2014-05-20 16:26 |只看该作者
这个只能表支持了 MAC OS的内核可真的没功夫研究了~

论坛徽章:
7
IT运维版块每日发帖之星
日期:2016-05-27 06:20:00IT运维版块每日发帖之星
日期:2016-06-09 06:20:00操作系统版块每日发帖之星
日期:2016-06-12 06:20:00程序设计版块每日发帖之星
日期:2016-06-12 06:20:00操作系统版块每日发帖之星
日期:2016-06-13 06:20:00IT运维版块每日发帖之星
日期:2016-06-17 06:20:002015-2016NBA季后赛纪念章
日期:2016-06-28 17:42:27
13 [报告]
发表于 2014-05-20 21:43 |只看该作者
目前从事OpenWRT路由器开发,基本是用人家的东西在搞,主要是从一些开源项目中移植一些功能,想深入学习下Linux底层驱动各个子系统,pincrl, dma, gpio等。
有打算学习iOS 开发,毕竟想跟得上时代啊,玩自己的应用多有意思啊,哈哈

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2014-05-20 21:54 |只看该作者
正好由于工作原因,接触过一段时间的IOS/MAC OSx。
因为本人主要做linux,所以在接触苹果OS的过程中,不是那么痛苦。
先说说相似之处:
1. 都是UNIX系列的操作系统,所以使用上比较相近(Mac OS 和 Linux)。诸如一些命令,环境参数,常用工具等,多数通用。
2. 开发上也有很多相似之处。Linux下使用GCC很久,到MAC OS,也有GCC版本(集成于XCode,也有单独的命令行功能)。GDB是两边都有。
  系统调用和C库都符合Posix标准,因此多数接口都是一致的。用到了socket接口,两边基本一致。pthread两边实现基本一致。对于其他子系统的接口,参照《Unix环境高级编程2》,基本都能应付。
  以上对于linux,Mac Os X,IOS三个系统都差不多。
不同之处(以下的苹果系统同时指MAC oS和IOS,因为这两个系统的开发有不少地方都是一样的):
1. 当然是开发工具。Linux用vim其实没那么好用,可能个人水平有限。苹果系统下Xcode是相当地方便,自动补全和错误提示功能相当有用。平时集成环境用得少,不过感觉Xcode也算是这方面的优秀者吧。
  Xcode的图形调试系统比单纯的gdb命令要方便一些,这个大约和VS系列相似。
  Xcode的帮助文档确实很系统和方便,另有一些教程类的文章集成在开发环境里,方便搜索和模仿。这一点比linux下又要方便一些。
2. 图形界面的开发,其实这个不具可比性。Xcode本来就善于做这个。而我在linux下尝试用QT,则会有额外的一些配置工作。并且个人感觉QT的开发没有Xcode的界面功能方便。
3. 线程上Xcode提供了一个NSThread,这个东西使用方便,但可控制的地方比较少。根据我的个人经验,这个东西似乎是基于pthread的一个封装,在简单地分发任务时会比较方便。
4. GCC工具上,Linux肯定是保持最新的,可以随时更新。但Xcode上更新较慢。
    当时我在尝试用C++11的时候,Xcode带的gcc由于版本低一些,所以对标准支持不完善,这个方面在linux就好多了。

但是整体上我在苹果系统上做的工作不多,不足半年。因此无法全面评价两者的差异。个人更喜欢Linux,毕竟是开源的,实现的细节都是可以查看的。在实际工作中,用Linux的显然多过苹果系统,个人接触过的行业包括驱动,存储,仿真,医疗,通信,都是以Linux为主。因此我认为由于苹果系统的封闭性,他肯定还会长期局限在一些特定的应用环境里,以消费为主。而Linux涉及的行业就太多了,所以其发展趋势应该是更广阔一些。

评分

参与人数 1可用积分 +6 收起 理由
send_linux + 6 很给力!

查看全部评分

论坛徽章:
0
15 [报告]
发表于 2014-05-21 15:13 |只看该作者
如果有时间的话,学习哈。:wink:

论坛徽章:
0
16 [报告]
发表于 2014-05-21 16:00 |只看该作者
MAC OS X系统是闭源的,作者怎么深入分析呢?

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
17 [报告]
发表于 2014-05-21 16:10 |只看该作者
daoxuans 发表于 2014-05-21 16:00
MAC OS X系统是闭源的,作者怎么深入分析呢?


不一定是要开源的吧,微软不也有很多深入理解方面的书么?

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
18 [报告]
发表于 2014-05-22 16:05 |只看该作者
1、谈谈您在现在的开发工作,以后是否会转移到OS X或者iOS平台上来?
   我现在的工作,是Linux工程师,目前应该没有什么机会转到OSX或是IOS平台上,但我两年前就可以用Macbook,对MacOSX还有一定的了解
2、阅读样章后,谈谈您对OS X和iOS的看法,以及他们和Linux、Windows的区别。
   样章读了一部分,个人觉得OSX 和ios是一个太封闭的平台,同时苹果公司提供了很多API和相当完善的文档,对于是OSX和IOS平台上开发普通的应用,这些文档已经完全够用了,但如果是要做OSX和IOS的安全机制或是做一些越狱开发,那么了解MacOSX的内核则是很有必要,但我觉得国内这一块的需要相当来说比较少,做越狱开发的应该不多

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
19 [报告]
发表于 2014-05-22 17:40 |只看该作者
回复 14# mgjrr16888
OS X从Snow Leopard就是认证UNIX(其他认证UNIX有Solaris/AIX/HP UX...),虽然自己没做过OS X的原生应用,但对传统UNIX部分比较熟悉。
OS X的c/c++编译器只是前端部分兼容gcc(4.2.1),具体实现则是clang,基于LLVM,对C++标准的支持早已走在的gcc的前面,默认是C++98编译,需要传-std=c++11来打开C++11的支持,也就是说如今OS X的gcc和Linux的gcc是两个本质不同的东西,版本比较没有意义了。


   

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
20 [报告]
发表于 2014-05-23 15:34 |只看该作者
本帖最后由 gvim 于 2014-05-23 15:35 编辑

@send_linux  
那个 godbanch 写错了吧。。。

1、谈谈您在现在的开发工作,以后是否会转移到OS X或者iOS平台上来?
现在除了必须用windows的地方,开发工作基本都在osx上完成,不过还没有涉及osx的原生app开发,基本用的是跨平台的语言环境。学过一段时间objc,挺好一门语言,方法调用也"继承"了微内核的玩法:消息,所以C++的空对象无法调用方法,但是Objc确可以给空对象发送消息。。。

2、阅读样章后,谈谈您对OS X和iOS的看法,以及他们和Linux、Windows的区别。
没怎么看样张,后面的章节才是干货,可惜没样张。就我了解的部分,bsd层不说了从bsd拿的,和linux区别主要是实现上比如kqueue和epoll,这部分了解BSD的话很快能了解;内存管理部分和netbsd有类似,因为netbsd的mem管理也是从mach弄来的,freebsd借鉴了netbsd的设计,所以mem这部分其实也可以看作是变性的bsd版本(其实是从mach发展来的,不过说成变性的bsd估计能体会的人多一些);驱动层没接触过,osx的机器那样封闭,也没有什么需要自己写驱动吧;调度的话个人感觉比其他实现要省事也先进,上层弄了个GCD(此GCD非彼GCD)进行任务分派,更好的对函数式并发提供支持(objc->block)。除此之外还有opencl也是osx先搞然后现在一些数学库开始支持opencl。总的来说osx的世界其实也很好玩,并没有宣传中哪样封闭。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP