导航:首页 > 操作系统 > linuxpowerpc详解

linuxpowerpc详解

发布时间:2023-01-15 05:36:00

‘壹’ 如何让PowrePC上的程序可以在linux 上可以执行

要是你linux 安装在PowerPC上.就可以直接执行, -------powerPC是CPU架构,linux是系统,先弄清楚再说

‘贰’ 嵌入式linux和linux有什么不同linux的作用是什么

Linux作为开源免费操作系统,以其作为系统的应用可以较方便的进行系统功能的裁剪和跨体系结构移植。

在不同的目标体系结构下(x86,ARM,PowerPC etc.),由于汇编指令集的不同,同一段代码利用不同的编译器和库文件生成的可执行代码是不同的。不同体系的Linux其开发工具是不同的。

嵌入式linux属于高度裁剪过的Linux,他将桌面Linux所具有的大部分应用功能(如GUI 工具,计算器,电子邮件 etc.)和部分系统功能省略,但集成了开发者希望嵌入式产品所具有的特殊应用功能(比如 一款以Linux为系统的触摸式海事导航仪可以根据功能需要去除不需要的功能块,但加入GPS定位,航速航向计算,航线规划,触摸检测和对应功能实现等功能)。

嵌入式系统往往是指系统的资源(如DRAM/FLASH ROM,功耗,工作频率 etc.)有较大限制且系统的工作环境相对多变和恶劣(如温湿度变化大,酸碱度腐蚀,外部撞击和振动,外部电磁干扰,静电导致的高压损坏电路 etc.)。这也就需要开发人员更多的发现和假想可能的突发情况并采取相应预防措施。大部分嵌入式系统对响应的时间限制和正确性也有极高的要求。

‘叁’ power linux 是什么概念

power linux是指采用POWER芯片但可安装LINUX操作系统的小机,就像ORACLE小机可同时支持安装ORACLE LINUX和SOLARIS

不是POWER PC 现在最新的是POWER7

‘肆’ Linux文件系统特点

Linux之所以能在嵌人式系统领域取得如此辉煌的成绩,与其自身的优良特性是分不开的。与其他操作系统相比,Linux具有以下一系列显着的特点。

1.模块化程度高

Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。

2.源码公开

由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化,所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设计者在其基础之上进行二次开发变得非常容易。另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。

同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。

3.广泛的硬件支持

Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。

由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。

4.安全性及可靠性好

内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。

Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。

5.具有优秀的开发工具

开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。

6.有很好的网络支持利文件系统支持

Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。

另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2、FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。

7.与UNIX完全兼容

目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。

但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果

‘伍’ Linux在PowerPc上的二进制文件格式是ELF吗

可执行文件也是有格式的,windows下面的可执行文件是PE格式的,linux的执行文件是ELF的,就像手机套跟手机型号必须要匹配

‘陆’ linux是个什么操作系统

Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。Linux操作系统继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统特点有很多,以下是详细内容介绍:
①稳定的系统:Linux十分稳定,连续运行一年以上不曾宕机是很平常的事情,Linux有众多电脑高手在使用,维护者众多、更新维护快,而Windows则是所有人都会用,且不开源多任务。
②多用户系统:在一个Linux主机上规划出不同等级的用户,每个用户登录时工作环境可以不同,还允许不同用户在同一时间登录主机以使用主机的资源。
③用户组规划:在Linux机器上,文件可以分为可读可写可执行三类。此外,这些属性还可以分为三类:文件拥有者、文件所属用户组、其他非拥有者与用户组者,对于项目或者其他项目开发者具有良好的保密性。
④占用资源少:现在市场上任何一款个人计算机都可以达到使用Linux搭建一个服务上百人以上的主机可定制剪裁,移植到嵌入式平台,可选择多种图形用户界面。
⑤模块化程序:Linux内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需求,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧。
⑥广泛的硬件支持:Linux能支持X86、ARM、MIPS、ALPHA和PowerPC等多种体系结构和微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。

‘柒’ x86, x86_64 , PowerPC的区别

