OS与CPU架构间的关系

回顾一下历史,年轻的Linus Torvalds为了将仅能运行在昂贵大型机上的UNIX移植到Intel 80386的PC平台上,因此才有了Linux的设计初衷。。。

当前主流的OS有UNIX,Linux,VxWorks等,CPU架构则主要分为RISC和CISC,Intel的X86 CPU是CISC的代表,ARM设计的微处理器芯片则为CISC的代表。X86 CPU由于体积大、功耗高主要应用于PC市场,而ARM主要则广泛应用于嵌入式设备中。众所周知,OS是运行于硬件设备之上的系统管理软件,它和CPU架构之间有何关系呢?不同CPU架构的指令集、寄存器数量、CPU指令格式以及指令的解码执行原理差别较大。OS可以粗略分为BSP和内核,其中内核是基于BSP之上的,它可以认为是硬件平台无关的,BSP(Board Support Package)则与底层硬件相关,它包含加电硬件初始化,加载内核,硬件设备驱动等程序,主要使用汇编编写,我们知道汇编程序是最贴近硬件的程序设计语言,而相应的汇编器是基于目标板CPU的指令集和寄存器设计的,这也是c/c++目标程序无法跨越不同CPU平台的原因。 因此,OS需要为不同目标平台开发特定的BSP(可能还需要开发不同的汇编器),BSP是OS进行硬件平台移植的基础。主流的OS中,VxWorks,Linux均支持X86和ARM架构,UNIX只支持RISC CPU,Windows XP版本只支持X86,Windows Phone8版本据说会支持ARM架构。随着Post-PC时代的到来以及CISC架构的崛起,诸如MicroSoft的OS提供商开始加大ARM架构的支持力度,冀望抢占移动设备OS市场。

原文地址:https://www.cnblogs.com/tonybright/p/2343267.html