我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Windows这个我们熟悉的不能再熟悉的系统。
我们每天都在用Windows操作系统,但是其实我们每天直接在打交道的并不是Windows操作系统的内核,而是Windows操作系统的人机交互界面,这个界面其实只是Windows操作系统的一个组件,在Linux上,我们使用Linux系统所使用的界面则只是Linux系统上的一个程序。所以说,我们接触的并不是这些系统的内核。久而久之,我们基本会慢慢把界面里所展示的直观的东西误认为是Windows操作系统本身,其实不是。
今天我们来重新审视Windows操作系统,看看Windows操作系统本身典型特征和主要功能。由Windows操作系统的功能,可以知道Windows操作系统提供的服务有下面这些:提供了一个用以执行程序的环境,提供的服务有程序执行、I/O操作、文件操作、资源分配与保护、错误检测与排除等。
Windows操作系统借鉴了多道程序设计的理念,所谓多道程序设计技术就是指在内存中同时存放两道或两道以上的作业,这些作业同时处于运行状态,且它们在管理程序控制下,相互穿插运行。这些作业共享处理器、外设以及其他资源。
Windows操作系统的中断处理程序只能是操作系统程序,不可能是应用程序。中断处理属于系统中会对系统产生重大影响的动作,因此只允许核心态程序执行。而应用程序通常指用户程序,运行在用户态下,不能进行这些操作。
Windows操作系统可以运行在多种环境下,通常包括传统环境(Windows PC等常见环境)、网络环境(分布式操作系统等)、嵌入式环境(Windows手机操作系统、家用电器的操作系统等)。这些属于操作系统的硬件环境,此外还有人机接口和操作系统与其他软件的关系。为了避免Windows操作系统及其关键数据(如PCB等)受到用户程序有意或无意的破坏,通常将处理器的执行状态分为两种:核心态与用户态。
核心态。核心态又称管态、系统态,是操作系统管理程序执行时机器所处的状态。注意,是机器当时所处的状态,不是程序所处的状态,这点要注意。它具有较高的特权,能执行包括特权指令的一切指令,能访问所有寄存器和存储区。
用户态。用户态又称目态,是用户程序执行时机器所处的状态,注意,是机器当时所处的状态,不是程序所处的状态,这点要注意。是具有较低特权的执行状态,它只能执行规定的指令,只能访问指定的寄存器和存储区。
划分核心态与用户态之后,这两类状态的相关程序以及各自的存储空间被严格区分了,而且在CPU执行时有着完全不同的待遇。用户态程序不能直接调用核心态程序,而是通过执行访问核心态的命令,引起中断,由中断系统转入操作系统内的相应程序,例如,在系统调用时,将由用户态转换到核心态。
特权指令:只能由操作系统内核部分使用,不允许用户直接使用的指令,如I/O指令、设置中断屏蔽指令、清内存指令、存储保护指令和设置时钟指令。
Windows操作系统上一共存在四种中断,分别是硬件故障中断、程序中断、外部中断,访管中断。Windows操作系统上运行的程序在用户态下,即在执行用户程序时引起的中断属于来自CPU的中断,不是硬件故障中断和外部中断。特权指令指的是只允许核心态下使用的指令,因此用户态下对特权指令的使用会实现从用户态到核心态的改变,即会产生访管中断。
硬件故障中断是由硬件故障引起的中断,比如在使用打印机时打印机突然断电,造成硬件异常所引起的中断。程序中断指的是程序在执行过程中产生的一般中断,比如,当程序有使用磁盘等要求时产生的中断,如果用户程序使用的不是特权指令而是一般指令,产生的中断就应用是这种。外部中断是指由外部事件引起的中断,比如单击鼠标和键盘输入等操作引起的中断。