区别在于工作的平台不同,x86是指Intel x86指令集,也就是IBM兼容机平台,X86-64是有AMD公司设计,可以在同一时间内处理64位的整数运算,并兼容于X86-32架构。其中支持64位逻辑寻址,同时提供转换为32位寻址选项;但数据操作指令默认为32位和8位,提供转换成64位和16位的选项;支持常规用途寄存器,如果是32位运算操作,就要将结果扩展成完整的64位。这样,指令中有“直接执行”和“转换执行”的区别,其指令字段是8位或32位,可以避免字段过长。
PowerPC是由IBM、Motorola和Apple联合开发的高性能32位和64位RISC微处理器系列,以与垄断PC机市场的Intel微处理器和微软公司的软件相竞争。PowerPC微处理器与X86及X86-64并不兼容
你所说的AMD 3000+应该是是AMD Athlon64 3000+吧?如果是的,那么它是兼容X86-64指令集的,算是64位CCPU

‘捌’ PowerPC E500 MMU详解

1. 什么是MMU?

MMU 是 Memory Management Unit 的缩写,中文名称为 内存管理单元 。MMU是负责处理器(CPU)的内存访问请求的计算机硬件,其功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、缓存cache的控制等。

MMU是一个与软件密切相关的硬件部件,也是运行linux等依赖MMU内存管理单元操作系统内核机制的最大部件之一。如果处理器没有MMU,CPU内部执行单元产生的内存地址信号将直接通过地址总线发送到芯片引脚,被内存芯片接收,这就是 物理地址(physical address),简称PA 。英文physical代表物理的接触,所以PA就是与内存芯片physically connected的总线上的信号。

如果MMU存在且启用,CPU执行单元产生的地址信号在发送到内存芯片之前将被MMU截获,这个地址信号称为 虚拟地址(virtual address),简称VA ,MMU会负责把VA翻译成另一个地址,然后发到内存芯片地址引脚上,即VA映射成PA。

2. PowerPC E500 MMU

PowerPC (Performance Optimization With Enhanced RISC – Performance Computing,有时简称PPC)是一种 精简指令集(RISC)架构的中央处理器(CPU) ,其基本的设计源自IBM(国际商用机器公司)的POWER(Performance Optimized With Enhanced RISC)。

PowerPC芯片凭借其出色的性能和高度整合和技术先进特性在网络通信应用,工业控制应用,家用数字化,网络存储领域,军工领域,电力系统控制等都具有非常广泛的应用。

PowerPC的E500是飞思卡尔(FreeScale)基于Power Architecture的32位微处理器核心。E500系列核心有三个版本,即 E500v1,E500v2的E500mc 。64位版本的E500mc演变为E5500核心,并于2010年推出。

PowerPC E500 核心(后简称“E500”)采用了两级内存管理单元(MMU)体系结构。 L1-MMU、L2-MMU为该结构中的两个硬件单元。 E500通过L1-MMU和L2-MMU,以及一些辅助寄存器和指令来实现虚实地址的转换。E500v1核心是把32位有效地址转换为32位物理地址(使用41位临时虚拟地址);E500v2核心是把32位有效地址转换为36位物理地址。

L1-MMU特性:

