广告
返回顶部
首页 > 资讯 > 操作系统 >Linux 中32位与64位的区别是什么
  • 387
分享到

Linux 中32位与64位的区别是什么

2023-06-28 17:06:42 387人浏览 八月长安
摘要

这篇文章主要为大家分析了linux 中32位与64位的区别是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux 中32位与64位的区别是什么”的知

这篇文章主要为大家分析了linux 中32位与64位的区别是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux 中32位与64位的区别是什么”的知识吧。

在通用PC领域,不论是windows还是linux界,我们都会经常听到”32位”与”64位”的说法,类似的还有”x86″与”x86_64″,”i386″与”amd64″,这两组概念之间有着怎样的联系和区别呢?

实际上这两组概念涉及了三个层次:硬件,系统和软件。

1、硬件

早期的intel处理器,如i386,486,586,奔腾系列的CPU架构,都是32位的(32位的寄存器,32位的虚拟地址空间),统称为x86架构。

随着技术的发展,32位CPU已经无法满足需求,intel与AMD采用不同的方法开发64位架构的CPU,intel使用与x86完全不同的IA64架构,由于与原来的X86完全不兼容,因此在PC领域没有得到应用,只在服务器领域有一些使用。

而AMD开发的架构称为amd64(将寄存器扩充为64位,支持64位虚拟地址),能够完全兼容x86指令集,不用任何修改就能运行老的操作系统和应用软件,在PC界得到广泛的应用,现在市场上几乎所有的PC用途的CPU都是支持amd64指令集的了。

当然intel也很快开发出支持该指令集的CPU,不过intel将其称为x64架构,而不是用amd64这个名字。而在linux中则称为x86_64,即x86架构的64位扩展。

有关x86_64的详细描述可翻阅《深入理解计算机系统》一书。

在linux中查看CPU是否64位的方法:如果/proc/cpuinfo内的flags字段中含有”lm”,则表示使用的是64位CPU(运行“grep ‘lm’ /proc/cpuinfo”命令,输出不为空)。

2、系统

系统同样可分为32位与64位。在x86_64架构的CPU出现之前,PC的操作系统都是用32位,例如windows 2000,xp,当时的unix,linux等。

在x86_64架构出现后,系统也就有了两个版本:32位和64位,两者的主要区别在于与硬件体系结构相关的操作中。

由于x86_64架构完全兼容x86架构,因此,32位的系统完全可以在x86_64位上运行,只不过它只使用了x86部分,没有完全发挥硬件的功能而已。

而64位系统专门针对64位的扩展功能而开发的,就是为了最大限度地发挥硬件的能力,它无法在x86架构的cpu上运行。

另外,不论是windows还是linux,驱动程序都需要加载到内核空间中,因此它的类型(32位或64位)需要跟系统完全相同。

系统与CPU的关系如下图所示:

Linux 中32位与64位的区别是什么

查看linux系统是32位还是64位的方法:执行shell命令“arch”,显示为x86_64表示当前系统为64位,显示为i386,i486等表示系统是32位的。

3、软件

在系统上运行的应用软件同样有32位和64位之分,老的应用软件运行在32位CPU及32位系统中,属于32位软件。

出现了64位系统之后,也出现了专门运行在64位系统,能够最大限度使用64位系统的扩展功能的原生64位程序。

对于C程序来说,64位程序相比32位程序最大的区别就是int,long以及指针数据类型的长度都是64位的,可以使用64位的虚拟地址空间。

实际远不止这些,编绎器在将64位C程序翻译成汇编语言或者机器语言时,会尽量使用64位处理器的寄存器,尽量避免访问内存,例如把函数的参数,及局部变量优先放在寄存器,而不是在用户栈中。

另外在64位系统中,为了兼容数量众多的老的应用程序,系统都会增加一个虚拟层,用来翻译x86指令,这样32位程序也可以在64位系统中运行(windows和linux都支持)。

