1.认识操作系统
然而,程序不会直接和这些硬件打交道,而且每位程序员也不可能会掌握无忧的系统的细节,这样我们就不用写代码(偷笑),但是这回让计算的操作变得复杂,所以在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为操作系统,她的任务就是为了用户程序提供一个更好,更简单,更清晰的计算机模型。
常见的操作系统主要有Windows,Linux,FreeBSD或OS X,这个带有图形界面的操作系统称为,图形用户界面(Graphical User Interface,GUI),而基于文本,命令行的通常称为Shell
操作系统所在的位置
这是一个操作系统的简化图,最下面的是硬件,硬件包括芯片,电路板,磁盘,键盘,显示器等我们上面提到的设备,在硬件之上的是软件,大部分计算机有两种运行模式:内核态 和 用户态,?软件中最基础的部分是操作系统,她运行在 内核态?中,内核态也称为 管态 和 核心态 ,她们都是操作系统的运行状态,只不过叫法不同,操作系统具有硬件的访问权限,可以执行机器能够执行的任何指令。软件的其余部分运行在 用户态?下。
用户程序接口(shell 或者 GUI) 处于用户态中,并且他们位于用户态的最底层,允许用户运行其他程序,例如QQ,百度云盘,越靠近用户态的应用程序越容易编写,如果你不喜欢QQ 你可以重新写一个 或者换一个,但你不能自行写一个操作系统或者中断处理程序,这个程序有硬件保护,防止外部对其进行修改。
2.计算机硬件简介
操作系统与运行操作系统的内核硬件关系密切。操作系统扩展了计算机指令集并管理计算机的资源。因此,操作系统必须足够了解硬件的运行,我们简单介绍一下现在计算机的硬件
?简单个人计算机的组件
从概念上来看,一台简单的个人电脑可以抽象为上面这种模型,cpu,内存,I/O设备都和总线串联起来并 通过总线与其他设备进行通信。现在操作系统 有着更加复杂的结构,会设计很多条总线。
cpu
cpu 是计算机的大脑,她主要可内存进行交互,从内存中提取指令并执行它。一个CPU的执行周期是从内存中提取第一条,解码并决定它的类型和操作数,执行,然后再提取,解码执行后续的指令,重复该循环直到程序运行完毕。
cpu内部会包含一些寄存器来保存关键变量和临时变量
其中可供应用程序员使用的为
通用寄存器(EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI)
段寄存器(CS、DS、SS、ES、FS、GS)
标志和控制寄存器(EIP、EFLAGS)。
C语言一个第一寄存器变量?register int i = 0;
程序计数器,程序计数器会指示下一条需要从内存提取指令的地址,提取指令后,程序计数器将更新为下一条需要提取的地址。
另一个寄存器是堆栈指针,它指向内存中当前栈的顶端。堆栈指针胡包含输入过程中的有关参数,局部变量以及没有保存在寄存器中的临时变量
|