2008-03-18

isainfo:判断solaris运行在64位还是32位

运行
root@/# isainfo -v
64-bit sparcv9 applications
32-bit sparc applications
表示运行在64位

如果只输出
32-bit sparc applications
表示运行在32位

2008-03-17

/bin/sh,/sbin/sh,/usr/bin/sh的区别

文件详细信息,如下:
------------------------------------------------------------------------------------------
root@/# ls -l /bin/sh
-r-xr-xr-x 4 root root 95480 Mar 26 2006 /bin/sh
root@/# ls -l /sbin/sh
-r-xr-xr-x 2 root root 302544 Mar 26 2006 /sbin/sh
root@/# ls -l /usr/bin/sh
-r-xr-xr-x 4 root root 95480 Mar 26 2006 /usr/bin/sh
------------------------------------------------------------------------------------------
file执行如下:
------------------------------------------------------------------------------------------
root@/# file /bin/sh
/bin/sh: ELF 32-bit MSB executable SPARC Version 1, dynamically
linked, stripped
root@/# file /sbin/sh
/sbin/sh: ELF 32-bit MSB executable SPARC Version 1, statically
linked, stripped
root@/# file /usr/bin/sh
/usr/bin/sh: ELF 32-bit MSB executable SPARC Version 1, dynamically
linked, stripped
------------------------------------------------------------------------------------------
链接动态库信息,如下:
------------------------------------------------------------------------------------------
root@/# ldd /bin/sh
libgen.so.1 => /usr/lib/libgen.so.1
libsecdb.so.1 => /usr/lib/libsecdb.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libc.so.1 => /usr/lib/libc.so.1
libcmd.so.1 => /usr/lib/libcmd.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Sun-Fire-V890/lib/libc_psr.so.1
root@/# ldd /sbin/sh
ldd: /sbin/sh: file is not a dynamic executable or shared object
root@/# ldd /usr/bin/sh
libgen.so.1 => /usr/lib/libgen.so.1
libsecdb.so.1 => /usr/lib/libsecdb.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libc.so.1 => /usr/lib/libc.so.1
libcmd.so.1 => /usr/lib/libcmd.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Sun-Fire-V890/lib/libc_psr.so.1
------------------------------------------------------------------------------------------

动态链接的bin执行的时候使用共享的libraries.他们的文件更小,而且当
libraries更新的时候,他们自动使用更新的libaries。
静态链接bin包含了所有的代码,不需要使用共享的libraries. 他们的文件大小
比动态链接的bin文件要大。
如果系统 "broken"并且libraries被删除了,损坏了,或者/usr目录没被
mounted,/sbin/sh仍然可以执行。所以推荐大家使用/sbin/sh 作为缺省的root
shell。

/bin/sh和/sbin/sh的区别

今天无意中发现/bin/sh和/sbin/sh存在区别,如下:
-------------------------------------------------------------------------
root@/# ls -l /bin/sh
-r-xr-xr-x 4 root root 95480 Mar 26 2006 /bin/sh
root@/# ls -l /sbin/sh
-r-xr-xr-x 2 root root 302544 Mar 26 2006 /sbin/sh
root@/#
-------------------------------------------------------------------------
google后知道,/sbin/sh 是静态链接的, /bin/sh是动态链接的。静态链接的sh虽
然比动态链接的size大,但它有个好处就是它的运行不依赖共享库。也就是说如果
系统崩溃导致库文件丢失或损坏,它仍然能执行。我们推荐用/sbin/sh作为root的
默认shell。

2008-03-04

【原创】解决远程桌面无法启动失败的方法。

今天用在windows2003下使用"远程桌面",启动后提示:
---------------------------
远程桌面连接已断开
---------------------------
由于这台计算机没有终端服务器客户端访问许可证,远程会话被中断。
请跟服务器管理员联系。
---------------------------
确定 帮助
---------------------------


Google后,解决方法如下:
1、在客户端计算机上,打开注册表编辑器;
2、定位到下面的键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing
3、删除整个MSLicensing键值,
4、然后退出注册表编辑器;
5、在重新连接到终端服务器,即可。