1. 两个4条目的全关联TLB数组(一个用于指令访问,一个用于数据访问支持9种(E500v1)或11种(E500v2)页面大小,即I-L1VSP和D-L1VSP

2. 两个64 entry, 4路set-associative TLB数组(一个用于指令访问,一个用于数据访问),仅支持4kbyte页面,即I-L1TLB4K和D-L1TLB4K。

3. L1 MMU访问与L1缓存访问(地址转换/L1缓存)并行访问可以完全流水线化,这样每个时钟都可以完成一个加载/存储。

4. 执行L1 TLB查找的指令访问与数据访问是并行的。

5. 所有L1 TLB条目都是驻留在L2 MMU中的TLB条目的一个适当子集。

6. 自动执行失效操作,以保持L2 TLB的一致性。

L2-MMU特性:

1. 16个条目,完全关联的统一的L2 TLB数组(用于指令和数据访问)TLB1支持9种(E500v1)或11种(E500v2)页面大小,即TLB1,用于段式映射。

2. 256表项2-way (E500v1)或512-entry 4-way (E500v2)集关联统一L2 TLB array (TLB0)仅支持4kbyte的页面,即TLB0,用于进行页式映射。

3.对 TLB miss异常的支持。

4. TLB1和TLB0由tlbre, tlbwe, tlbsx, tlbsync, tlbivax和mtspr指令进行管理。

5. 执行由当前核心tlbivax指令产生的TLB1和TLB0失效。支持TLB1和TLB0由其他核心执行的tlbivax指令导致的失效操作。

6. TLB1中实现的IPROT位防止了无效,从而保护关键表项(通过设置IPROT位来指定)不会失效。

2.1 Effective-to-Real Address Translation流程

Effective-to-Real Address Translation(虚拟地址到物理地址的翻译)流程如下所示:

因为E500最小页的大小是4 Kbytes,所以低12位通常被用做4K页内的索引并且不需要进行翻译。首先检查L1 MMU(指令或数据)是否命中地址翻译。如果没有,翻译请求将被转发到(指令和数据)L2 MMU中进行处理。

E500v1核心和E500v2核心支持的页大小可见下表,E500v2核心比E500v1核心多支持了1Gbyte和4Gbyte页的大小。

2.2 MMU entry字段

在TLB中,数据都是按行存放的,一行称之为一个entry。一个entry包含了若干bit位下面是MMU entry的bit位含义描述:

V:用来表示当前entry是否有效。为0时表示无效,为1时表示有效。在系统reset之后,所有entry的V位都设为0。

TS:上面地址空间中的AS。为0表示地址空间0,为1表示地址空间1。

TID[0:7]:上面地址空间中的PID。TID为0时,忽略PID的比较。在Linux中,全为0。

EPN[0:19]:虚拟页桢号。根据页大小不同,有效的位数页不同。

RPN[0:19]:物理页桢号。

SIZE[0:3]:表示当前entry的页大小。

PERMIS[0:5]:用于描述当前entry的访问控制位。分别是UR,SR,UW,SW,UX,SX。分别表示用户态和内核态的读/写/执行权限。

WIMGE[0:4]:W表示当前entry是write through还是write back。I表示当前entry是否忽略Cache。M表示对此数据区的访问需要进行存储一致性处理。G表示对相应存储区域进运行保护。E表示当前entry是小端还是大端。

X0,X1:描述一些额外属性。

U[0:3]:自定义用途。

IPROT:当IPROT为1时,表示当前entry被保护。不能使用tlbivax指令无效该entry。只能用tlbwe指令清除。在E500中只有TLB1支持该位,在TLB0中,该位一直为0。

TLB相关指令、寄存器和异常如下表所示:

2.3 MMU相关寄存器

PID0-2寄存器: 用于保存当前进程的PID,该寄存器只有54-63位有效。

MMUCSR0寄存器: 用于使TLB0和TLB1的所有entry无效。该寄存器L2TLB0_FI位使无效TLB0的所有entry;L2TLB1_FI位使无效TLB1的所有entry。

MMUCFG寄存器: 用来保存当前MMU的配置信息,包括PID寄存器数量,大小,TLB的数量等。

TLB0CFG和TLB1CFG寄存器: 用于描述TLB0和TLB1的配置信息,包括entry数量,页表大小等信息。

MAS辅助寄存器 (MAS0–MAS4, MAS6–MAS7,没有实现MAS5),主要作用就是维护MMU中TLB的entry。

MAS0寄存器: 决定写哪个TLB的哪个entry。TLBSEL字段用于选择要操作的TLB,0表示TLB0,1表示TLB1。ESEL字段用于选择TLB的entry。当使用TLB1 时,ESEL字段中低4位有效,用于选择TLB1中的entry。当使用TLB0时,ESEL中只有最低位有效,因为TLB0是两路组相连。NV位用于确定如何替换TLB0中的entry。

MAS1-3中存放的各个字段与TLB entry中的各个字段一一对应。

MAS4寄存器

该寄存器主要用于存放当TLB miss异常发生时,对MAS0-3寄存器自动加载而使用的默认值,也就是说MAS4寄存器的内容是硬件写入的。为了提高TLB miss异常的效率,在异常出现时,E500会用MAS4寄存器中的值,自动填写MAS0-2寄存器中的一部分内容:

    MAS0[TLBSEL] <- MAS4[TLBSELD]

    MAS1[TID] <- MAS4[TIDSELD]

    MAS1[TSIZE] <- MAS4[TSIZED]

    MAS2[X0,X1] <- MAS4[X0D,X1D]

    MAS2[WIMGE] <- MAS4[WD,ID,MD,GD,ED]

MAS6寄存器: 用于对TLB进行检索,MAS6寄存器提供SPID0和SAS,也就是PID和AS字段。

MAS7寄存器(只E500v2支持): 包含实现的RPN的高阶地址位支持超过32位的物理地址。

2.4 TLB相关指令和实现

SkyEye,中文全称天目全数字实时仿真软件 ,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。SkyEye支持PowerPC架构E500处理器的指令集仿真,为了支持运行包含MMU单元的操作系统(例如VxWorks、Linux等),需要实现对MMU的仿真功能,其中包含TLB(Translation Lookaside Buffer,转换检测缓冲区)相关的指令实现和MMU虚实翻译过程。

与TLB相关的指令如下:

tlbre指令: tlbre指令是从L2 MMU中读取单个TLB条目的各字段内容,并写入到MMU辅助(MAS)寄存器的相应字段中。读取的entry条目是由MAS0的TLBSEL、ESEL和MAS2寄存器的EPN字段指定,在读TLB1时,ESEL有效,EPN无效;在读TLB0时,ESEL高2位有效,EPN有效。注意,对于E500v2,如果HID0[EN_MAS7_UPDATE] = 1, MAS7也被更新为TLB表项的物理地址。

tlbwe指令: 该指令是从MMU辅助寄存器(MAS)中提取各字段内容并写入到L2 MMU中的单个TLB条目中。写入的entry条目是由MAS0的TLBSEL、ESEL和MAS2寄存器的EPN字段指定,在写TLB1时,ESEL有效,EPN无效;在写TLB0时,ESEL高2位有效,EPN有效。注意,对于E500v2,MAS7中的RPN字段也写入到选定的TLB条目中 。

tlbsx指令: 指令格式为tlbsx RA,RB。指令作用是使用RA+RB的地址,配合MAS6寄存器对TLB进行查找,如果命中,则将结果放入MAS0-3寄存器。

指令实现:

tlbivax指令: TLB无效操作,这条指令将使所有与此计算出的虚拟地址相对应的TLB表项失效,同样也会使其他处理器上TLB中包含的TBL表项失效。

根据有效地址EA的Bit61位决定是否是无效全部的entry,如果不是,计算出相对应的entry,然后设置entry->v = 0用于使表项失效。

tlbsync指令: 该指令用于同步对TLB entry的读写。主要用途是将tlbivax指令的更新entry广播到系统总线上,用来同步其他处理器,该指令只在SMP系统中有效。

2.5 系统复位后的TLB初始状态

复位后,L1和L2 MMU中的TLB表项全部失效,TLB1的第一个entry需要初始化赋值,如下所示:

参考文献:

[1] PowerPC™ e500 Core Family Reference Manual.pdf

‘玖’ cpu架构(x86,PowerPC,arm等) 操作系统(windows linux unix等) 应用程序 三者之间有什么关系求大神解答

CPU决定了你的操作系统,操作系统决定了你的程序。

比如。X86只支持32位的操作系统。
有很多软件只能在32位平台运行,如果你装到64位平台上,软件不支持64位,就运行不了。

‘拾’ ppc和PowerPC有什么区别吗为什么linux系统支持的设备目录下面既有ppc也有powerpc啊

ppc : pocket pc 掌上电脑

阅读全文

与linuxpowerpc详解相关的资料

热点内容
奔跑程序员 浏览:466
服务器如何搭建类似github 浏览:290
明日之后安卓太卡怎么办 浏览:502
如何使用命令方块找到村庄 浏览:766
泛函压缩映像原理 浏览:521
win10清除文件夹浏览记录 浏览:964
如何查看服务器域中所有服务 浏览:384
学mastercam91编程要多久 浏览:999
如何查服务器地址和端口 浏览:911
教学云平台app怎么下载 浏览:389
单片机510教学视频 浏览:624
陕西信合app怎么查看自己的存款 浏览:663
风冷冰箱有压缩机 浏览:274
android实现wifi连接wifi 浏览:669
飞猪app怎么帮别人值机 浏览:924
笔记本开我的世界服务器地址 浏览:546
怎样隐藏bat命令 浏览:127
android开发创意 浏览:138
京剧猫为什么进不去服务器 浏览:784
怎么自己免费制作一个手机app 浏览:582