0%

操作系统 - 系统基础

操作系统是被设计用来管理计算机硬件和应用程序的系统程序。

试想,一台计算机本身是一堆零件拼凑而成,而这些零件本身也具备了可编程能力,每一个应用程序要运行,必然要去操作调用这些硬件的接口,而多个应用程序之间各自以各自的方式去调用这些硬件,要这些应用程序开发商按照规矩去操作这些硬件,那是很困难的。

为了解决这个问题,操作系统就诞生了,将操作这些硬件的方式封装在操作系统当中,并给这些应用程序开发商提供统一的接口去调用,并管理控制这些应用程序能够有条不紊、无冲突地分配和使用系统资源。

操作系统

简单的说,操作系统相当于一个中介,帮助应用程序去调用硬件资源,同时也管理着应用程序。

操作系统是一个从始至终都运行在计算机中的程序,俗称内核

操作系统要正常运行,也需要底层硬件的支持,而硬件之间也要相互配合。

计算机底层的硬件包含:CPU、内存、磁盘、磁带、打印机等。

这些硬件通过一条公共总线连接到一块,程序指令及任务由CPU来负责调度,由内存和磁盘来存储资源,所有的硬件共同争抢总线资源,为了保证有序使用内存资源,由内存控制器来统一分配。程序只有被加载到内存当中,才能够被CPU执行。

早期计算机一次只能执行一个任务,为了提高处理速度,相似的任务会被分批执行。由于CPU的运行速度远远大于I/O设备的处理速度,为了使得CPU总有任务可以运行,不至于过于空闲,产生了作业系统,也就是多道程序设计,将作业放入底层作业队列中,由CPU空闲时从队列中取出任务然后执行。再后来,为了提高系统吞吐量,一个CPU已经无法满足需求了,一台计算机被植入了多个CPU,大大提高了计算机的处理能力。

系统总线

计算机从开机到启动操作系统需要经过一个初始化过程。

当点击开机按钮的时候,计算机通电,主板BIOS开始进行初始化固件操作,CPU开始运转。

计算机首先会进行一个自检操作,检查硬件是否正常,如果出现了异常,就发出声响或者关机、蓝屏、显示错误信息等。

自检通过以后,读取第一块磁盘的第一个扇区(主引导扇区),开始加载主引导记录MBR,计算机支持多系统的话,通常会有多个引导记录。引导记录是在磁盘格式化的时候写在磁盘上的。系统启动时,自动将它装入内存并用于加载操作系统的其它部分。

接着,启动Boot Loader 引导加载器,通常使用的是GRUB多操作系统启动程序。如果计算机安装了多个系统的话,可以在这个选择要进入的操作系统,同时会在这个阶段进行内存的初始化。

操作系统选择完毕之后,计算机的控制器就转移给了操作系统,操作系统的内核会被装载到系统内存之中,然后执行初始化操作。

初始化的时候,会调用系统底下的一个init方法,如:/sbin/init,执行后续的一些初始化及系统服务的启动,根据传入的参数,给用户展示的界面可以是命令行(通常是服务端),也可以是图形交互界面(通常是客户端)。

执行完以上操作,操作系统就启动了。

系统启动