objc -编译Runtime 源码
https://github.com/opensource-apple
:Objective-C是基于C加入了面向对象特性和消息转发机制的动态语言,除编译器之外,还需用Runtime系统来动态创建类和对象,进行消息发送和转发。本文作者通过分析Apple开源的Runtime代码来深入理解OC的Runtime机制。
http://www.csdn.net/article/2015-07-06/2825133-objective-c-runtime/1
而这篇文章的目的,就是教你从苹果提供的Runtime源码,编译出自己的libobjc.A.dylib。进而你可以调试它,深入了解它。http://blog.csdn.net/wotors/article/details/52489464
1-01.下载你电脑对应的objc-runtime
2.
<1>如何搜索到objc4 首先https://opensource.apple.com/ iOS公开源码也少,基本上看MAC里面的源码就可以了。
<2>点击电脑对应的版本,然后com+F搜索objc4 我这里查询到是objc4-706 然后点击,页面显示https://opensource.apple.com/source/objc4/objc4-706/ 然后https://opensource.apple.com/source/objc4可以看到不同的版本。
<3>tarballs 压缩包,把这里改成tarballs 就可以看到所有的压缩包。得到打包的版本.下载对应的版本;
http://opensource.apple.com/tarballs/objc4/
https://opensource.apple.com/tarballs/CF/
<4>objc4 Libc dyld libauto libclosure libdispatch libpthread xnu还差一个launchd项目,在此目录搜不到。于是,直接去Source目录或Tarballs目录⌘+F可搜索到。那就在这里下载个最新版本吧,没有我们要的头文件时再下个旧版就行了。
(1)Libc 库libc是Linux下的ANSI C的函数库。
(2)XNU是内核,就像linux一样,当然,XNU是由Mach、FreeBS D内核以及苹果自己的驱动框架组合而来的。Darwin是操作系统,当然只是基础部分,包括了内核和基本的工具和库,可以类比为FreeBSD或者ArchLinux那样。