一:编程语言的作用

  编程语言首先是一门语言,其实与汉语、英语等语言的作用相同,语言是沟通介质。只不过编程语言是与计算机沟通,是让计算机读的懂的语言。从而达到让计算机来做人类希望计算机要做的工作。

  但只有编程语言开发软件是不可以的,虽然自己本身也可以通过了解各个硬件的结构与工作原理,通过编程语言来控制各个硬件,再开发自己的程序。但这样大大限制了程序设计人员的效率,每次写程序都要考虑硬件的运用。所以就诞生了操作系统。

二:操作系统与硬件的关系

  操作系统的作用是链接应用程序以及硬件的程序,操作系统本身也是程序。操作系统可以为应用程序以及硬件提供各个接口。这样,程序设计人员不用考虑底层硬件的作用,只考虑自己程序的设计,大大提高了程序设计人员的效率。

三:计算机的基本硬件

  (1)CPU

    如果把计算机比喻为一个人,那么CPU就相当于人的大脑。CPU有逻辑运算与数学运算两种运算。

  (2)内存

    内存是计算机负责临时存储的器件

  (3)硬盘

    硬盘是计算机永久存储数据的器件

  CPU负责计算机的高速运算,计算机所有的计算都是通过CPU完成的。CPU中有用来保存关键变量和临时数据寄存器。CPU通过从内存读取数据来处理数据,内存从硬盘中加载数据。

  CPU中有一种非常重要的寄存器叫程序状态寄存器(PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常重要。

  CPU有内核态与用户态两种模式,是通过PSW中的一个二进制来控制这两种模式。

  内核态:CPU在内核态模式下,可以直接控制硬件。CPU可以执行所有的指令。

  用户态:CPU在用户态模式下,CPU只能执行一部分指令,不可以直接操作硬件。

  内核态与用户态之间的切换,由于CPU在用户态下不可以操作硬件,但应用程序必须要通过硬件来运行结果,所以内核态与用户态就需要不断地切换,来完成工作。应用程序是通过系统调用(system call),系统调用嵌入内核并调用操作系统,TRAP指令把用户态切换成内核态,从而控制硬件。

  (4)存储器的分类

    L1缓存:即寄存器,寄存器与CPU的材质相同,与CPU的速度一样快,速度在1ns,容量小于1KB

    L2缓存:高速缓存是由硬件控制。最常用的高速缓存放置在CPU内部或者非常接近CPU的高速缓存中。高速缓存可以不通过总线把访问请求送往内存。

    内存:内存是存储系统的主力,通常称为随机访问存储RAM,是易失性存储,断电后数据全部消失。

    EEPROM和闪存:两者可擦除重写的,不过速度要比RAM慢。在便携式电子设备中,闪存通常作为存储介质。闪存是数码相机的胶卷,可应用固态硬盘。闪存擦除的次数过多,会被磨损。

    CMOS与BIOS电池:CMOS是易失性的,计算机用CMOS存储器来保持当时的时间,CMOS是由BIOS的电池供电的,所以计算机断电后,时间仍然可以正确的更新。CMOS还可以保存配置参数,比如是哪一块启动磁盘来启动。

   (5)磁盘的结构

      磁盘是一种机械装置,磁盘中有一个或多个金属盘片,机械臂,磁头等组成。数据存储的最小单位是扇区,扇区有磁道组成。不同盘面的扇区构成了柱面。不同的柱面可以用来分区。

      平均寻道时间:寻找数据时,磁头从一个柱面移动到数据所在的柱面成为寻道时间,找到磁道不代表找到了数据的位置。

      平均延迟时间:机械臂到达正确的磁道后,必须等待旋转到数据所在的扇面,这段时间叫延迟时间。

      虚拟内存与MMU:虚拟内存是使计算机运行大于物理内存的程序,是把多余的程序运行至专门空出得磁盘中,一般设置的大小是内存的1.5~2倍。但最好不超过8G。MMU是存储器管理单元,核心在于快速的映射内存地址。

   (6)磁带

      磁带的存储速度比硬盘慢,但是容量更大,价钱便宜,一般做备份使用。

四:设备驱动域控制器

  控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

  设备驱动:操作系统要控制不同厂商的硬件,机制与原理不同,所以需要各个厂商提供操作其硬件的接口,即为驱动程序。

五:总线与南桥北桥

  总线:总线处理I/O设备及CPU到存储器的速度都更快。

  北桥即PCI桥:连接高速设备。

  南桥即ISA桥:连接慢速设备。

六:计算机启动顺序

(1)    计算机通电

(2)    启动BIOS,检查CPU、内存、硬盘

(3)    BIOS获取CMOS的信息,选择要启动的设备

(4)    启动设备通过进入MBR(硬盘的第一扇区,有512字节,前446存储系统的启动信息,后64存储分区信息,最后2位是标志位)

(5)    根据启动信息grub来启动要启动的系统

(6)    系统询问BIOS,检查所有的硬件是否有驱动,如果没有提示安装驱动

七:应用程序启动顺序

(1)    通过系统操作,查找应用软件在硬盘中的位置

(2)    把应用系统加载到内存中

(3)    通过PSW把CPU调整到用户态,CPU获取指令

(4)    PSW把CPU由用户态调整到内核态,处理相应的硬件

(5)    PSW再把CPU由内核态调整到用户态,把处理的结果返回至软件