操作系统简介

Posted by Suzeyu on 2016-12-30

硬件软件的基石. 所有的软件功能最终都是由硬件来实现的.
计算机体系结构作为一门学科, 是软件和硬件的抽象体, 也是所有开发者都应该了解的.

计算机体系结构

冯’诺依曼结构

冯诺依曼是20世纪公认的最伟大的科学家之一.

冯诺依曼结构又被称为冯诺依曼模型或者普林斯顿结构. 起源于其本人在1945年发表的一篇关于EDVAC(电子离散变量自动计算机)的论文.

在其中. 提出了两个对计算机领域产生深远影响的观点.

  • 采用二进制, 抛弃十进制: 根据电子元件的工作特点, 冯诺依曼提出了使用二进制的设想. 他认为这件极大的简化计算机设备的逻辑线路. 后来的事实也证实了它的这一推断.
  • 程序存储(stored-program): 除了二进制, 还建议计算机能实现程序存储程序控制. 具体而言, 程序指令数据都存放在同一内存储器中, 因此他们的宽度是一样的. 不过程序与数据共享同一总线在一定程度也制约了冯诺依曼机器的瓶颈.

冯诺依曼结构包含了运算器, 控制器, 输入输出设备等元素

哈佛结构

哈佛结构并不是作为冯诺依曼结构的对立面出现的, 相反的, 他们都是属于stored-program类型体系. 区别就在于前者的指令与数据并不保存在同一个存储器中. 即哈佛结构是对冯诺依曼结构的改进和完善.

这也就意味着:

  • 指令与数据可以有不同的数据宽度
  • 执行速度更快

由于取指令和数据无法同步进行, 冯诺依曼结构的执行速率并不占优势. 而采用哈佛结构的计算机由于指令和数据的单独存储, 可以在执行操作的同时预读下一条指令, 所以在一定程度上可以提高其吞吐量.

哈佛结构的缺点在于架构复杂且需要两个存储器, 因而通常会被运用在对速度有特殊需求且成本预算相对较高的场合. 例如ARM9, ARM11

无论是何种结构, 他们所包含的基本元素都是不变的. 即:

  • CPU(中央处理器)
  • 内存储器
  • 输入设备
  • 输出设备

其中输入和输出设备一般统称为I/O设备.

什么是操作系统

计算机操作系统是负责管理系统硬件, 并为上层应用提供稳定编程接口和人机交互界面的软件集合.

如果从共性的角度来看待操作系统.

  • 操作系统对硬件的要求: Android系统面对的是手机, 平板这些嵌入式领域, 以ARM芯片为主; 而Windows系列则是应用PC市场. 所以操作系统必须针对软件来开发的.
  • 同款系统安装在不同型号机器上: 如windows系统可以安装到不同的品牌机器上. 由此可以看出. 操作系统是针对某些硬件架构的, 如ARM, X86
  • 操作系统提供可用的人机交互界面: 例如手机的短信, 拨号. 电脑的浏览器. 文件管理器等.
  • 支持程序的编写和安装

通过这些特性可以看出. 操作系统有两个大职责:

  • 面向下层: 管理硬件, 比如CPU, 内存,Flash,IO
  • 面向上层: 不仅提供人机交互界面. 还可以为第三方程序的研发提供便捷, 可靠, 高效的API(Application Programming Interface). 这样上层应用的设计实现就可以不需要直接面向硬件, 从而大大缩短了应用开发的时间 .

由于Android基于Linux Kernel. 而操作系统的难点进程和内存管理,硬件驱动的支持等, 这是Linux的强项. 并且内核本身也是开源项目.