将 Linux 应用程序移植到 64 位系统上
将 Linux 应用程序移植到 64 位系统上
平滑迁移的技巧和技术
打印本页
<noscript></noscript> <script type="text/javascript"></script>将此页作为电子邮件发送
<noscript></noscript><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- this content will be automatically generated across all content areas --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->级别: 初级
Harsha S. Adiga (haradiga@in.ibm.com), 软件工程师, IBM
2006 年 5 月 18 日
随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux? 软件已经变得比以前更为重要。在本文中,您将学习如何在进行语句声明、赋值、位移、类型转换、字符串格式化以及更多操作时,防止出现可移植性缺陷。<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
Linux 是可以使用 64 位处理器的跨平台操作系统之一,现在 64 位的系统在服务器和桌面端都已经非常常见了。很多开发人员现在都面临着需要将自己的应用程序从 32 位环境移植到 64 位环境中。随着 Intel? Itanium? 和其他 64 位处理器的引入,使软件针对 64 位环境做好准备变得日益重要了。
与 UNIX? 和其他类 UNIX 操作系统一样,Linux 使用了 LP64 标准,其中指针和长整数都是 64 位的,而普通的整数则依然是 32 位的。尽管有些高级语言并不会受到这种类型大小不同的影响,但是另外一些语言(例如 C 语言)却的确会受到这种影响。
将应用程序从 32 位系统移植到 64 位系统上的工作可能会非常简单,也可能会非常困难,这取决于这些应用程序是如何编写和维护的。很多琐碎的问题都可能导致产生问题,即使在一个编写得非常好的高度可移植的应用程序中也是如此,因此本文将对这些问题进行归纳总结,并给出解决这些问题的一些方法建议。
![]()
![]()
回页首
![]()
![]()
回页首
![]()
![]()
回页首
结束语
主流的硬件供应商最近都在扩充自己的 64 位产品,这是因为 64 位平台可以提供更好的性能、价值和可伸缩性。32 位系统的限制,特别是 4GB 的虚拟内存上限,已经极大地刺激很多公司开始考虑迁移到 64 位平台上。了解如何将应用程序移植到 64 位体系结构上可以帮助我们编写可移植性更好且效率更高的代码。参考资料
学习您可以参阅本文在 developerWorks 全球站点上的 英文原文。
64-Bit Programming Models: Why LP64? 介绍了有关各种 64 位编程模型的更多细节知识和有关 LP64 的争论。
请在 Wikipedia 上了解 32 位系统所具有的 2038 年问题。
请阅读 “将企业应用程序从 UNIX 移植到 Linux”(developerWorks,2005 年 2 月),了解有关将大型多线程应用程序移植到 Linux 上的技巧和内幕。
“Porting Intel applications to 64 bit Linux PowerPC” 讨论了在将 Linux 从 IA32 移植到 PowerPC 上时所要考虑的一些问题。
Linux Online(linux.org) Linux distributions site 提供了有关发行版的丰富信息,包括 64 位系统上的发行版。
developerWorks Linux on Power Architecture developer's corner 是为在基于 POWER 硬件的 Linux 上运行的应用程序的程序员和开发人员准备的参考资料。
penguinppc.org 是专为 PowerPC 系统上的 Linux 用户准备的一个社区站点。
在 developerWorks Linux 专区 中可以找到为 Linux 开发人员准备的更多参考资料。
随时关注 developerWorks 技术事件和网络广播。
获得产品和技术
索取免费的 SEK for Linux,这有两张 DVD,包括最新的 IBM for Linux 试用版软件,包括 DB2?、Lotus?、Rational?、Tivoli? 和 WebSphere?。
在您的下一个 Linux 开发项目中采用 IBM 试用版软件,这可以从 developerWorks 上直接下载。
讨论
通过参与 developerWorks blogs 来加入 developerWorks 社区。