【文件属性】:
文件名称:Solaris(64 位)开发者指南.
文件大小:1.11MB
文件格式:PDF
更新时间:2016-04-22 07:26:55
Solaris 64位 开发者指南.
SolarisTM操作环境的功能为满足用户需求而不断扩展。Solaris操作环境旨在完全支持32位和64位体系结构。Solaris操作环境为可以使用大文件和大虚拟地址空间的64位应用程序提供生成和运行环境。与此同时,Solaris操作环境继续为32位应用程序提供最大程度的源代码兼容性、最大程度的二进制兼容性和互操作性。实际上,在Solaris64位实现上运行和生成的大多数系统命令都是32位程序。
目录
前言..........................................................................................................................................................7
1
64位计算 ..............................................................................................................................................11
突破4GB限制 .................................................................................................................................... 11
突破大地址空间限制 ........................................................................................................................ 13
2
何时使用64位 ....................................................................................................................................15
主要功能 .............................................................................................................................................. 16
大虚拟地址空间 ......................................................................................................................... 16
大文件 ........................................................................................................................................... 16
64位运算 ...................................................................................................................................... 17
取消系统限制 .............................................................................................................................. 17
互操作性问题 ..................................................................................................................................... 17
内核内存读取器 ......................................................................................................................... 17
/proc限制 .................................................................................................................................... 17
64位库 .......................................................................................................................................... 17
评估转换工作 ..................................................................................................................................... 18
3
比较32位接口和64位接口 .............................................................................................................19
应用编程接口 ..................................................................................................................................... 19
应用程序二进制接口 ........................................................................................................................ 19
32位应用程序和64位应用程序之间的兼容性 .......................................................................... 20
应用程序二进制对象................................................................................................................. 20
应用程序源代码 ......................................................................................................................... 20
设备驱动程序 .............................................................................................................................. 20
运行的是哪种Solaris操作环境? .................................................................................................. 20
3
4
转换应用程序 ......................................................................................................................................23
数据模型 .............................................................................................................................................. 23
实现单一源代码 ................................................................................................................................. 26
功能测试宏 .................................................................................................................................. 26
派生类型 ...................................................................................................................................... 26
文件 ................................................................................................................... 26
文件 ..................................................................................................................... 27
工具支持 .............................................................................................................................................. 29
用于32位和64位环境的lint ................................................................................................ 29
转换为LP64的指导原则 .................................................................................................................. 32
请勿假设int和指针的长度相同 ........................................................................................... 32
请勿假设int和long的长度相同 .......................................................................................... 33
符号扩展 ...................................................................................................................................... 33
使用指针运算而不是地址运算 ............................................................................................... 35
对结构重新压缩 ......................................................................................................................... 36
检查联合类型 .............................................................................................................................. 37
指定常量类型 .............................................................................................................................. 37
注意隐式声明 .............................................................................................................................. 38
sizeof 是 unsigned long ...........................................................................................................39
使用强制类型转换说明意图 ................................................................................................... 39
检查格式字符串转换操作 ........................................................................................................ 39
其他注意事项 ..................................................................................................................................... 41
长度增加的派生类型................................................................................................................. 41
对显式32位与64位原型使用#ifdef ................................................................................... 41
算法更改 ...................................................................................................................................... 41
入门清单 .............................................................................................................................................. 42
程序样例 .............................................................................................................................................. 42
5
开发环境 ...............................................................................................................................................45
生成环境 .............................................................................................................................................. 45
头文件 ........................................................................................................................................... 45
编译器环境 .................................................................................................................................. 46
32位和64位库 ............................................................................................................................ 47
链接目标文件 ..................................................................................................................................... 47
LD_LIBRARY_PATH环境变量 ...................................................................................................... 47
目录
Solaris(64位)开发者指南 • 2006年11月
4
$ORIGIN关键字 ........................................................................................................................... 48
对32位和64位应用程序进行打包 ............................................................................................... 48
库和程序的位置 ......................................................................................................................... 48
打包原则 ...................................................................................................................................... 49
应用程序命名约定 ..................................................................................................................... 49
Shell脚本包装 ..................................................................................................................................... 49
/usr/lib/isaexec二进制文件................................................................................................ 50
isaexec(3c)接口 ......................................................................................................................... 51
调试64位应用程序 ........................................................................................................................... 51
6
高级主题 ...............................................................................................................................................53
SPARCV9ABI特征 ........................................................................................................................... 53
栈偏移量 ...................................................................................................................................... 54
SPARCV9ABI的地址空间布局 .............................................................................................. 54
SPARCV9ABI文本和数据的位置 ......................................................................................... 55
SPARCV9ABI的代码模型....................................................................................................... 55
AMD64ABI特征 ................................................................................................................................ 56
amd64应用程序的地址空间布局 ........................................................................................... 57
对齐问题 .............................................................................................................................................. 58
进程间通信.......................................................................................................................................... 59
ELF和系统生成工具 ......................................................................................................................... 60
/proc接口 ........................................................................................................................................... 60
sysinfo(2)的扩展 .............................................................................................................................. 60
libkvm和/dev/ksyms ........................................................................................................................ 61
libkstat内核统计信息 ................................................................................................................... 61
stdio的更改 ....................................................................................................................................... 62
性能问题 .............................................................................................................................................. 62
64位应用程序的优点 ................................................................................................................ 62
64位应用程序的缺点 ................................................................................................................ 62
系统调用问题 ..................................................................................................................................... 62
EOVERFLOW的含义 ....................................................................................................................... 62
谨慎使用ioctl() ....................................................................................................................... 63