同样在64位系统中,使用64位编绎器一般也可以选择编译成32位程序(GCc使用-m32编译成32位可执行文件)。

另外在PC上,软件能否运行,只需看系统是否支持即可,可以不用理会CPU的架构。软件与系统的关系如下图所示:

Linux 中32位与64位的区别是什么

linux中查看可执行文件是32位还是64位的方法:执行shell命令“file /usr/bin/xxx”, 如果是32位程序,显示为”ELF 32-bit …”;如果是64位,则显示为:”ELF 64-bit…”。

4、linux发行版与内核

在linux发行版中,一般会针对不同的架构发布不同的安装光盘,以debian为例,可用于PC的就有i386和amd64这两个版本。

根据上面的描述,这两个版本的系统都可以安装在使用64位的CPU的机器上,而使用32位CPU的机器上则只能安装i386版本的系统。

在debian amd64光盘中带的内核及软件包全都是64位版本的,而debian i386光盘中则有32位和64位的内核,以及32位的软件,可能是考虑到有些用户想用64位内核来运行32位程序吧。

内核源代码是没有32位,64位之分的,在编译内核时可以用ARCH参数手工指定编译成哪一个架构。例如:”make ARCH=i386 menuconfig”,”make ARCH=i386″用于配置,编译32位内核;

而”make ARCH=x86_64 menuconfig”,”make ARCH=x86_64″则用于配置,编译64位内核。

但是,在debian amd64光盘安装的系统里编译的32位内核是无法引导的,因为系统安装的所有软件包都是原生64位程序,无法在32位内核上运行,典型的错误是提示引导时找不到能运行的init程序;

而使用debian i386光盘安装的系统中编译的64位内核却可以使用,只是需要在配置内核时加上IA32 Emulation支持(menuconfig的:”Executable file fORMats/Emulations”–>”IA32 Emulation”)。

基于这样的原因,我原来用搭建的debian amd64光盘安装的系统,现在也改成用debian i386光盘来安装了,这样就能同时编译新的32位和64位官方内核进行对比测试

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

关于“Linux 中32位与64位的区别是什么”就介绍到这了,更多相关内容可以搜索编程网以前的文章,希望能够帮助大家答疑解惑,请多多支持编程网网站!

--结束END--

本文标题: Linux 中32位与64位的区别是什么

