如何查找我的电脑和Ubuntu的架构?

运行uname -a命令时,我得到的输出结果是
41-Ubuntu SMP Mon Aug 13 17:59:54 UTC 2012 i686 athlon i386 GNU/Linux

请问有人可以解释一下为什么要同时支持 i386 和 i686 吗?
我的电脑架构是什么,我使用的是哪个版本的 Ubuntu(32位还是64位)?

这是完整的uname -a命令输出吗?我猜测一些字段,如内核名称、内核版本等可能缺失。 - Ankit
类似问题:http://askubuntu.com/q/41332/178596 - Wilf
你使用的是哪个Ubuntu版本? - coding_ninza
5个回答

命令是 uname -m

打开终端尝试使用 uname -m 命令。这将显示您的操作系统架构。

如果它输出类似于 ix86,其中 x 是 3、4、5 或 6,则您的操作系统为32位。

您还可以通过打开“系统监视器”并进入系统选项卡来查看Ubuntu的架构。

enter image description here

硬件平台与处理器类型的区别
硬件平台(由-i开关给出)与CPU类型(由-p开关给出)之间存在差异。
硬件平台告诉我们内核构建的架构(尽管可能针对较新版本进行了优化)。它可以是i386。
然而,处理器类型指的是您机器上实际的处理器类型,例如i686(P4及更高版本构建)。
感谢这个页面上的Schotty。这里是Unix stackexchange网站上关于同一主题的答案,尽管我觉得语言不够清晰(完全是我的错)。

在 uname -m 上,它显示 i686,这是什么意思? 而我的系统监视窗口显示 "Release 11.10(oneiric) Kernel Linux 3.0.0-26-generic GNOME 3.2.1" 它没有指明任何东西,像你图片中显示的那样。 - python_beginner
i686意味着32位 - Anwar
4@Ubunu_beginner,i386和i686都属于x86处理器系列的一部分。它们只是指代处理器平台的特定时代。i386是一个较旧的平台(90年代初?),当时机器中使用的是386处理器。然后这个平台升级到了486处理器,它与386具有相同的基本指令集,只是更快、更新。586是另一个升级版本,也是“奔腾”这个术语开始流行的时候。最终,所有这些都被纳入了x86架构的名称之下。i686只是指代x86架构的第六代。 - Ankit
在Ubuntu 17.10中,系统监视器中没有系统选项卡。 - coding_ninza
@coding_ninza 你可以在设置 -> 关于部分找到它。你找到了吗? - Anwar
是的,在打开设置后,我在设置中找到了它。我点击详细信息,然后它显示操作系统类型为64位。 - coding_ninza
@Anwar,你从哪里得到这个看起来很酷的系统监视器?我有Ubuntu 16.04,但没有那样花哨的东西。 - Nathan majicvr.com
1@frank 谢谢。实际上,在 GNOME 迁移到版本 3 之前,它是 gnome-system-monitor。我忘记了主题的名称。但是你可以通过安装 mate-system-monitor 应用程序来使用相同的系统监视器。 - Anwar
@Anwar 我问这个问题是因为我的确没有“系统”选项卡。 - Nathan majicvr.com
是的,我知道。他们改变了很多。@frank - Anwar

使用Anwar的答案来找到架构。
现在这里是你问题的第二部分的解释。
下面是uname的输出:在我的情况下,我安装了32位版本。i386和i686都指的是32位版本。uname如果是64位版本,将返回x86_64。
$ uname -a
Linux devav2 3.2.0-30-generic-pae #48-Ubuntu SMP Fri Aug 24 17:14:09 UTC 2012 i686 i686 i386 GNU/Linux
  • Linux(-s) - 操作系统/内核名称
  • devav2(-n) - 主机名
  • 3.2.0-30-generic-pae (-r) - 内核版本
  • 48-Ubuntu SMP Fri Aug 24 17:14:09 UTC 2012 (-v) - 带时间和SMP的内核版本,SMP表示对多处理器支持
  • i686(-m) - 机器硬件名称
  • i686(-p) - 处理器类型
  • i386(-i) - 硬件平台
  • GNU/LINUX(-o) - 操作系统名称
  •  -a, --all                print all information, in the following order,
                                 except omit -p and -i if unknown:
      -s, --kernel-name        print the kernel name
      -n, --nodename           print the network node hostname
      -r, --kernel-release     print the kernel release
      -v, --kernel-version     print the kernel version
      -m, --machine            print the machine hardware name
      -p, --processor          print the processor type or "unknown"
      -i, --hardware-platform  print the hardware platform or "unknown"
      -o, --operating-system   print the operating system
    

    1uname -m将返回x86_64,如果是64位版本的话 - 这就是我要找的。谢谢。 - RBT

    对于基于Debian Linux的系统,一个可能的命令是dpkg-architecture -q DEB_BUILD_ARCH
    在64位系统上,它返回:
    $ dpkg-architecture -q DEB_BUILD_ARCH
    amd64
    

    在32位系统上,它返回:
    $ dpkg-architecture -q DEB_BUILD_ARCH
    i386
    

    13为了避免安装dpkg-dev,你可以直接运行dpkg --print-architecture - Callum Rogers
    @CallumRogers 你能把这个评论转换成回答吗? - SebMa

    如果你只想要架构信息,你可以尝试一下叫做"arch"的命令。它非常简洁明了,但不符合POSIX标准。


    3获取系统架构似乎有点过头了。根据您提供的链接,“Formake是一个用于开发可移植软件构建系统的工具包”(尽管我不怀疑它具有检查架构的实用性),而且还处于alpha版本,所以似乎没有人会为了这个简单的目的而安装它。如果您与该项目有关联,请披露一下。 - Zanna