Mach-O文件结构 编辑 每个Mach-O檔案包括一个Mach-O头,然后是一系列的载入命令,再是一个或多个區塊 ,每个块包括0到255个段 。Mach-O使用REL再定位格式控制对符号的引用。Mach-O在两级命名空间中将每个符号编码成“对象-符号名”对,在查找符号时则采用线性搜索法。
Mach-O的基本结构,引用了檔案中数据页的变长「載入指令」表,也用于Accent核心的可执行檔格式中,而这种格式则是基于来自Spice Lisp的理念。
多重架构二进制 编辑 在NeXTSTEP ,OPENSTEP 和Mac OS X 中,可以将多个Mach-O檔案组合进一个多重架构二进制檔案中,以用一个单独的二进制檔案支持多种架构的指令集。例如,一个Mac OS X中的多重架构二进制可以包含32位元 和64位元 的PowerPC 程式碼,或PowerPC和x86 的32位元程式碼,甚至包含32位元的PowerPC程式碼,64位元PowerPC程式碼,32位元x86程式碼和64位元x86(AMD64)。
Mach-O的未来 编辑 由于Darwin 10.0 (对应Mac OS X 10.6 )中对Mach-O文件的结构定义进行了一些重要的修改,因此在Mac OS X 10.6中以默认选项编译的二进制文件只能在10.6平台中运行。其差异之一在于Mac OS X的连接器(dyld
)产生的载入命令无法为早期版本的Mac OS X所理解。另外一个重要改变是Link Edit表(__LINKEDIT段)的作用。在10.6中,新的Link Edit表中的无用資訊会被去除,从而起到压缩的作用,而Mac OS X 10.5及以前的版本无法识别这种新格式。为解决这个问题,在连接时常常需要使用-mmacosx-version-min=
连接器标志。苹果公司作为Mach-O格式的维护者,推荐开发者在建立二进制应用程序的时候使用与其所用的對應SDK版本标志。
参见 编辑 外部链接 编辑 (Apple Inc.) Mach Object Files Mach-O Dynamic Library Reference (页面存档备份,存于互联网档案馆 ) Mach-O Manual Page (页面存档备份,存于互联网档案馆 ) Mach-O Viewer (页面存档备份,存于互联网档案馆 )
mach, 为mach, object文件格式的缩写, 它是一种用于可執行檔, 目标代码, 動態函式庫, 内核转储的檔案格式, 作为a, out格式的替代者, 提供了更强的扩展性, 并提升了符号表中資訊的访问速度, 扩展名无, dylib, 统一类型标识com, apple, mach, binary开发者卡内基梅隆大学, 蘋果公司格式类型二进制文件, 可执行文件, 目标代码, 動態函式庫, 内核转储作为容器arm, sparc, risc, powerpc以及x86的可执行文件, 内存转储曾经为大部分基于mach. Mach O为Mach Object文件格式的缩写 它是一种用于可執行檔 目标代码 動態函式庫 内核转储的檔案格式 作为a out格式的替代者 Mach O提供了更强的扩展性 并提升了符号表中資訊的访问速度 Mach O扩展名无 tt o tt tt dylib tt 统一类型标识com apple mach o binary开发者卡内基梅隆大学 蘋果公司格式类型二进制文件 可执行文件 目标代码 動態函式庫 内核转储作为容器ARM SPARC PA RISC PowerPC以及x86的可执行文件 内存转储Mach O曾经为大部分基于Mach核心的作業系統所使用 NeXTSTEP Darwin和Mac OS X等系统使用这种格式作为其原生可執行檔 库和目标代码的格式 而同样使用GNU Mach作为其微内核的GNU Hurd系统则使用ELF而非Mach O作为其标准的二进制檔案格式 目录 1 Mach O文件结构 2 多重架构二进制 3 Mach O的未来 4 参见 5 外部链接Mach O文件结构 编辑每个Mach O檔案包括一个Mach O头 然后是一系列的载入命令 再是一个或多个區塊 每个块包括0到255个段 Mach O使用REL再定位格式控制对符号的引用 Mach O在两级命名空间中将每个符号编码成 对象 符号名 对 在查找符号时则采用线性搜索法 Mach O的基本结构 引用了檔案中数据页的变长 載入指令 表 也用于Accent核心的可执行檔格式中 而这种格式则是基于来自Spice Lisp的理念 多重架构二进制 编辑在NeXTSTEP OPENSTEP和Mac OS X中 可以将多个Mach O檔案组合进一个多重架构二进制檔案中 以用一个单独的二进制檔案支持多种架构的指令集 例如 一个Mac OS X中的多重架构二进制可以包含32位元和64位元的PowerPC程式碼 或PowerPC和x86的32位元程式碼 甚至包含32位元的PowerPC程式碼 64位元PowerPC程式碼 32位元x86程式碼和64位元x86 AMD64 Mach O的未来 编辑由于Darwin 10 0 对应Mac OS X 10 6 中对Mach O文件的结构定义进行了一些重要的修改 因此在Mac OS X 10 6中以默认选项编译的二进制文件只能在10 6平台中运行 其差异之一在于Mac OS X的连接器 dyld 产生的载入命令无法为早期版本的Mac OS X所理解 另外一个重要改变是Link Edit表 LINKEDIT段 的作用 在10 6中 新的Link Edit表中的无用資訊会被去除 从而起到压缩的作用 而Mac OS X 10 5及以前的版本无法识别这种新格式 为解决这个问题 在连接时常常需要使用 mmacosx version min 连接器标志 苹果公司作为Mach O格式的维护者 推荐开发者在建立二进制应用程序的时候使用与其所用的對應SDK版本标志 参见 编辑胖二进制 通用二进制 Xcode外部链接 编辑Mach O File Format Reference Apple Inc Mach Object Files Mach O Dynamic Library Reference 页面存档备份 存于互联网档案馆 Mach O Manual Page 页面存档备份 存于互联网档案馆 Mach O Viewer 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Mach O amp oldid 78952508, 维基百科,wiki ,书籍,书籍,图书馆,
文章 ,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。