本文链接: https://www.lsjlt.com/news/320966.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux 中32位与64位的区别是什么
    这篇文章主要为大家分析了Linux 中32位与64位的区别是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux 中32位与64位的区别是什么”的知...
    99+
    2023-06-28
  • Win8.1 32位和64位有什么区别 Win8.1 32位和64区别详细介绍
      有关Win8.1系统32位和64位的区别,其实就是32位系统和64位系统的区别,概括的说,主要有以下及大区别。   ★设计初衷不同   64位操作系统的设计初衷是为了满足机械设计和分析、三维动画、视...
    99+
    2022-06-04
    详细介绍 有什么区别 区别
  • linux中32位和64位的区别有哪些
    本篇内容主要讲解“linux中32位和64位的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中32位和64位的区别有哪些”吧!区别:1、64位是为高性能应用程序所设计开发的,...
    99+
    2023-06-22
  • 详解win7系统64位与32位区别
    很多网友都知道win7系统有64位和32位区分,但是很少人知道win7系统64位与32位有什么区别,有网友说自己使用过两种系统感觉没有什么不一样。下面小编将为大家介绍一下win7系统64位和32位之间的区别。1、资源利用win7 32位系统...
    99+
    2023-07-10
  • 电脑32位和64位有什么区别
    今天小编给大家分享一下电脑32位和64位有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。电脑32位和64位区别:一、...
    99+
    2023-07-01
  • windows732位与64位区别是什么windows732位与64位区别详细介绍
    32位与64位是许多消费者在购买电脑的情况下挑选的具体内容,当消费者在购买计算机的过程中由于不清楚二者的区别有的过程中便会选错计算机,那麼windows732位与64位区别是什么呢,下边在这里就提供了近期的有关详细介绍,客户们可以经过接下来...
    99+
    2023-07-10
  • win7的32位和64位系统有什么区别
    Windows 7的32位和64位系统有以下区别:1. 内存容量:32位系统最多只能支持4GB的内存,而64位系统可以支持更多的内存...
    99+
    2023-08-23
    win7
  • python 32位和64位的区别在哪
    64位能够用更大的内存空间,64位可以在64位的系统下运行,但是不能在32位系统下运行。32位能够在32位和64位上运行,考虑到兼容性,建议使用32位的python。 ...
    99+
    2023-01-31
    区别 python
  • 32位与64位操作系统如何区分从32位和64位的概念
    今天就跟大家聊聊有关32位与64位操作系统如何区分从32位和64位的概念,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。有时候我们下载软件的时候,电脑系统便会提示,是选择安装32位的还...
    99+
    2023-06-14
  • linux下32位机与64位机基本数据类型长度有什么区别
    这篇文章主要介绍了linux下32位机与64位机基本数据类型长度有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基本数据类型 数据类型32位64位char11int4...
    99+
    2023-06-13
  • win7 32位系统和64位系统的区别
    win7系统是很多用户依然在使用的操作系统,不知道大家对于win7系统的32位和64位的区别有多少了解呢?下面就这个问题小编和大家简单聊聊吧。首先,win7 64位旗舰版是完美支持大部分的32位系统,大家不用担心不兼容的问题。32位系统的可...
    99+
    2023-07-10
  • 电脑32位和64位的区别有哪些
    这篇文章主要介绍“电脑32位和64位的区别有哪些”,在日常操作中,相信很多人在电脑32位和64位的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑32位和64位的区别有哪些”的疑惑有所帮助!接下来...
    99+
    2023-07-02
  • 怎么检测Linux是32位还是64位
    这篇文章主要介绍“怎么检测Linux是32位还是64位”,在日常操作中,相信很多人在怎么检测Linux是32位还是64位问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么检测Linux是32位还是64位”的疑...
    99+
    2023-06-16
  • Win7 64位系统和Win7 32位系统有什么区别
    这篇文章主要介绍Win7 64位系统和Win7 32位系统有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! Win7 64位系统同Win7 32位系统有什么区别 windows7 64位与32旗舰版...
    99+
    2023-06-28
  • 32位win7系统和64位win7系统有什么区别
    这篇文章主要介绍了32位win7系统和64位win7系统有什么区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇32位win7系统和64位win7系统有什么区别文章都会有所收获,下面我们一起来看看吧。首先,我们...
    99+
    2023-06-27
  • linux如何查看jdk是32位还是64位的
    这篇“linux如何查看jdk是32位还是64位的”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux如何查看jdk是3...
    99+
    2023-06-29
  • 怎么迅速区分系统是32位?还是64位?
      之前一直傻傻地分不清自己的电脑究竟是32位还于下定决心要弄清楚这个问题,还是以最简单的方式,现在便着急着同大家分享下我的区分经验吧。   查看操作系统   在开始>运行中输入“cmd”,...
    99+
    2023-06-03
    32位 系统
  • c++32位程序和64位程序的区别有哪些
    这篇文章主要讲解了“c++32位程序和64位程序的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c++32位程序和64位程序的区别有哪些”吧!代码上的区别实际上,对于32位程序和6...
    99+
    2023-06-16
  • 64位系统安装32位php的方法是什么
    本篇内容主要讲解“64位系统安装32位php的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“64位系统安装32位php的方法是什么”吧!64位系统安装32位php的方法:1、在Wind...
    99+
    2023-06-25
  • Shell脚本中怎么判断Linux系统是32位还是64位
    Shell脚本中怎么判断Linux系统是32位还是64位,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一行就能搞定,输出32或者64。可以用“getconf W...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作