文章目录

  • 指令集架构
  • 命令
  • uname
  • dpkg
  • getconf
  • arch
  • file



有时候在 github 上下载安装包的时候需要选择自己 CPU 的架构情况了。会提供不同操作系统的三种架构, x86 的 32 位架构和 64 位架构,以及 arm 架构。

CPU 的intel i5,架构的话现在基本上是 x64,或者说是 amd64.

指令集架构

主要分两大类.

复杂指令集是 x86、x64(也叫 x86-64, amd64) 两种架构,专利在 Intel 和 AMD 两家公司手里, 该架构 CPU 主要是 Intel 和 AMD 两家公司,这种 CPU 常用在 PC 机上,包括 Windows,macOS 和 Linux。

简单指令集是 arm 一种架构,专利在 ARM 公司手里,该架构 CPU 主要有高通、三星、苹果、华为海思、联发科等公司。这种 CPU 常用在手机上,包括安卓和苹果。

再多说一句,之前也写过 linux 发展的一些历史,就和操作系统一样,我们能设计出一个全新的操作系统,但是各种软件都需要在新的系统上重新开发,软件商愿不愿意就不一定了。

同样的,我们也能设计出一个新的指令集架构,但是还是生态的问题,现在安卓、苹果的操作系统都是在 arm 架构上的,所以你的新指令集架构还需要安卓再适配一个新的操作系统,安卓不愿意的话,你可以自己出一个新的操作系统,但又回到了最初的问题,各种软件也需要重写。

如果兼容之前的指令集架构或者操作系统的话,那可能就绕不开各种专利的问题。

命令

uname

uname -a 命令可以直接显示 Linux 系统架构的命令,安几乎可以工作在所有 Linux/Unix 系统当中。

dpkg

dpkg 的命令可用于查看 Debian/ Ubuntu 操作系统是 32 位还是 64 位,此命令只适用于基于 Debian 和 Ubuntu 的 Linux 发行版。

在终端中执行如下命令:

dpkg --print-architecture
如果当前 Linux 是 64 位则输出 amd64,是 32 位则会输出 i386。

getconf

getconf 命令主要用于显示系统变量配置,我们也可使用如下参数来查看 Linux 系统架构:

getconf LONG_BIT

arch

arch 命令主要用于显示操作系统架构类型,与 uname -m 命令非常类似。如果输出 x86_64 则表示为 64 位系统,如果输出 i686 或 i386 则表示为 32 位系统。

file

file 命令可以配合 /sbin/init 这个特殊参数来查看系统架构类型(/sbin/init 在 Ubuntu 15.10 里面是链接到/lib/systemd/systemd 的):

file /sbin/init