跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

AIX Version 6 中的简化内核扩展

Brad Cobb, AIX Collaboration Center 高级技术顾问, IBM
Brad 十多年来一直帮助解决方案提供者在 IBM AIX 环境中移植、优化、测试和增强他们的应用程序。除了帮助解决方案提供者以外,Brad 还喜欢申请各种专利、发表文章以及在开发人员会议上进行演讲。
Stephen Peckham (speckham@us.ibm.com), 高级软件工程师, IBM
Stephen Peckham 供职于 IBM(地址是:11400 Burnet Road, Austin, TX 78758),Peckham 博士是 IBM Server Group 的一位高级软件工程师,过去 10 年来,他一直是 AIX 内核开发团队的成员。近年来,他一直从事链接编辑器、系统加载器和运行时链接器的工作,当前在专门研究 AIX 虚拟内存系统的性能改进。Peckham 博士拥有康纳尔大学计算机科学博士学位。

简介: 了解为什么需要更改仅提供 32 位内核扩展的应用程序和构建环境来适应 IBM AIX® Version 6。在 AIX Version 6 中,内核环境仅提供 64 位内核。以前,AIX 操作系统提供 32 位和 64 位内核,需要 32 位和 64 位内核扩展。本文将应用两个简单的解决方案帮助您进行转换,并介绍简化内核环境的好处。

发布日期: 2007 年 10 月 11 日
级别: 中级
访问情况 : 3074 次浏览
评论: 


背景知识

IBM AIX® 操作系统过去提供 32 位和 64 位内核,并要求内核扩展开发人员提供 32 位和 64 位内核扩展。为帮助开发人员管理多个内核扩展,AIX 操作系统提供了双模式 存档方法,该存档方法在同一存档文件中同时允许 32 位和 64 位内核扩展。在加载时,系统加载器加载相应位的内核扩展。

从 AIX Version 6 开始,AIX 操作系统通过 提供 64 位内核简化其内核环境。AIX Version 6 将根据 AIX 二进制兼容性所定义的方式维护与先前 AIX 版本的二进制兼容性(请参见参考资料)。

简化的内核扩展环境

由于 AIX Version 6 去除了 32 位内核,因此大大减少了内核扩展的开发工作。内核扩展开发人员将无法在 AIX Version 6 上构建甚至测试 32 位内核扩展。内核环境的减少意味着提高了投资回报率,同时减少了开发、构建、测试、打包和管理内核扩展所需的资源。

为支持 AIX Version 6 上的 64 位内核扩展,从内核库和内核导入文件删除了对构建 32 位内核扩展的支持。修改了 <sys/types.h> 头文件,这样,如果定义 _KERNEL,而不定义 __64BIT__,则会出现编译错误。由于仅能构建 64 位内核扩展,可能需要更改某些内核扩展构建环境来避免构建错误。

仅 64 位内核的效果

使用此简化的内核环境需要注意以下事项:

  • 将影响仅提供 32 位内核扩展的应用程序。
  • 在 AIX Version 6 上构建内核扩展时,将影响提供 32 位和 64 位内核扩展的应用程序构建环境。

直接或间接通过第三方代码要求仅支持 32 位内核扩展的应用程序将无法加载内核扩展。根据应用程序逻辑,无法加载内核扩展可能导致应用程序在 AIX Version 6 上无法使用或严重受阻。这不是 AIX 二进制兼容性语句的破坏,而是不支持 32 位内核扩展。

提供 32 位和 64 位内核扩展的应用程序需要在 AIX Version 6 构建环境中稍微进行更改。由于在 AIX Version 6 中去除了 32 位内核和 32 位内核扩展构建环境,因此需要修改构建 32 位和 64 位内核扩展的自动化构建环境,以适应单一的 64 位内核扩展环境。

没有从 AIX Version 6 去除对双模式内核扩展的支持,删除 32 位内核并不影响二进制兼容性。在 AIX Version 5 上构建的双模式内核扩展可继续在 AIX Version 6 上运行,但仅能在 64 位模式下运行。

下面的部分提供了转换到 AIX Version 6 的两个解决方案。

解决方案 I

现在,构建 32 位和 64 位内核扩展的自动化构建环境在构建 32 位内核扩展之前必须检查操作系统版本。简单检查一下即可,如:

#!/bin/ksh
Version='uname –v'
if [ $Version –gt  "5" ]
then
	# Build 64-bit kernel extension only
else
	# Build both 32-bit and 64-bit kernel extensions
fi	

上面的逻辑将在 AIX Version 5 上构建 32 位和 64 位内核扩展,而对于 AIX Version 6,仅构建 64 位内核扩展。

解决方案 II

可以修改支持构建 32 位和 64 位内核扩展的 Makefile。用于构建双模式内核扩展的典型 Makefile 文件包含的行类似于以下代码:

kext: kext32 kext64:
        ar –X32_64 –crf kext kext32 kext64

kext32: …
        ld –b32 –o $@ …

kext64: …
        ld –b64 –o $@ …

other-makefile-lines


可以将此内容转换为 Makefile 文件,并通过修改为以下行构建仅 64 位内核扩展:

kext: …
ld –b64 –o $@ …

other-makefile-lines

使用此解决方案,内核扩展的名称没有改变,因此无需进行修改,可以继续使用现有的配置方法。

总结

减少 AIX Version 6 支持的内核数可以为 IBM 和内核扩展提供商降低开发成本。开发、构建、测试、打包和维护多个内核和内核扩展的资源减少进而可以带来成本的节约和投资回报的提高。


参考资料

学习

获得产品和技术

  • IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。

  • Quick links for AIX fixes:获得 AIX 更新。

  • IBM 修复中心:这个站点为您的系统中的软件、硬件和操作系统提供了修复程序和更新。

讨论

作者简介

Brad 十多年来一直帮助解决方案提供者在 IBM AIX 环境中移植、优化、测试和增强他们的应用程序。除了帮助解决方案提供者以外,Brad 还喜欢申请各种专利、发表文章以及在开发人员会议上进行演讲。

Stephen Peckham 供职于 IBM(地址是:11400 Burnet Road, Austin, TX 78758),Peckham 博士是 IBM Server Group 的一位高级软件工程师,过去 10 年来,他一直是 AIX 内核开发团队的成员。近年来,他一直从事链接编辑器、系统加载器和运行时链接器的工作,当前在专门研究 AIX 虚拟内存系统的性能改进。Peckham 博士拥有康纳尔大学计算机科学博士学位。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=260927
ArticleTitle=AIX Version 6 中的简化内核扩展
publish-date=10112007
author1-email=bcobb@us.ibm.com
author1-email-cc=
author2-email=speckham@us.ibm.com
author2-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。