Tianhe Gao

linux-birdman-linux

​## CPU 的种类

CPU 内部含有一些指令集,我们所使用的软件都要经过 CPU 内部的微指令集进行处理运行。这些指令集有两种设计理念,而这也是常见的 CPU 的种类:精简指令集(RSIC)与复杂指令集(CISC)。

​### 精简指令集(Reduced Instruction Set Computer, RISC)

单个指令的运行时间很短,完成的任务很简单,指令的执行效能较佳;若是要做复杂的事情,就要由多个指令来完成。

​### 复杂指令集(Complex Instruction Set Computer, CISC)

CISC 在微指令集的每一个小指令可以执行一些较低阶的硬件操作,指令数目多且复杂,每条指令的长度并不相同。因为指令执行较为复杂,所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。

Tips:

Windows 操作系统本来就是针对个人计算机 x86 架构的硬件去设计的,所以他当然只能在 x86 的个人计算机上面运作, 在不同的平台当然就无法运行了。也就是说,每种操作系统都是在他专门的机器上面运行的喔!这点得要先了解。 不过,Linux 由于是 Open Source 的操作系统,所以他的程序代码可以被修改成适合在各种机器上面运行的, 也就是说,Linux 是具有『可移植性』,这可是很重要的一个功能喔! ^\_^

Linux 是什么

Linux 就是一组软件。问题是这个软件是操作系统还是应用程序? 且 Linux 可以在哪些种类的计算机上面运作?而 Linux 源自哪里?为什么 Linux 还不用钱计算机是由一堆硬件所组成的,为了有效率的控制这些硬件资源,于是乎就有操作系统的产生了。 操作系统除了有效率的控制这些硬件资源的分配,并提供计算机运作所需要的功能(如网络功能)之外, 为了要提供程序设计师更容易开发软件的环境,所以操作系统也会提供一整组系统呼叫接口来给软件设计师开发用喔!

知道为什么要讲这些了吗?嘿嘿!没错,因为 Linux 就是一套操作系统!如同下图所示, Linux 就是核心与系统呼叫接口那两层。至于应用程序算不算 Linux 呢?当然不算啦!这点要特别注意喔!

由上图中我们可以看到其实核心与硬件的关系非常的强烈。早期的 Linux 是针对 386 来开发的, 由于 Linux 只是一套操作系统并不含有其他的应用程序,因此很多工程师在下载了 Linux 核心并且实际安装之后,就只能看着计算机开始运作了! 接下来这些高级工程师为了自己的需求,再在 Linux 上面安装他们所需要的软件就是了。

Tips:

Torvalds 先生在写出 Linux 的时候,其实该核心仅能『驱动 386 所有的硬件』而已, 所谓的『让 386 计算机开始运作,并且等待用户指令输入』而已,事实上, 当时能够在 Linux 上面跑的软件还很少呢!

由于不同的硬件他的功能函数并不相同,例如 IBM 的 Power CPU 与 Intel 的 x86 架构就是不一样! 所以同一套操作系统是无法在不同的硬件平台上面运作的!举例来说,如果你想要让 x86 上面跑的那套操作系统也能够在 Power CPU 上运作时,就得要将该操作系统进行修改才行。如果能够参考硬件的功能函数并据以修改你的操作系统程序代码, 那经过改版后的操作系统就能够在另一个硬件平台上面运作了。 这个动作我们通常就称为『软件移植』了!


知乎提问:

先说 AMD 和 Intel:

Intel 和 AMD 是两家公司。一开始,Intel 先自己研发出 x86 架构,后来,AMD 也拿到了 x86 架构的授权。此时,Intel 向 64 位过渡,研发出 ia64(64 架构),但是因为和 x86 架构不兼容导致市场反应极差。AMD 率先研发出 x86 的 64 位兼容(32 和 64 位的混合架构),也就是后来的 x8664,后来 Intel 也拿到了 x8664 的生产授权(这两家专利交叉很严重)。但是因为是 AMD 率先研发,所以,x8664 也叫 amd64。

目前,AMD 和 Intel 是世界上最大的两家 x86 和 x8664 的 CPU 厂家(其中,Intel 占了 3/4 的市场份额)。

再说 x86,ARM 和 MIPS:

CPU 有两种:CISC 和 RISC。

x86 目前泛指:x86 和 x8664。早期的 x86 是 CISC 的代表,后来的发展中逐渐引入了 RISC 的部分理念,将内部指令的实现大量模块化,准确来说是一个 CISC 外加 RISC 部分技术的架构。

目前 x86 的主要产品有 Intel 的至强、酷睿,奔腾、赛扬和凌动,AMD 的锐龙,APU 等。上文提到的纯 x64 架构目前只有 Intel 的安腾且已经放弃产品线。

到目前为止,Intel 和 AMD 的 x86 架构 CPU 虽然在指令集上有很大差别了,但还是相互兼容的,所以软件可以运行在这两家生产的相同架构的 CPU 上。

ARM 是 RISC 的典型代表,不过在 ARM 的发展过程中引入了部分复杂指令(完全没有复杂指令的话,操作系统运行困难),所以 ARM 是一个 RISC 基础外加 CISC 技术的 CPU。ARM 的主要专利技术在 ARM 公司手中。

MIPS 是另一个典型的 RISC 类处理器。它是一个学院派 CPU,授权门槛极低,因此很多厂家都在做 MIPS 或者 MIPS 衍生架构。我们平时接触到的 MIPS 架构 CPU 主要用在嵌入式领域,比如路由器。

目前最活跃的 MIPS 是中国的龙芯,其 loongisa 架构其实是 MIPS 的扩展。

目期无论 MIPS 还是 ARM,性能和主流 x86 差距都很大,不过 ARM 好在便宜低功耗,MIPS 的纯计算能力很强。

该知乎问题于 2017-08-09 回答,其中有些内容可能已经过时。


No notes link to this note