linux发行版i386i686x86-64的区别
X32,X64,X86是什么意思
![X32,X64,X86是什么意思](https://img.taocdn.com/s3/m/b37ace03f78a6529647d538f.png)
目前AMD方面支持64位技术的CPU有Athlon 64系列、Athlon FX系列和Opteron系列。Intel方面支持64位技术的CPU有使用Nocona核心的Xeon系列、使用Prescott 2M核心的Pentium 4 6系列和使用Prescott 2M核心的P4 EE系列。
目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到,因此这里仅对AMD64位技术和Intel的EM64T技术做一下简单介绍。
这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。
ቤተ መጻሕፍቲ ባይዱ
AMD64位技术
AMD64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86-64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86-64具有64位的寻址能力。
X86-64新增的几组CPU寄存器将提供更快的执行效率。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方。标准的32-bit x86架构包括8个通用寄存器(GPR),AMD在X86-64中又增加了8组(R8-R9),将寄存器的数目提高到了16组。X86-64寄存器默认位64-bit。还增加了8组128-bit XMM寄存器(也叫SSE寄存器,XMM8-XMM15),将能给单指令多数据流技术(SIMD)运算提供更多的空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86-64标准生产的CPU可以更有效的处理数据,可以在一个时钟周期中传输更多的信息。
Linux发行版本介绍
![Linux发行版本介绍](https://img.taocdn.com/s3/m/60110ec281eb6294dd88d0d233d4b14e85243e45.png)
Linux发⾏版本介绍引⾔Linux 有⾮常多的版本,⽐如世⾯上常见的有 Ubuntu、RedHat、Fedora、Centos 等,这么多的版本我们究竟该选哪⼀个呢?对于 Linux 初学者有必要对这些 Linux 发⾏版本有所认识和了解。
Linux 是什么?⾸先了解⼀下Linux是什么。
它是⼀套类UNIX的操作系统,最初是1991年由芬兰⼈ Linus Torvald 在赫尔⾟基⼤学读⼤⼆时出于个⼈爱好⽽编写的(不禁对⼤神⽆⽐的崇拜)。
下⾯那张图左边是他年轻时的样⼦(年轻时也是⼩鲜⾁⼀枚);右边是他现在的样⼦(也已经变成了中年⼤叔),⽽且 Linus不仅是个技术⼤神,还是著名的嘴炮,⽐如下⾯这些技术和应⽤都曾经被他喷过。
”真正的 Emacs 是魔⿁⼯具。
””整个GNOME-3的⽤户体验⼏乎完全是失败的,’在默认配置下,我们连解决问题的最基本的⼯具都不给你,但你可以通过⾮官⽅的扩展解决它‘。
””我不关⼼Java。
多么可怕的语⾔。
“”C ++ 是⼀个可怕的语⾔。
””GCC是废话。
“”XML 是胡扯。
解析 XML 对⼈类来说是讨厌的,甚⾄对计算机来说也是⼀场灾难。
没有理由让这个可怕垃圾存在。
””Solaris/x86 是个笑话“Linux 的发⾏版什么?事实上 Linus 在 1991 年编写的是 Linux 的内核,就是⼀个操作系统的核⼼,包括设备驱动、⽂件系统、进程管理等等。
当然⼀个操作系统只有内核的话,⽤户是没有办法使⽤的,所以 Linux 的发⾏版就是将 Linux 内核和应⽤软件打了个包,这些应⽤软件可以包括 GNU 程序库和⼯具、命令⾏ Shell ⼯具、图形界⾯的 XWindow 系统和相应的桌⾯环境以及数千种应⽤软件。
常见的 Linux 版本⽐较⾸先 Linux 的发⾏版本可以分为⼏个⼤的家族,⽐如 Red Hat、Debian、SlackWare 等等;然后在每个⼤的家族⾥⼜有不同的发⾏版本。
Linux版本
![Linux版本](https://img.taocdn.com/s3/m/66826d4100f69e3143323968011ca300a6c3f6e7.png)
发行版
简介
发行版为许多不同的目的而制作,包括对不同计算机结构的支持,对一个具体区域或语言的本地化,实时应用, 和嵌入式系统,甚至许多版本故意地只加入免费软件。已经有超过三百个发行版被积极的开发,最普遍被使用的 发行版有大约十二个。
Debian
Debian Project诞生于1993年8月13日,它的目标是提供一个稳定容错的Linux版本。支持Debian的不是某 家公司,而是许多在其改进过程中投入了大量时间的开发人员,这种改进吸取了早期Linux的经验。
版本比较
Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前 者以著名的Redhat(RHEL)为代表,后者以Debian为代表。
Fedora Core
Fedora Core(自第七版直接更名为Fedora)是众多 Linux发行版之一。它是一套从Red Hat Linux发展出 来的免费Linux系统。Fedora Core的前身就是Red Hat Linux。Fedora是一个开放的、创新的、前瞻性的操作 系统和平台,基于Linux。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开 发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora项目由 Fedora基金会管理和控制,得到了 Red Hat, Inc.的支持。Fedora是一个独立的操作系统,是Linux的一个发行 版,可运行的体系结构包括 x86(即i386-i686), x86_64和 PowerPC。
简述x86cpu运行的4个级别
![简述x86cpu运行的4个级别](https://img.taocdn.com/s3/m/1f042325f68a6529647d27284b73f242326c317c.png)
简述x86cpu运行的4个级别x86CPU是一种基于Intel架构的CPU,它是目前世界上最广泛使用的CPU之一。
x86 CPU运行时会经过4个不同的级别,这些级别分别是用户态、内核态、超级用户态和虚拟8086模式。
本文将详细介绍这4个级别的含义和作用。
一、用户态用户态是指CPU在执行用户程序时所处的状态。
在用户态下,CPU 只能访问用户程序所占用的内存空间,不能访问操作系统内核的内存空间。
这是为了保护操作系统内核不受用户程序的干扰。
用户程序可以使用CPU提供的一些指令和功能,但是不能直接访问硬件资源,必须通过操作系统提供的系统调用来实现。
在用户态下,CPU的权限较低,只能执行受限制的指令和操作。
二、内核态内核态是指CPU在执行操作系统内核代码时所处的状态。
在内核态下,CPU可以访问系统的所有资源,可以执行所有指令和操作。
操作系统内核可以直接访问硬件资源,控制系统的各种设备和资源。
在内核态下,CPU的权限最高,可以执行任何指令和操作。
操作系统内核通常使用特权级别0来表示内核态。
三、超级用户态超级用户态是指CPU在执行特权级别大于0但小于3的代码时所处的状态。
在超级用户态下,CPU可以访问一些受保护的资源,如I/O 端口和DMA控制器等。
超级用户态通常用于执行一些需要较高权限的操作,如设备驱动程序的编写和调试等。
超级用户态的权限介于用户态和内核态之间,不同的操作系统有不同的实现方式。
四、虚拟8086模式虚拟8086模式是一种特殊的模式,它允许在保护模式下运行16位的MS-DOS应用程序。
在虚拟8086模式下,CPU会将当前的代码段和数据段设置为16位模式,并且可以访问整个1MB的内存空间。
虚拟8086模式可以通过软件模拟来实现,也可以通过硬件支持来实现。
总结以上就是x86 CPU运行的4个级别,它们分别是用户态、内核态、超级用户态和虚拟8086模式。
每个级别都有不同的权限和作用,它们共同构成了x86 CPU的运行机制。
linux系统各版本的特点
![linux系统各版本的特点](https://img.taocdn.com/s3/m/377aaf5b6fdb6f1aff00bed5b9f3f90f76c64dc0.png)
linux系统各版本的特点
Linux操作系统是一个开源的Unix-like操作系统内核,它有
许多不同的发行版,每个发行版都有自己的特点和优势。
以下是一
些常见的Linux发行版及其特点:
1. Ubuntu,Ubuntu是最受欢迎的Linux发行版之一,它注重
易用性和用户友好性。
它有一个强大的软件包管理系统和广泛的社
区支持。
Ubuntu也有长期支持版本,适合企业和个人用户。
2. Fedora,Fedora是由社区支持的发行版,它注重最新的软
件和技术。
它通常被用作开发和测试新功能的平台,因此适合技术
爱好者和开发人员。
3. CentOS,CentOS是基于Red Hat Enterprise Linux(RHEL)源代码构建的,它专注于稳定性和可靠性。
它通常被用于服务器环境,特别是在企业中。
4. Debian,Debian是一个稳定且功能丰富的发行版,它以其
强大的软件包管理系统和广泛的架构支持而闻名。
Debian也注重自
由软件的原则。
5. Arch Linux,Arch Linux是一个面向有经验的用户的发行版,它提供了最小的核心安装,允许用户根据自己的需求构建自定义的系统。
它注重简洁和灵活性。
6. openSUSE,openSUSE是一个用户友好的发行版,它有一个强大的图形化配置工具和易于使用的软件包管理系统。
它也有企业版,适合商业用户。
这些发行版都有各自独特的特点和优势,选择合适的发行版取决于用户的需求和偏好。
无论选择哪个版本,Linux操作系统都以其稳定性、安全性和灵活性而闻名。
linux常用的FAQ(GDLC support)-------基础操作中的FAQ。
![linux常用的FAQ(GDLC support)-------基础操作中的FAQ。](https://img.taocdn.com/s3/m/f33ab77a168884868762d622.png)
EMB SYS ™中兴EMBSYS ™ CGS Linux V3.0 用户问答手册I随着越来越多的项目使用或准备使用NewStart CGS Linux 来进行电信级服务器Linux 的开发及应用开发,NewStart CGS Linux 的改进工作也在不断的推进。
学习和使用NewStart CGS Linux 当中,不时会有一些疑问,或者没有把握的地方,如果自己摸索,可能要花费很多的时间。
本文汇总了到目前为止常常被问起的问题,并做了回答,供大家速查。
本文档作为CGSL FAQ 的上游文档,用于收集FAQ 素材,以提供给文档开发人员,形成最终FAQ 。
1CGSL基本概念1.1CGSL系统的来源、与RedHat的关系、如何获取开源支持?关键字:来源,RedHat,支持版本:ALL分析与处理:问题:CGSL系统从何而来,与RedHat的关系有何关系,如何获取开源支持?解答:CGSL来源于开源社区,由开源社区的源代码构建,在提供CGSL版本的时候,参考了CentOS (对应于RHEL的开源版本)所用的内核版本号和相关软件包,并根据实际需要选取了他们所用的补丁集(毕竟红帽所用的方案是业界公认比较出色的)。
因此,CGSL与RHEL是高度兼容的。
除此之外,我们还对内核做了所需的改进,以及集成了相关的用户需求。
由于CGSL版本是自己根据开源软件包选择,增加或修改,相应的维护和问题解决,也都是我们自己进行的,RedHat对我们不提供支持,主要的支持来源为CGSL项目自身的研发团队和开源社区。
1.2CGSL版本号是怎样定义的?关键字:CGSL 版本号版本:ALL分析与处理:问题:CGSL系统的版本号是怎样定义的?解决:CGSL项目发布的基础版本和补丁版本命名遵从如下规则:版本命名规则中各字段的含义如下表所示:版本命名示例:1.3CGSL系统升级补丁的命名规则是怎样定义的?关键字:CGSL 版本号版本:ALL分析与处理:问题:CGSL系统升级补丁的命名规则是怎样定义的?解决:CGSL项目发布的系统升级补丁,其命名遵从如下规则:系统补丁命名规则中各字段的含义如下表所示:系统补丁命名示例:将32位V3.02.00基础版本升级至V3.02.00.P1补丁版本的系统升级补丁的名称为1.4怎样查看CGSL系统详细版本号?关键字:版本号版本:ALL分析与处理:CGSL系统中使用如下命令查看系统的详细版本号:执行结果如下所示:如上结果表示该系统的详细版本号为:CGSL V3.02.00版本。
x86x64arm64的区别
![x86x64arm64的区别](https://img.taocdn.com/s3/m/df085786dc88d0d233d4b14e852458fb770b38a4.png)
x86x64arm64的区别我们常说的⾼通 865,麒麟990 不是 CPU 是 SoC(System On Chip),SoC 除了 CPU 外,还有 GPU,还有可选的浮点数加速器,专⽤于深度模型的加速器,等等。
除此以外,SoC 还包括运存,基带芯⽚等等⼀系列集成式的东西,⽐电脑上的CPU集成度更⾼。
ARM 和各个 SoC 的关系:所有 ARM 架构的 CPU 都是 ARM 公司授权的,授权的形式是 IP 核,各个品牌得到授权,⽣产⾃⼰的 SoC。
⾼通公司的 SoC 对 ARM 的 IP 核做了⼆次包装,把 32位的 CPU 命名为 Krait 系列,把 64 位的 CPU 命名为 Kryo 系列。
例如骁龙855 使⽤的 CPU 是 Kryo 485,实际是由 Cortex-A55 + Cortex-A76 实现的。
⼿机CPU的ARM架构ARM是英国ARM公司提供⼀种CPU架构的知识产权,⽬前主流的⼿机和平板电脑都采⽤ARM架构,套⽤⼀句话:ARM不⽣产芯⽚,只提供⼀个芯⽚设计的Idea。
可以说,作为⼀家不⽣产芯⽚的芯⽚⼚商,ARM却在全球范围内⽀撑起了各种嵌⼊式设备、智能⼿机、平板电脑、智能穿戴和物联⽹设备的运⾏,只是ARM每年都会从构建上述设备体内的上亿颗处理器中“抽成”,严格遵守薄利多销的运营模式。
主流的⼿机/平板品牌,绝⼤数是采⽤ARM架构,当然现在ARM也进军PC市场。
⾼通骁龙(snapdragon)三星(Exynos)联发科(Helio)华为(麒麟)苹果 (A11,A7,A6,M1)IntelNvidia安卓apk/lib ⽬录下的⼏个⽂件夹,代表不同的架构:arm64-v8aarmeabi-v7ax86IOS模拟器4s-5: i3865s-7s Plus: x86_64真机(iOS设备):armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第⼀代)、iPod Touch(第⼆代)armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2armv7s: iPhone 5、iPhone 5c (静态库只要⽀持了armv7,就可以在armv7s的架构上运⾏)arm64(注:⽆armv64): iPhone 5s、iPhone 6、iPhone 6 Plus、iPhone 6s、iPhone 6s Plus、 iPhone 7 、iPhone 7 Plus、iPad Air、iPad Air2、iPad mini2、iPad mini3、iPad mini4、iPad Pro电脑CPU的x86架构主流品牌:Inter(英特尔)AMD⽐如操作系统区分Windows 10 (Multiple Editions) (x64) - DVD (Chinese-Simplified)Windows 10 (Multiple Editions) (x86) - DVD (Chinese-Simplified)X86源于英特尔⼏⼗年前出品的CPU型号8086(包括后续型号8088/80286/80386/80486/80586)。
CPU架构讲解X86、ARM、RISC、MIPS
![CPU架构讲解X86、ARM、RISC、MIPS](https://img.taocdn.com/s3/m/c759ab3715791711cc7931b765ce05087632753d.png)
CPU架构讲解X86、ARM、RISC、MIPS一、当前CPU的主流架构:1.X86架构采用CISC指令集(复杂指令集计算机),程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。
2.ARM架构是一个32位的精简指令集(RISC)架构。
3.RISC-V架构是基于精简指令集计算(RISC)原理建立的开放指令集架构。
4.MIPS架构是一种采取精简指令集(RISC)的处理器架构,可支持高级语言的优化执行。
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,是区分不同类型CPU的重要标示。
二、目前市面上的CPU分类主要分有两大阵营:1.intel、AMD为首的复杂指令集CPU;2.IBM、ARM为首的精简指令集CPU。
两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM的CPU是PowerPC架构,ARM是ARM架构。
三、四大主流CPU架构详解(X86、ARM、RISC、MIPS)1.X86架构X86是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。
1978年6月8日,Intel 发布了新款16位微处理器8086,也同时开创了一个新时代:X86架构诞生了。
X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM 1981年推出的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。
采用CISC(Complex Instruction Set Computer,复杂指令集计算机)架构。
与采用RISC不同的是,在CISC处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。
顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。
随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的Pentium 4系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel所生产的所有CPU仍然继续使用X86指令集。
浅析CPU两大架构ARM和X86区别及拓展windowsx86与x64的区别
![浅析CPU两大架构ARM和X86区别及拓展windowsx86与x64的区别](https://img.taocdn.com/s3/m/accf641dbb1aa8114431b90d6c85ec3a87c28b7d.png)
浅析CPU两⼤架构ARM和X86区别及拓展windowsx86与x64的区别 由于在 linux 安装nodejs环境时遇到⼀个不可执⾏⽂件的问题,涉及到了ARM和x64⽂件,所以查了点资料初步了解了⼀下cpu两⼤架构:ARM与X86的区别。
⼀、CPU是什么 中央处理单元(CPU)主要由运算器、控制器、寄存器三部分组成,从字⾯意思看运算器就是起着运算的作⽤,控制器就是负责发出CPU每条指令所需要的信息,寄存器就是保存运算或者指令的⼀些临时⽂件,这样可以保证更⾼的速度。
CPU有着处理指令、执⾏操作、控制时间、处理数据四⼤作⽤,打个⽐喻来说,CPU就像我们的⼤脑,帮我们完成各种各样的⽣理活动。
因此如果没有CPU,那么电脑就是⼀堆废物,⽆法⼯作。
移动设备其实很复杂,这些CPU需要执⾏数以百万计的指⽰,才能使它向我们期待的⽅向运⾏,⽽CPU的速度和功率效率是⾄关重要的。
速度影响⽤户体验,⽽效率影响电池寿命。
最完美的移动设备是⾼性能和低功耗相结合。
⼆、要了解X86和ARM,就得先了解复杂指令集(CISC)和精简指令集(RISC) 从CPU发明到现在,有⾮常多种架构,从我们熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它们之间的差距都⾮常⼤。
但是如果从最基本的逻辑⾓度来分类的话,它们可以被分为两⼤类,即所谓的“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。
Intel和ARM处理器的第⼀个区别是,前者使⽤复杂指令集(CISC),⽽后者使⽤精简指令集(RISC)。
属于这两种类中的各种架构之间最⼤的区别,在于它们的设计者考虑问题⽅式的不同。
我们可以继续举个例⼦,⽐如说我们要命令⼀个⼈吃饭,那么我们应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺⼦,然后舀起⼀勺饭,然后张嘴,然后送到嘴⾥,最后咽下去”。
从这⾥可以看到,对于命令别⼈做事这样⼀件事情,不同的⼈有不同的理解,有⼈认为,如果我⾸先给接受命令的⼈以⾜够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以⽤⾮常简单的命令让他去做很复杂的事情——⽐如只要说⼀句“吃饭”,他就会吃饭。
Linux x86与arm特性区别?
![Linux x86与arm特性区别?](https://img.taocdn.com/s3/m/475b9c07a9956bec0975f46527d3240c8447a1b9.png)
Linux 操作系统在x86 架构和ARM 架构上都有广泛的应用,它们在体系结构、特性和应用场景上存在一些区别。
1. **体系结构**:
- x86 架构:主要用于个人计算机(PC)和服务器,包括Intel 和AMD 等厂商的处理器。
x86 架构以其强大的计算能力和广泛的兼容性而闻名。
- ARM 架构:主要用于嵌入式系统、移动设备和低功耗场景,包括智能手机、平板电脑、物联网设备等。
ARM 处理器以其低功耗和高性能效率而著称。
2. **指令集**:
- x86 架构使用复杂指令集计算机(CISC)架构,其指令集更为复杂,但可以执行更多的操作。
- ARM 架构使用精简指令集计算机(RISC)架构,其指令集更加简洁高效,适用于低功耗和嵌入式场景。
3. **应用场景**:
- x86 架构常用于桌面计算机、服务器和高性能计算领域,适用于需要高性能和通用性的场景。
- ARM 架构主要用于移动设备、嵌入式系统和物联网设备等低功耗场景,以及对功耗和散热有严格要求的领域。
4. **操作系统支持**:
- Linux 支持x86 架构的广泛应用,同时也在ARM 架构上有着日益增长的应用,尤其是随着物联网和嵌入式系统的普及。
总的来说,x86 架构和ARM 架构在应用场景、指令集和处理器特性上存在一些区别,而Linux 作为开源操作系统,能够灵活地适配不同的硬件架构,因此在x86 和ARM 架构下都有丰富的应用。
x86、i386、i486、i586和i686等名词的解释
![x86、i386、i486、i586和i686等名词的解释](https://img.taocdn.com/s3/m/936bd9cb941ea76e58fa04c0.png)
关于x86、i386、i486、i586和i686等名词的解释一、x86与i386、i486、i586、i686等x86或80x86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称。
该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。
由于数字并不能作为注册商标,因此Intel及其竞争者均在新一代处理器使用可注册的名称,如Pentium。
现时Intel把x86-32称为IA-32,全名为Intel Architecture, 32-bit。
不过由于x86包括16位的处理器,这样的命名也出现麻烦。
x86架构于1978年]推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。
8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。
其它公司也有制造x86架构的处理器,计有Cyrix(现为VIA 所收购)、NEC集团、IBM、IDT以及Transmeta。
Intel以外最成功的制造商为AMD,其Athlon系列处理器的市场仅次于Pentium。
8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。
接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64(有时也被称作x86-64,x64或EM64T),推出了 Opteron处理器家族,开创了x86的64位时代。
值得注意的是Intel早在1990年代就与惠普合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。
IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与AMD64或x86-64弄混。
64位汇编语言简介
![64位汇编语言简介](https://img.taocdn.com/s3/m/4417c6621eb91a37f1115c61.png)
x86-64位汇编语言简介一、x86-64的寄存器x86-64较x86-32多了8个通用寄存器,而且,每个通用寄存器都是64位宽,它们是:rax,rbx,rcx,rdx,rsi,rdi,rsp,rbpr8,r9,r10,r11,r12,r13,r14,r15同时,x86-64全面支持x86-32和x86-16的通用寄存器:eax,ax,al,ah,ebx,bx,bl,bh,....而且,还对传统的edi,esi做了改进:edi ,32位di,16位dil ,8位,在传统的x86机器中,di是不可按照8位来访问的,但在x86-64下可以。
同样esi也可以按照8位来访问。
一个很特别的寄存器rip,相当于x86-32的eip.在x86-32是不可直接访问的,如mov eax,eip是错的,但在x86-64位下却可以,如mov,rax,qword ptr [rip+100]是对的。
而且,它除了是个程序计数器外,也是个“数据基地址”,有此可见,它现在是身兼两职!为什么在x86-64位下要用rip做访问数据的基地址呢?因为,在x86-64下,DS,ES,CS,SS都没有实际意义了,也就是说,它们不再参与地址计算,只是为了兼容x86-32。
FS,GS还是参与地址计算,它们两个和x86-32的意义相同。
二、x86-64的汇编x86-64的汇编和x86-32的没有多大的区别。
添加了新寄存器和指令。
写64位汇编代码时,可以用8、16、32、64位寄存器,如:push rdisub rsp, 48 ;mov r10, rcx; Line 36mov rdi, rdxxor eax, eaxmov ecx, 512rep stosb; Line 43movsxd r8, DWORD PTR [r10+16]mov QWORD PTR [rsp+32], rdxmov r9, QWORD PTR [r10+648]mov rdx, QWORD PTR [r10+52]mov rcx, QWORD PTR [r10+44]call fs_read_disk; Line 47mov ecx, 1cmp eax, ecxcmovne ecx, eaxmov eax, ecx; Line 52add rsp, 48pop rdiret 0再如:$L1818:; Line 2398mov al, BYTE PTR [rdx+rbx]cmp al, 32jne SHORT $L1819mov BYTE PTR [rdx+rbx], 0$L1819:add r8d, 1movsxd rdx, r8dxor eax, eaxmov rcx, r12mov rdi, rbxrepne scasbnot rcxsub rcx, 1cmp rdx, rcxjb SHORT $L1818但,有点值得注意,当操作传统的32位寄存器时,那么,整个64位寄存器都会受到影响,如:mov eax,0ah那么,rax也等于000000000000000ah再如:mov rcx,0aaaaaaaaaaaaaaaah(此时ecx等于0aaaaaaaah)mov ecx,0ddddddddh(此时,rcx等于00000000ddddddddh,高32位受到了影响).规则:Example 1: 64-bit Add:Before:RAX =0002_0001_8000_2201RBX =0002_0002_0123_3301ADD RBX,RAX ;48 is a REX prefix for size.Result:RBX = 0004_0003_8123_5502Example 2: 32-bit Add:Before:RAX = 0002_0001_8000_2201RBX = 0002_0002_0123_3301ADD EBX,EAX ;32-bit addResult:RBX = 0000_0000_8123_5502(32-bit result is zero extended)Example 3: 16-bit Add:Before:RAX = 0002_0001_8000_2201RBX = 0002_0002_0123_3301ADD BX,AX ;66 is 16-bit size overrideResult:RBX = 0002_0002_0123_5502(bits 63:16 are preserved)Example 4: 8-bit Add:Before:RAX = 0002_0001_8000_2201RBX = 0002_0002_0123_3301ADD BL,AL ;8-bit addResult:RBX = 0002_0002_0123_3302(bits 63:08 are preserved)三、指令集变化小结:当然,这里说的都是最基本的东西,是针对通用寄存器言的。
26个版本linux内核的性能对比测试
![26个版本linux内核的性能对比测试](https://img.taocdn.com/s3/m/fe144cf8941ea76e58fa04e8.png)
五年26个版本!Linux内核版本的“武林大会”从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来共有26个Linux内核版本,本文详细的对这26个内核版本进了性能测试,包括对于系统文件以及系统中各种应用的测试。
本文带领大家回顾了Linux内核5年来的发展历程,希望大家在这些评测中更加了解Linux内核的相关知识。
今天将他们对Linux系统的研究发挥到了极致:从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来的26个Linux内核版本来了个“群英荟萃”!完成如此庞大规模的横评并不容易,因为每个版本都要跑二十多个测试项目,每个项目又得跑至少三到五遍,总计超过2500次。
好在一方面有自动测试套装Phoronix Test Suite,另一方面还有飞快的Intel Core i7-970六核心处理器。
Linux 2.6.12版本内核的时候,操作系统还是Ubuntu 5.10、SuSE 9.3、Fedora Core 4、Mandrake 2006这些老古董,而最终选择的基准系统是Fedora Core 4,并将其放在Ubuntu 10.10 64位系统下的虚拟机内。
最新的2.6.37版本尚未发布正式版,本次测试使用的是2010-10-31 Git snapshot。
至于2.6.12之前的更老版本,GCC4编译器和它们无法并存,故而没有加入此番测试。
测试平台的其他硬件配置还有:华擎X58 SuperComputer主板、3GB DDR3内存、OCZ Vertex 64GB固态硬盘、GeForce GTX 460显卡。
Linux系统内核这26个版本的具体发布时间依次如下:1. 2.6.12-2005.6.172. 2.6.13-2005.8.293. 2.6.14-2005.10.174. 2.6.15-2006.1.35. 2.6.16-2006.3.206. 2.6.17-2006.6.177. 2.6.18-2006.9.208. 2.6.19-2006.11.299. 2.6.20-2007.2.510.2.6.21-2007.4.2511.2.6.22-2007.7.812.2.6.23-2007.10.913.2.6.24-2008.1.2414.2.6.25-2008.4.1715.2.6.26-2008.7.1316.2.6.27-2008.10.917.2.6.28-2008.12.2518.2.6.29-2009.3.2319.2.6.30-2009.6.920.2.6.31-2009.9.921.2.6.32-2009.12.322.2.6.33-2010.2.2423.2.6.34-2010.5.1624.2.6.35-2010.8.125.2.6.36-2010.10.2026.2.6.37-(开发中)下面就是对各个版本的Linux内核进行的评测。
Linux版本
![Linux版本](https://img.taocdn.com/s3/m/4b0d70ff08a1284ac9504317.png)
Linux内核版本主要有两种:稳定版和开发版 , Linux内核版本号由3组数字组成:第一个组数字、第二组 数字、第三组数字,一般行版本还会加上自己的修正版 本号及信息。
第一个组数字:目前发布的内核主版本。 第二个组数字:偶数表示稳定版本;
奇数表示开发中版本。 第三个组数字:错误修补的次数。 第四个组数字:发行版本的修正版本号 其他:发行版本的信息。
例如: uname -r #查看内核版本
4.17.12-1.1-MANJARO 第一个组数字: 4 , 主版本号 第二个组数字: 17 , 次版本号 第三个组数字 12 , 修订版本号 第四个组数字 1.1,表示发型版本的补丁版本 MANJARO 则表示我正在使用的内核是Manjaro发布的
。
Linuxx86_64与i386区别
![Linuxx86_64与i386区别](https://img.taocdn.com/s3/m/cd9a53ce77eeaeaad1f34693daef5ef7ba0d12d5.png)
Linuxx86_64与i386区别1 引子毫无疑问,不管是32位,还是64位处理器,所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。
不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。
对任何一个普通进程来讲,它都会涉及到5种不同的数据段。
稍有编程知识的朋友都该能想到这几个数据段种包含有“程序代码段”、“程序数据段”、“程序堆栈段”等。
不错,这几种数据段都在其中,但除了以上几种数据段之外,进程还另外包含两种数据段。
下面我们来简单归纳一下进程对应的内存空间中所包含的 5种不同的数据区。
代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存种的镜像。
代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作——它是不可写的。
数据段:数据段用来存放可执行文件中已初始化全局变量,换句话说就是存放程序静态分配的变量和全局变量。
BSS段:BSS段包含了程序中未初始化全局变量,在内存中bss 段全部置零。
堆(heap):堆是用于存放进程运行中被动态分配的内存段,它大小并不固定,可动态扩张或缩减。
当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free 等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)。
栈:栈是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味这在数据段中存放变量)。
除此以外在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也回被存放回栈中。
由于栈的先进先出特点,所以栈特别方便用来保存/恢复调用现场。
从这个意义上将我们可以把堆栈看成一个临时数据寄存、交换的内存区。
静态分配内存就是编译器在编译程序的时候根据源程序来分配内存. 动态分配内存就是在程序编译之后, 运行时调用运行时刻库函数来分配内存的. 静态分配由于是在程序运行之前,所以速度快, 效率高, 但是局限性大. 动态分配在程序运行时执行, 所以速度慢, 但灵活性高。
linux版本信息以及x86与x86_64的区别
![linux版本信息以及x86与x86_64的区别](https://img.taocdn.com/s3/m/be363067f56527d3240c844769eae009581ba2bc.png)
linux版本信息以及x86与x86_64的区别⼀ x86、x86_64、AMD64x86是指intel的开发的⼀种32位指令集,从386开始时代开始的,⼀直沿⽤⾄今,是⼀种cisc指令集,所有intel早期的cpu,amd早期的cpu都⽀持这种指令集,ntel官⽅⽂档⾥⾯称为“IA-32”x84_64是x86 CPU开始迈向64位的时候,有2选择:1、向下兼容x86。
2、完全重新设计指令集,不兼容x86。
AMD抢跑了,⽐Intel率先制造出了商⽤的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的第⼀桶⾦,得到了⽤户的认同。
⽽Intel选择了设计⼀种不兼容x86的全新64为指令集,称之为IA-64(这玩意似乎就是安腾),但是⽐amd晚了⼀步,⽽且IA-64也挺惨淡的,因为是全新设计的CPU,没有编译器,也不⽀持windows(微软把intel给忽悠了,承诺了会出安腾版windows server版,但是迟迟拿不出东西)。
后来不得不在时机落后的情况下也开始⽀持AMD64的指令集,但是换了个名字,叫x86_64,表⽰是x86指令集的64扩展,⼤概是不愿意承认这玩意是AMD设计出来的。
也就是说实际上,x86_64,x64,AMD64基本上是同⼀个东西,我们现在⽤的intel/amd的桌⾯级CPU基本上都是x86_64,与之相对的arm,ppc 等都不是x86_64。
x86、x86_64主要的区别就是32位和64位的问题,x86中只有8个32位通⽤寄存器,eax,ebx,ecx,edx, ebp, esp, esi, edi。
x86_64把这8个通⽤寄存器扩展成了64位的,并且⽐x86增加了若⼲个寄存器(好像增加了8个,变成了总共16个通⽤寄存器)。
同样的MMX的寄存器的位数和数量也进⾏了扩展。
此外cpu扩展到64位后也能⽀持更多的内存了,等等许多好处。
对于普通程序来说,CPU位数的扩展、寄存器数量的增加不会带来明显的性能提升,⽐如IE浏览器、Office办公这类的软件。
如何确定一台linux主机是Linux(i386i686)还是Linux(x86_64)
![如何确定一台linux主机是Linux(i386i686)还是Linux(x86_64)](https://img.taocdn.com/s3/m/d391d814eef9aef8941ea76e58fafab069dc44e9.png)
如何确定⼀台linux主机是Linux(i386i686)还是
Linux(x86_64)
在下软件包的时候,往往会遇到⼀个选择:
假设⾃⼰的主机是Linux,那么Linux (i386/i686)和Linux (x86_64)究竟应该选哪⼀个呢?
针对当今的硬件⽽⾔,如果你主机的CPU是64位的,OS也是64位的,那么直接选x86_64。
如果CPU是32位的,那么就有点复杂,有可能两个都可以⽤,究竟选哪个取决于CPU。
如果你的CPU是32-bit的,OS也是32bit的,那么只能选i386/i686。
如果你的CPU是64bit的,那么看看你的OS是32bit的还是64bit的。
如果OS是32位的,i386/i686和x86_64都可以。
64bit x86_64 distribution does come with runtime compatibility for 32bit x86 applications, so it is not entirely a all or
nothing decision.
如果OS是64位的,那么选x86_64
如何查看⾃⼰的CPU信息?
使⽤命令lscpu来查看CPU的具体信息,包括是32还是64位的,缓存⼤⼩,CPU的具体型号等。
如何查看Linux OS的信息?
使⽤命令uname –a来查看Linux OS的信息。
参考资料
==============。
X86和X64的区别
![X86和X64的区别](https://img.taocdn.com/s3/m/3e4d4066af1ffc4ffe47ac86.png)
X86就是我们一般用的32位的系统,X64就是64位的系统,区别:第一,设计初衷不同。
64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。
换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。
而32位操作系统是为普通用户设计的。
第二,要求配置不同。
64位操作系统只能安装在64位电脑上(CPU必须是64位的)。
同时需要安装64位常用软件以发挥64位(x64)的最佳性能。
32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。
当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。
第三,运算速度不同。
64位CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。
第四,寻址能力不同。
64位处理器的优势还体现在系统对内存的控制上。
由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。
比如,Windows Vista x64 Edition支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存。
第五,软件普及不同。
目前,64位常用软件比32位常用软件,要少得多的多。
道理很简单:使用64位操作系统的用户相对较少。
因此,软件开发商必须考虑“投入产出比”,将有限资金投入到更多使用群体的软件之中。
这也是为什么64位软件价格相对昂贵的重要原因(将成本摊入较少的发售之中)。
总而言之,Microsoft Windows 64位操作系统,必须“上”靠64位主机硬件的支撑,“下”靠64位常用软件的协助,才能将64位的优势发挥到极致,“三位一体”缺一不可(道理很简单:操作系统只是承上启下的运行平台)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.
I386 为32位x86 64位
二.安装介质
1. i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu.
intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,Pentium D系列
以及centrino P-M,core duo 等.
2. X86_64 适用于intel的Core 2 Duo, Centrino Core 2 Duo, and Xeon 和AMD Athlon64/x2, Sempron64/x2, Duron64等采用X86架构的64位cpu.
3. PPC 适用于Apple Macintosh G3, G4, G5, PowerBook, and other non-Intel models
安装DVD包括的软件要比安装光盘多一些,安装DVD也包括了两种图形界面(KDE和gnome).
4.Jigdo
也可以通过Jigdo 下载Fedora 发行版。
Jigdo 可以加速下载安装盘的ISO 镜像。
同BT 下载等待任务完全完成所不同,Jidgo 自动定位最快的镜像服务器(通过Fedora 镜像管理器),并且从中下载所需要的文件。
为了减少所需的网络流量,可以让Jigdo 扫描现存的DVD 或CD 介质。
这个功能对于以下用户特别有用。
1. 下载所有的测试发行版,之后下载最终的发行版。
这
样每次新的下载中,九成数据都已经被下载过了。
2. 下载DVD 和CD。
DVD 包括了CD 中95% 以上
的数据。
3. 下载以上组合中的任意一套即可。
二.live介质,分fedora桌面(gnome)和KDE桌面
可以直接进去系统再安装.先体验再决定是否安装的类型.
i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持.
与cpu的指令集有关.I代表与intel的指令集兼容,后面的数字是指cpu的分类。
因为intel的cpu经过这么久的发展,不断的更新,产生从
8086,8088,80286,80386,80486,奔腾(586),奔腾二代(686),奔腾三代(686)...cpu的每次换代,都增加了一些新的指令集,但都向后兼容(就是说后面的CPU都能完全使用前面的CPU的指令集)。
而软件包为了能发挥好cpu的全部性能,就加入cpu相对应能指行的指令。
因此就产生了各种不同的软件包。
所以,i686的软件包能在奔腾二代以上的cpu 上执行,但基本不能在此之先的cpu如486上执行。
而i386的软件包既可在i386的电脑上执行,也可在后面所有的cpu上执行(如奔三、奔四,但不能发挥cpu的最佳性能。
)
i386和i686
现在所有的intel 32位体系(包括AMD等兼容CPU)都叫i386体系,包括P4。
、i686仍然属于i386体系,不过对CPU(相对于386)的特性作了指令优化。
GNU/Linux分为alpha、PowerPC、Sun等各个不同版本,所有从
Intel386-P4都用i386版本,但i386版本中有几个内核(i486,i486,i586,i686),安装时安装程序检测到你得CPU级别后,自动为你安装相应内核。
与cpu的指令集有关.I代表与intel的指令集兼容,后面的数字是指cpu的分类。
因为intel的cpu经过这么久的发展,不断的更新,产生从
8086,8088,80286,80386,80486,奔腾(586),奔腾二代(686),奔腾三代(686)...cpu的每次换代,都增加了一些新的指令集,但都向后兼容(就是说后面的CPU都能完全使用前面的CPU的指令集)。
而软件包为了能发挥好cpu 的全部性能,就加入cpu相对应能指行的指令。
因此就产生了各种不同的软件包。
所以,i686的软件包能在奔腾二代以上的cpu上执行,但基本不能在此之先的cpu如486上执行。
而i386的软件包既可在i386的电脑上执行,也可在后面所有的cpu上执行(如奔三、奔四,但不能发挥cpu的最佳性能。
)
i686指的是Pentium Pro以及此后的Intel IA32 CPU,也就是平常我们所说的P6系列处理器。
i386不用说了,泛指80386以后的。
IA32划分子集的话:386、486是一个,Pentium自己是一个,Pentium Pro、Pentium II、Pentium III是P6系列,Pentium IV又独自算一个。
Pentium 4是NetBurst架构的,比起P6系列有些变化。
i686是pentiumpro及以后的通用arch,而i386是所有x86的通用arch,i386包括而i686没有包括的就是386、486、586(pentium)、pentium-mmx
现在应该没有人还在用586及以前的cpu,甚至是pentiumpro。
而rpm都是为i386打的包,运行效率会低很多。
兼容性关系大概是
i386:
i386:
i486:
winchip-c6: MMX 3dNOW!
winchip2: MMX 3dNOW!
i586(pentium):
pentium-mmx: MMX
i686:
pentiumpro:
pentium2: MMX
pentium3(m): MMX SSE
pentium-m: MMX SSE SSE2
pentium4(m): MMX SSE SSE2
prescott: MMX SSE SSE2 SSE3
nocona: MMX SSE SSE2 SSE3 (64bit)
c3: MMX 3dNOW!
c3-2: MMX SSE
k6: MMX
k6-2,k6-3: MMX 3dNow!
althon,althon-tbird: MMX 3dNow! SSE(prefetch only)
athlon-4, athlon-xp, athlon-mp: MMX 3dNOW!
3dNOW(enhanced) SSE(full)
k8, opteron, athlon64, athlon-fx: MMX 3dNOW!
3dNOW(enhanced) SSE SSE2 (64bit)
可以看出,i686囊括了现在正在使用的所有x86,所以把rpm打包是的arch
改为i686是没有问题的,反而能在指令调度上优化,填满流水线,使程序运行的更快。
而其中除了pentiumpro外,所有兼容i686的x86都有MMX,大多数有SSE。
十分使用扩展指令基对大规模计算来说很重要,如昨天加了-mmmx
-march=i686打包了一下GIMP,发现有些处理(如马赛克滤镜)快了5倍以上。
另外,如果浮点运算使用-mfpmath=sse -msse的话,浮点除法速度有近百倍的提高,这对浮点运算偏重的如音、视频解码,编码很重要。
当然为了兼容,可以打包两个版本,有sse和没有sse的。
希望开发者能考虑一下,把/usr/lib/rpm/rpmrc中的buildtranslator xxx:i386改为xxx:i686,并在optflag i686:中加入-mmmx。