第一篇:层次结构

基于《鸟哥的私房菜》第一篇内容,主要是对初学者讲解一下计算机的基本知识。这里记录一下重点内容。(无图片、架构,想到哪写到哪)

首先我们对于计算机要有一个直观的认识,其中最显而易见的就是计算机的硬件,因为这是实地存在、可以看见触摸的。一个最简单的计算机系统包含的硬件设施有:主板、内存、硬盘、cpu、显卡、电源以及输入输出设备。我们可以不知道这些设备是如果工作的,因为作为计算机最底层的结构,其工作原理涉及到很多方面的知识。但是我们要有一个概念,知道这些硬件是计算机工作的最终归宿,我们对于计算机的一切操作都要回归到硬件当中。所以这些硬件处于计算机系统的最底层。

在硬件层次之上的一层便是我们很熟悉的操作系统。在操作系统和硬件之间存在一个硬件驱动,是操作系统调用硬件的基础。操作系统一般分为操作系统内核和外用接口,一般是硬件生产商根据不同操作系统提供的接口设计硬件,使得硬件适配。

在操作系统层次之上的便是应用程序,也就是我们平时真正操作的。这些应用程序一般都是通过操作系统提供的接口进行硬件的功能实现。

由此可见,操作系统在整个计算机系统层次结构中处于一个承上启下的位置,这也是人们设计操作系统的缘由–把复杂的硬件底层操作通过操作系统封装为一个个接口以供应用程序的调用,这样可以极大的简化操作,也提高的程序的可移植性和可维护性。

一般操作系统的核心功能可以归纳为以下几块:

  • 系统调用接口:方便程序开发者对硬件资源的进一步利用。
  • 程序管理:通过对cpu的管理进而实现不同程序的管理。
  • 内存管理:引入虚拟内存,通过分页机制实现内存的合理分配。
  • 文件系统管理:多为数据的输入输出(i\o)
  • 设备的驱动:实现对底层硬件的管理。

系统调用存在的必要性

我们知道,通过操作系统内核我们可以直接实现对硬件的调用。但是在实际的程序开发中很少去直接对内核进行操作,因为这个内核一旦核心程序停止或者被破坏,整个操作系统就会崩溃。并且内核是很复杂的,不利于程序开发。

所以为了保护操作系统内核,同时简化开发难度,操作系统会提供一整组开发接口,即系统调用层,这是处于应用程序和操作系统之间的有一个层次。

操作系统内核的具体功能

其实操作系统内核也会一组程序,这组程序的的功能就是实现对硬件的管理。正是由于这组程序,cpu才可以进行逻辑判断和运算操作、内存才可以载入数据和代码、磁盘才可以进行数据的io、网卡才可以收发数据包。