Chinaunix

标题: 大小端的问题 [打印本页]

作者: zerocool_08    时间: 2008-11-18 18:47
标题: 大小端的问题
sparc在默认的情况下工作在大端模式下, 由 PSTATE.cle 决定 ,有特权指令是可以写 PSTATE, 但在用户态,能否设定以小端模式从内存读数据?
作者: zerocool_08    时间: 2008-11-19 13:40
标题: 回复 #1 zerocool_08 的帖子
up

请大家指点一下啊 , 看了很多文档,都没有提到这方面的。
作者: li_hunter    时间: 2008-11-21 10:48
大小端的问题通常是由于应用在大型机(比如SPARC)架构与x86/x64架构之间通信或应用在不同机器架构间移植发生的问题。一般对于网络通信,消息包格式都会使用中性格式,比如通过char格式,或通过一些协议进行转换,比如通过hton?()和ntoh?()进行转换。如果是移植,通常会一次性进行修改应用,达到一劳永逸的目的。对于LZ询问的这个问题,我虽然也不知道SPARC上是否存在用户态的接口,但我个人认为即使有也不值得这样做,原因是这样的接口肯定不属于稳定的接口,说不定在今后的哪个Solaris版本中就被修改或删除了,而且这肯定是Sun专有的接口,而大小端的问题在其他产商也存在的,你这样修改应用后,应用的移植性就很差了。所以,我建议对应用进行适当修改来避免产生架构上的大小端问题。
作者: zerocool_08    时间: 2008-11-21 14:41
标题: 回复 #3 li_hunter 的帖子
没办法, 需求决定,在sparc上, 输入的数据都是小端格式, 如果没有用户态去取小端格式数据的话,只能自己转换,但效率肯定不高。

我想问一下, 有没有saloris系统,在安装的时候,可以指定就是安小端方式安装的?

[ 本帖最后由 zerocool_08 于 2008-11-21 14:42 编辑 ]
作者: li_hunter    时间: 2008-11-23 12:10
标题: 回复 #4 zerocool_08 的帖子
可以选用Solaris 10 x86/x64系统。
作者: zerocool_08    时间: 2008-11-23 16:01
标题: 回复 #5 li_hunter 的帖子
Solaris 10 x86/x64系统 能装在sparc上吗?
作者: li_hunter    时间: 2008-11-24 21:07
标题: 回复 #6 zerocool_08 的帖子
你误会了,Solaris 10 x86/x64当然不能安装在SPARC服务器上。我的意思是:如果你的应用在开发时是采用小端模式才能正确解析内存读数,你完全可以将应用在Soalris 10 x86/x64上重新编译(而不必改程序),这样取数就正确了。当然,你将弃SPARC服务器而采用x86/x64服务器。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2