1.1 ARM vs. x86
Raspberry Pi用户指南
树莓派系统的核心部分使用的是一个称之为Broadcom BCM2835的片上系统(System-on-chip,SoC)。这是一种多媒体处理器系统,意味着绝大部分系统组件,包括中央处理单元、图形处理单元以及音频和通信硬件,都可以集成在一块芯片上,并放置于主板中央的一块256MB内存芯片的下面(如图1-1所示)。
Broadcom BCM2835片上系统和我们平常所使用的普通台式机或笔记本电脑不仅在处理器的设计工艺上有所不同,同时,它还使用一种不同的指令集结构(Instruction set architecture,ISA),即ARM结构。
ARM架构是Acom计算机公司在20世纪80年代后期开发出来的,主要使用在移动设备上,而很少使用在桌面电脑中。你口袋里的手机几乎都有至少一个基于ARM的处理内核。相比于桌面处理器芯片具有高功耗和复杂指令集(CISC)架构而言,ARM芯片的精简指令集(RISC)结构简单、功耗低,因而成为移动用户的完美选择。
正是由于使用了基于ARM的BCM2835片上系统,树莓派能够在Micro-USB接口提供的5V和1A电源驱动下运行。由于芯片的低功耗,即使处理复杂的任务,产生的热量也很少,因此用户在这个树莓派设备上不会找到任何的散热片。
然而,这也意味着树莓派与传统的 PC 软件不能很好地兼容。大多数台式机和笔记本电脑的软件都是使用x86指令集架构的,例如AMD、Intel或VIA的处理器。而这些基于x86架构的软件却不能直接运行在基于ARM架构的树莓派上。
BCM2835片上系统使用的是一种叫做ARM11的处理器设计,它是基于ARMv6指令集结构设计的。值得注意的是,ARMv6是一个轻量级、功能强大的指令集结构,与之相对的ARM Cortex系列处理器使用了更加先进的基于ARMv7的结构。ARMv7上的软件和x86上的类似,但令人遗憾的是,虽然开发人员可以通过转换使ARMv7上的软件和x86上的软件兼容,但还是不能与树莓派上的BCM2835兼容。
但这并不意味着限制了用户的选择。稍后在这本书中,你会发现有非常多的适用于ARMv6指令集的软件,并且随着树莓派的普及,软件的数量还会越来越多。通过这本书,即使你没有任何编程经验,也能学会如何开发和创造你自己的软件。