`
473687880
  • 浏览: 535708 次
文章分类
社区版块
存档分类
最新评论

linux 源码arch目录下的处理器介绍与处理器架构总结 与 32/64位操作系统和CPU

 
阅读更多

摘要:在平时安装操作系统的过程中,我们经常碰到镜像文件i386,X86_64这样的关键字,二者有什么主要区别?研究linux源码的时候,同样的函数在arch目录下不同的文件中定义,有什么区别,这些处理器代表什么?等等。本文主要为你简介linux arch目录下的相关处理器,然后总结和对比一下现有的处理的其架构,最后简要分析一下i386,X86_64这些典型架构的区别,还有32/64位操作系统与CPU之间的联系。


本文来源:linux 源码arch目录下的处理器介绍与处理器架构总结与32/64位操作系统和CPU:http://blog.csdn.net/trochiluses/article/details/13006917


1.linux 源码arch目录下的处理器简介


alpha 处理器

Alpha 处理器最早由美国DEC 公司设计制造,在Compaq (康柏)公司收购DEC 之后,Alpha 处理器继续得到发展,并且应用于许多高档的Compaq 服务器上,HP (惠普)收购的Compaq ,Alpha 便为HP(惠普)所有,不过HP (惠普)已经放弃发展alpha 处理器。

arm 处理器
Arm 系列处理器 是英国Arm 公司设计的主流嵌入式32 位RISC 处理器,Arm 公司不直接生产Arm 处理器,而是采用IP 授权的方式由第3 方开发生产,著名的公司如Ti 、Samsung 等都有出品Arm 处理器。目前在手机领域广泛应用。

avr32 处理器
Avr32 处理器美国 Atmel 公司设计开发的32 位RISC 处理器, 设计目的是在每一个时钟周期内完成更多处理工作,从而在较低的时钟频率下实现相同的吞吐量。适合在工业控制、汽车电子等嵌入式设备领域中使用。Avr32 属于MCU 型的处理器。

blackfin 处理器
Blackfin 处理器是美国ADI 公司开发的具有DSP 能力的 32 位RISC 处理器, Blackfin 处理器基于由 ADI 和 Intel 公司联合开发的微信号架构 (MSA ), 适用于 嵌入式音频、视频和通信应用等领域。

cris 处理器
Cris 处理器是 瑞典 Axis 通信公司开发的32 位RISC 处理器,主要用于网络设备,属于比较专业的应用领域。因为 Axis 通信公司主要开发网络监控设备,所以 Cris 处理器在其网络监控设备中应用广泛。

frv 处理器
Frv 处理器是 日本富士通开发的32 位高性能RISC处理器, 采用VLIW (Very Long Instruction Word )构架,具备良好的多媒体处理能力,在机顶盒(STB )、数码刻录机(DVR )、数码相机(DSC)等嵌入式领域应用广泛。

h8300 处理器
H8300 处理器是 日本瑞萨科技开发的32 位高性能RISC 处理器, 具有强大的位操作指令,最适于实时控制应用如汽车电子、家用电器、医疗器械等领域。H8300 属于MCU 型的处理器。

ia64 处理器
Ia64 处理器是 美国英特尔开发的面向服务器应用的64 位处理器, 由于具有64 位寻址能力,它能够使用100 万TB 的地址空间,足以运算企业级或超大规模的数据库任务;64 位宽的寄存器可以使CPU 浮点运算达到非常高的精度。

m32r 处理器
M32r 处理器是 日本瑞萨科技开发的32 位高性能RISC 处理器, 内置大容量存储器,适用于车载系统、数字AV 设备、数字成像设备等产品领域。属于MCU 型的处理器。

m68k 处理器
M68k 处理器是美国 Motorola 公司开发的高性能处理器, 具有高性价比、高集成度等特点,在工业自动化设备、控制设备、医疗仪器系统、安全系统等领域多有应用。现在为Freescale 公司所有, 风头已不敌PowerPC 处理器。

microblaze 处理器
Microblaze 处理器是美国 Xilinx 公司提供的嵌入在其FPGA 芯片上的32 位RISC 软核。 它具有运算能力强、外围接口配置灵活等特点,集成在 FPGA之中,可以和FPGA 实现协同设计,具备软硬件可配置的灵活性。

mips 处理器
Mips 处理器 是由美国斯坦福大学Hennessy 教授领导的研究小组研制出来, 现为Mips 公司拥有,和Arm 处理器一样采用IP 授权的方式由第3 方开发生产。著名的公司如Broadcom 、Nxp 等都有出品Mips处理器。我国的龙芯CPU 也是采用Mips 体系结构。

mn10300 处理器
Mn10300 处理器 日本松下开发的32 位多媒体处理器。

parisc 处理器
Parisc 处理器是由 HP (惠普)开发设计的处理器,主要用于HP (惠普)公司的服务器中,目前HP(惠普)已经放弃 Parisc 处理器的开发,不过一些Parisc 处理器技术已经融合到ia64 处理器之中。

powerpc 处理器
Powerpc 处理器是由美国IBM 、Apple 、Motorola 联合开发的处理器,Powepc 处理器在IBM 的服务器、Apple 的MAC 电脑中都有应用。不过现在多应用在网络设备、视频系统、工业系统等领域。Sony PS3 游戏机Cell 处理器也是Powerpc 体系结构。

s390 处理器
S390 处理器是由美国IBM 开发的面向大型机应用的处理器 。

score 处理器
Score 处理器是由台湾 凌阳开发的32 位RISC 处理器。Score 属于MCU 型的处理器。

sh 处理器
Sh 处理器又称SuperH 处理器 ,最先由日本Hitachi 公司开发,后由 Hitachi 及 ST Microelectronics 两家公司共同开发,2003 年 瑞萨科技从 Hitachi 公司继承到拥有权。Sh 属于MCU 型的处理器。

sparc 处理器
Sparc 处理器是由美国SUN 和TI 公司共同开发的RISC 微处理器,最突出的特点就是它的可扩展性。SUN 公司将它做为高端处理器应用到服务器产品。

x86 处理器
X86 处理器是由美国Intel 推出的 复杂指令集(cisc ) 处理器,广泛应用在PC 电脑领域和服务器领域,在工业控制领域也有应用。目前主要是Intel、AMD 、VIA 在开发x86 体系结构的处理器。

xtensa 处理器

Xtensa 处理器是由美国 Tensilica (泰思立达)公司开发的可配置及可扩展的微处理器


2.处理器架构


关于X86
虽然上面说了按处理器架构分的话,目前就术语本身来说主要有四种说法,即IA-32、IA-64、x86-32、x86-64,但是其实它们分属于两类,IA-32、x86-32都属于x86,即英特尔的32位x86架构,x86-64是AMD在其最新的Athlon 64处理器系列中采用的新架构,但这一处理器基础架构还是IA-32(因英特尔的x86架构并未申请专利保护,所以绝大多数处理器厂商为了保持与Intel的主流处理器兼容,都不得不采用这一x86架构),只是在此架构基础之上作了一些扩展,以支持64位程序的应用,进一步提高处理器的运算性能。x86-64相比Intel的64位服务器处理器产品Itanium和 Itanium 2系列处理器产品来说最大的优点就是可以全面兼容以前的32位x86架构的应用程序,以保护用户以前的投资;而Intel的Itanium和Itanium 2系列处理器需要另外通过软件或硬件来实现对以前32位程序的兼容。
正因如此,以后我们看到诸如IA-32、x86-32、x86-64要清楚,其实它们都是一类型的,都属于x86架构的。如Intel的32位服务器Xeon(至强)处理器系列、AMD的全系列,还有VIA的全系列处理器产品都属于x86架构的。

IA64
IA-64架构是英特尔为了全面提高以前IA-32位处理器的运算性能,是Intel和Hp共同开发了6年的64位CPU架构,是专为服务器市场开发的一种全新的处理器架构,它放弃了以前的x86架构,认为它严重阻碍了处理器的性能提高。它的最初应用是英特尔的Itanium(安腾)系列服务器处理器,现在最新的Itanium 2系列处理器也是采用这一架构的。由于它不能很好地解决与以前32位应用程序的兼容,所以应用受到较大的限制,尽管目前Intel采取了各种软、硬方法来弥补这一不足,但随着AMD Operon处理器的全面投入,Intel的IA-64架构的这两款处理器前景不容乐观。

i386

i386=Intel 80386。其实i386通常被用来作为对Intel(英特尔)32位微处理器的统称。


3.64/32位处理器和操作系统、应用程序之间的关系


3.1CPU位数

这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。寻址空间往往也达到64位。

目前大部分的 CPU(截至2005 年),其单个寄存器可存放虚拟内存中任意数据的内存地址(本机)。因此,虚拟内存(计算机在程序的工作区域中所能保留的数据总量)中可用的地址取决于寄存器的宽度。


3.2操作系统位数

64位操作系统的优点,在于能够利用64位处理器的优势,在处理多媒体内容时能够有更佳的表现。线性地址到物理地址的映射是由硬件和操作系统协作完成的,因此如果操作系统是32位的,那么线性地址空间也只有2^32,所以没法完全利用超过4G以上的内存。32位的系统是没法运行在64位的CPU的,(试想,系统连内存分页都没法搞定)。但是32位的系统或者应用软件是可以运行在64位的CPU上的。这一点,需要明白,总是现有硬件,然后才有运行在硬件之上的软件。所以,肯定是先出来64位的cpu,才出现64位的系统;而为了兼容性考虑,32位的操作系统往往能运行在64位的CPU上(IA64架构的CPU是一个反例,也是一个失败的CPU发展案例)。但是64位的操作系统,设计目的是为了用64位的CPU,往往不能用在32位的CPU上。OS和CPU是家和管家的问题。

分享到:
评论

相关推荐

    linux-5.17 arm32 arm64 rv64 arch 下的 共同函数

    本文将详细探讨"Linux-5.17"版本在"arm32"、"arm64"以及"rv64"三种架构下的共同函数,这些函数允许代码在多种处理器架构之间共享,提高代码复用性和效率。 首先,让我们了解一下这三个架构: 1. **arm32**:这是...

    精选_判断操作系统及指定进程是32位还是64位_源码打包

    操作系统位数指的是其支持的处理器架构的位数,常见的有32位(x86)和64位(x64)。32位系统最多能处理4GB内存,而64位系统则可以支持更大的内存空间,通常超过4GB。此外,64位系统能够运行32位应用程序,但32位系统...

    正点原子Uboot和linux源码

    通过阅读和分析源码,开发者可以深入理解操作系统的底层工作原理,这对于从事嵌入式系统开发、设备驱动编程或系统调优的工程师来说至关重要。在C语言的基础上,你可以利用这些源码进行二次开发,以满足特定项目的...

    linux源码分析之cpu初始化 kernel/head.s

    总的来说,Linux内核的CPU初始化在kernel/head.s中开始,它不仅设置了CPU的工作模式,还确保了中断的关闭,查找并验证了处理器和机器类型,最后创建了页表,为内核的内存管理打下基础。这个过程是内核启动阶段的核心...

    Linux4.11.6源码

    7. **中断和异常处理**:在`arch/`目录下,根据不同的处理器架构,如x86、ARM等,处理中断和异常的代码各有不同,它们是系统响应硬件事件和错误的关键。 8. **系统调用**:Linux提供了丰富的系统调用接口,用户态...

    Linux内核0.11源码和Linux内核注释pdf

    例如,`arch`目录下存放了与特定处理器架构相关的代码,如x86;`fs`目录包含了各种文件系统的实现;`include`目录则存储了内核的头文件,定义了各种数据结构和函数原型。 在进程管理方面,Linux内核0.11中包含了...

    解读Linux操作系统内核源码的好方法.pdf

    例如,`arch/i386/`目录下保存的是针对x86架构的特定代码,因为Linux支持多种处理器架构,如`i386`、`arm`、`x86_64`等,每种架构都有其特定的代码库。 在每个架构目录下,通常会有`kernel`、`mm`、`fs`等子目录,...

    linux-2.2.1源码

    Linux内核的"arch"目录包含了针对不同处理器架构的代码。在2.2.1版本中,你可以找到如i386、sparc等传统架构的实现。这些代码负责处理硬件相关的操作,如初始化CPU、内存管理、中断处理等。对于开发者而言,理解这...

    LINUX0.11源码

    5. **中断处理**:在`arch`目录下,针对不同的处理器架构有不同的中断处理代码。中断是硬件向操作系统报告事件的主要方式,理解中断处理机制是理解操作系统核心工作流程的关键。 6. **网络协议栈**:尽管0.11版本的...

    linux-2.4.37.4

    6. **中断处理和异常处理**:在`arch/`目录下,根据不同的处理器架构,有相应的中断和异常处理机制,如`arch/x86/kernel/irq.c`,它处理中断请求并调用相应的中断服务例程。 7. **系统调用**:Linux提供了丰富的...

    ARM嵌入式Linux系统开发

    例如,arch目录下的代码文件需要与具体的硬件平台相对应,这包括对不同类型的处理器和平台的特定优化。Linux内核移植不仅仅是将内核代码放置到目标硬件上,还包括了根据目标硬件的特性进行配置和优化的过程。开发者...

    linux0.11 源码

    Linux 0.11源码是Linux操作系统早期版本的源代码,对于理解操作系统原理和Linux内核编程具有极高的学习价值。这个经典资料为开发者提供了一个深入研究内核机制、系统调用、进程管理、内存管理、设备驱动等核心概念的...

    Linux内核框架

    - **可移植性**:Linux内核能够在多种处理器架构和硬件平台上运行,包括有MMU和无MMU的处理器。 - **高效性**:Linux内核经过优化,在内存管理和CPU使用方面表现出色。 - **稳定性**:长期维护和发展,使得Linux内核...

    linux_code.zip

    Linux下的uboot(统一引导加载器,全称U-Boot)是嵌入式系统中非常重要的组成部分,它在操作系统启动前执行,负责加载操作系统映像到内存并控制系统的初始化。`uboot-1.1.6`源码的学习对于深入理解嵌入式系统的工作...

    linux内核详解 描述linux内核 方便调用linux内核

    1. **Arch**:这个目录包含了与特定处理器架构相关的代码,如i386目录针对Intel CPU及其兼容体系结构。 2. **Include**:包含核心所需的头文件,包括与平台无关的头文件(在`include/linux`下)和与Intel CPU相关的...

    基于S3C2410的嵌入式Linux操作系统移植方法.pdf

    【嵌入式Linux操作系统移植】在嵌入式系统中,Linux操作系统因其开源、可裁剪、稳定、多处理器支持和丰富的网络功能而被广泛应用于各种设备,特别是S3C2410这种基于ARM920T内核的微处理器。S3C2410具有高性能、低...

    Linux常用命令大全汇总.pdf

    Linux是一种广泛使用的自由和开源的类Unix操作系统内核,它以其稳定性和强大的社区支持而闻名。Linux系统使用一系列命令行工具来进行系统管理,文件操作和硬件配置等任务,这些工具的使用是Linux系统管理不可或缺的...

    tiny4412-linux3.5.0内核

    Linux内核是开源操作系统的核心,其稳定性和可扩展性使其在各种嵌入式设备上广泛应用。tiny4412是一款基于Samsung ARM Cortex-A9处理器的开发板,常用于嵌入式系统开发。本篇文章将深入探讨如何将Linux 3.5.0内核...

    Linux-0.11源代码

    1. **文件结构**:Linux-0.11源代码包含了大量头文件、C源文件和汇编文件,如`include/`目录下的头文件定义了内核接口,`arch/`目录下则包含针对不同处理器架构的汇编代码。`kernel/`目录中的C文件实现了内核的核心...

    Linux驱动学习总结

    - **arch/**:包含了所有支持的处理器架构的特定代码。 - **drivers/**:存放各种类型的设备驱动程序。 - **fs/**:包含了对文件系统的支持。 - **kernel/**:核心内核组件,如进程管理和内存管理等。 - **net/**:...

Global site tag (gtag.js) - Google Analytics