Linux和UNIX系统可执行文件兼容性的研究和实现.pdfVIP

Linux和UNIX系统可执行文件兼容性的研究和实现.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2004年第18卷增刊 测 试 技 术 学 报 Vol18 Supp.2004 JOURNALOFTESTANDMEASUREMENT TECHNOLOGY Linux与UNIX系统可执行文件 兼容性的研究与实现 肖文鹏张丽芬 (北京理工大学汁算机系 北京邮编:100081) Linux内核中添加对UNIX的二进制格式的支持,办法是为每种格式提供相应的装载器。其次,对UNIX可执行程序 的系统调用表进行模拟。摄后,通过建立相应的映射表,实现信号处理和错误处理的兼容。) 关键字:二进制兼容、Linux、UNIX、POSIX、操作系统 1概述 一个概念上非常先进的操作系统,但UNIX进入商业化后。由于各开发UNIX的组织,Sun、HP、 IBM、SCO等公司都对UNIX进行修改,不同公司之间的开发者彼此很少考虑相互之间的兼容,因 此要将应用程序从一种UNIX平台移植到另一种UNIX平台是非常困难的。这在一定程度上制约了 UNIX的继续发展。 Linux要取得快速的发展,很重要的一个方面就是考虑如何与UNIX系统应用程序的二进制兼 容(ApplicationBinary 或者类似系统(如SCOUNIX、SunSolaris、FreeBSD)上编译好的可执行文件,都能够在任意一个 标准化的Linux操作系统下运行,从而实现“一次编译,到处运行”,方便用户对同类系统的使用。 在二进制兼容问题的研究上,各种组织都投入了相当大的精力。SCO在其推出的部分UNIX系 序的二进制兼容奠定了坚实的基础。 2研究途径 实现二进制兼容的关键和难点在于,当应用程序与系统核心问进行交互时,如何提供完全的兼 容性。要想解决好这一问题,主要涉及到以下几个方面的内容:UNIX与Linux系统调用上的差异、 基础上,通过在LINUX核心内部添加一个系统模拟和映射层,就能够实现二进制代码的兼容性。 ‘除此之外,要将保存在磁盘上的UNIX可执行程序成功地加载到Linux系统中,并成为一个标 件的装载器。 为了实现这些系统功能,首先对UNIX的进程模型进行了分析和研究,从中整理出基本的实现 思路,从而为之后的二I:作奠定了基础。接着对Linux下程序加载的基本原理和流程进行了的分析, 此提出了在Linux系统上模拟UNIX系统调用的思路,并给出了相应的实现原理。最后,为了让UNIX 可执行程序能够在Linux内核上运行,还对Linux下的信号机制和错误处理进行了相应的扩充,建 +收稿¨期:2004-04-12 16 测试技术学报 立映射表,缩小两个系统之间的差异。系统的基李实现原理可概括为图1。 图1系统原理性框架 3实现方案 3.1程序加载 ELF等。 1)COFF文件格式分析 File 通用对象文件格式(Common Format,COFF)是~种常用的二进制文件格式,它用 Object 于目标文件、库文件和可执行文件。最初由UNIX V引入并作为标准可执行程序的格式,已 System 系统的二进制兼容,首先要解决如何正确地加载UNIX系统中COFF格式的目标文件。 为了实现兼容,首先分析了COFF格式的可执行文件的格式。COFF文件中共有8种数据:文 件头、可选头、段落头、段数据、重定位表、行号表、符号表和字符串表。 的建立时间。r】符号表在该文件中从文件头开始的的偏移量。口符号表中符号记录的个数。fj可选头 的长度。通常它的值是0。口COFF文件的类型及文件的内容等信息。 2)UNIX可执行文件的加载 在实现与UNIX二进制兼容时,要考虑如何处理后两种格式。即使ELF格式的可执行文件,两者的 格式也不完全相同。因此,对Linux内核中的这一部分也要做相应的修改,使

文档评论(0)

bb213 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档