页面

2011年4月14日星期四

Linux Day1 如何查看系统版本

自己装的Ubuntu10.10-64bit,但是屏幕分辨率却是无法达到显示器的最佳分辨率。以为是安装的版本不对,(其实这个时候我已经不记得自己安装的是哪个版本的系统了)所以上网搜索了一下查看系统版本的方法。有以下几个有效命令:
cat /proc/version
      Linux version 2.6.35-28-generic (buildd@allspice) (gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) ) #49-Ubuntu SMP Tue Mar 1 14:39:03 UTC 2011
cat /etc/issue
      Ubuntu 10.10 \n \l 
uname -a
      Linux ubuntu 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:39:03 UTC 2011 x86_64 GNU/Linux
其实这里64位已经出现了,但是自己对这些描述没有任何idea是什么意思,所以只有继续下一条命令
file /sbin/init
      /sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
终于直接显示了64-bit,哈哈。然后还有以下有效命令:
getconf LONG_BIT
      64
在这里LONG_BIT等于64,这不得不让我想象LONG_BIT和所谓的多少位的系统有怎样的联系?先记一笔,以后再来查清楚。
然后我使用了
getconf -a 得到了许多数据。其中有很多名称中包含64或32,而所有包含64的后面都有数据,而包含32的却没有数据。我又想,这或许也有什么联系吧?!

带着疑惑寻找答案是最好的学习方式,果然。。
我在hylybing的博客--“怎样查看自己的LINUX是32位还是64位”一文中找到了关于32位与64位的解释。
操作系统只是硬件和应用软件中间的一个平台。

32位操作系统针对的32位的CPU设计。
64位操作系统针对的64位的CPU设计。

我们的CPU从原来的8位,16位,到现在的32位和64位。
cpu处理计算的时候“数据”和“指令”是不同对待的。
8位的CPU,一次只能处理一个8位的“数据”或者一个8位的"指令"。比如'00001101'.
又比如:“+1”这个运算,你要先指示CPU做“+”,完成后再输入“1”数据给CPU。
8位的CPU优点是设计简单,处理速度比较快。
缺点就是:软件设计复杂,繁琐。不利于计算机的发展。
后来推出了16位的CPU,我们就可以一次处理两个字节(16位)的数据了,比如“加1”这个命令。“加”是一个指令,占用8个位,余下的8位我们可以存放数据“1”了。
32位的CPU就更加方便了,我们就可以一次处理一个a=a+b这样的命令了。
优点:简化了软件设计的复杂度
缺点:硬件设计更加复杂,计算速度下降。
一般来讲32位的CPU对于我们来讲是最理性的CPU,对于软件开发来讲足够了。
但是2的32次方 = 4294967296bit = 4G左右
很显然32位CPU只有4G左右的内存寻址空间,对于一些服务器来讲4G的内存的远远不够的了。我们需要更加大的内存寻址空间的话就需要对CPU进升级。64位CPU就这样诞生了。64位CPU的内存寻址空间是多少你算算看!
2的64次方(理论上)。
但是现在的AMD和Inter的64位CPU并不是真正意义上的64CPU,只是进行了部分64位的改进,比如64位的内存寻址等。
要是真的全部都是64位的了,那么现在市场上的软件将全部被淘汰不能使用了~呵呵,想像一下会是什么样子。
64位的操作系统针对64位CPU设计的,增加了一些64位的指令,但还是和32兼容的。对于我们普通用户来讲64位系统意义不大。

这最后一句让我十分尴尬,原来所谓的64位与32位其实差别并不大啊。但是根据机器的配置,我的cpu或许是64位的,在64位下安装32位的系统是否会有什么差别呢?再记一笔。。

特发此文,以纪念自己的进步。

没有评论:

发表评论