操作系统初步认识
操作系统给用户提供的功能主要包括:提供操作界面、控制程序运行、管理系统资源、配置系统参数、监控系统状态、工具软件集合。这些功能让用户跟高效地操作计算机,同时使得计算机的功能也更稳定。
- 买回来的计算机首先需要给它装操作系统,如果不装操作系统,计算机能干什么?
想要清楚地知道如果没有操作系统,计算机能干什么就得清楚地知道计算机在开机的时候都做了哪些事情。一切的起点都是按下计算机的电源键。
首先,计算机会加载BIOS
,这是计算机上最接近硬件的软件,各家主板制造商都会开发适合自己主板的BIOS
,而BIOS
中一项很重要的功能就是对自身的硬件做一次健康检查,只有硬件没有问题,才能运行软件,记住,操作系统也是一种软件。这种通电后开始的自检过程被称为“加电自检”,英文中称为Power On Self Test
,简称POST
。如果所有的硬件自检通过,一般都会发出一次“滴”的短声提示,说明硬件一切正常。之后再引导操作系统。所以不装操作系统,计算机也能够运行程序。下图是常见的CMOS
开机引导项启动设置界面,可以设置从硬盘启动,U
盘启动还是光驱启动等。
不安装操作系统计算机也能运行类似上图这样的程序。没有安装操作系统的话,普通用户不能够正常使用。既然操作系统也是一种软件,那操作系统这个系统软件和普通软件有什么区别呢?
- 定义不同:1、系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。2、应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件,可以拓宽计算机系统的应用领域,放大硬件的功能。
- 运行环境不同:1、操作系统可以直接安装到相应的硬件设备上,比如常见
Windows
系统就直接安装在电脑中。2、应用软件不能直接安装在无操作系统的电脑中。 - 对硬件的控制权限不同:1、操作系统直接控制电脑或者电子设备的硬件,管控所载设备一切硬件操作。2、应用软件,不能直接控制所在平台硬件。
机器自检通过后,下面就要引导系统了。这个动作是BIOS
设定的,BIOS
默认会从硬盘上的第0
柱面、第0
磁道、第一个扇区中读取被称为MBR
的东西,即主引导记录。一个扇区的大小是512
字节,存放的内容是一段引导程序和分区信息,其中引导程序部分占用446
字节,另外64
字节是磁盘分区表DPT
,最后两字节是MBR
的结束位。这512
字节的空间内容是由专门的分区程序产生的,比如说Windows
下的fdisk.exe
,或者Linux
下的fdisk
命令,所以它不依赖于任何操作系统,而MBR
中的引导程序也是可以修改的,所以可以利用这个特性实现多操作系统共存。由于RedHat
、CentOS
默认会使用Grub
作为其引导操作系统的程序,而Grub
本身又比较大,所以常见的方式是在MBR
中写入Grub
的地址,这样系统实际会载入Grub
作为操作系统的引导程序。
Grub
是一个系统引导工具,通过它可以加载内核,从而引导系统启动。Grub
最重要的功能就是根据其配置文件加载kernel
镜像,并运行内核加载后的第一个程序/sbin/init
,这个程序会根据/etc/inittab
来进行初始化的工作。
Linux
将根据/etc/inittab
中定义的系统初始化配置si::sysinit:/etc/rc.d/rc.sysinit
执行/etc/rc.sysinit
脚本,该脚本将会设置系统变量、网络配置,并启动swap
、设定/proc
、加载用户自定义模块、加载内核设置等。
之后根据文件中设定的值来确定系统将会运行的runlevel
,默认的runlevel
定在“id:3:initdefault:”
中,其中的数字3
说明目前的运行级别定义为3
。值为3
,就会运行/etc/rc3.d/
下的所有脚本,如果值为5
,就会运行/etc/rc5.d/
下的所有脚本。之后运行/etc/rc.local
,生成终端或X Window
来等待用户登录。
操作系统功能和定义
- 应用程序运行需要操作系统提供哪些支持?
- 操作系统将可执行程序放置到一个特定的目录(硬盘)下面。
- 操作系统将可执行程序装入到内存中,然后运行。
- 操作系统为可执行程序分配内存(不同的类型字节不一样)。
- 操控显卡,将需要展示的字符显示在显示器上(设备驱动的这样一个功能)。
- 操作系统控制死循环不独占
CPU
。 - 程序退出,收回已分配的资源。
- 操作系统的四大功能:
操作系统最核心的功能之一就是进程管理(CPU
管理)。打开任务管理器,我们可以看到Windows
环境下多个“进程”在并发运行。但是我们只有一个CPU
,所以操作系统在管理多个程序共享CPU
。进程管理主要分为进程控制、进程调度、进程通信等。1. 进程控制主要包括创建进程、暂停进程、唤醒进程、撤销进程等。2. 进程调度主要是调度策略,处理进程之间的优先级关系。3. 进程通信主要是进程间的通信。
操作系统的第二大功能就是内存管理功能:内存分配、内存共享、内存保护、虚拟内存等。现代操作系统可以通过对内存的管理,让一个对内存需求很大的应用程序能够在较小的内存中顺利运行。
操作系统的第三大功能是设备管理功能。应用程序通过使用操作系统提供的接口间接地使用各种各样的外设。操作系统负责管理外设,给应用程序分配外设,调度设备。操作系统主要功能是对设备的分配和调度,实现设备的无关性(设备独立性是指 操作系统把所有 外部设备统一当作成文件来看待,只要安装它们的 驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。)和设备驱动。
操作系统的第四个功能就是文件管理功能。文件管理功能包括存储空间的管理(硬盘的管理、硬盘空间的分配),文件的操作、目录的操作(新建文件、删除文件、新建目录、删除目录),还有存取权限的管理。
判断一个软件是不是操作系统,就看这个软件有没有上述的管理进程,管理内存这两个功能。有一些嵌入式操作系统在特定场合可以不要设备管理和文件管理功能。
- 操作系统的定义
操作系统是一个大型系统程序。提供用户接口,方便用户控制计算机,负责为应用程序分配和调度软硬件资源,并控制与协调应用程序并发活动,帮助用户存取和保护信息。
分时技术与分时操作系统
60
年代,计算机硬件有两个重大进展:中断技术和通道技术。1. 中断技术:CPU
收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。2. 通道技术:专门处理外设与内存之间的数据传输的处理机。
随着用户对交互性高、响应快、支持多任务/多用户的程序的需求,出现了分时操作系统,实现多终端计算机。多终端计算机有一个高性能主机和多个终端:
主机提供运算,CPU
和内存。终端提供输入和显示。主机采用分时技术轮流为每个终端服务。每个终端都感觉到是“独占”主机。
- 分时技术:主机以很短的时间片为单位,把
CPU
轮流分配给每个终端使用,直到全部作业被运行完。由于时间片很短,在终端数量不多的情况下, 每个终端都能很快重新获得CPU
,使得每个终端都能得到及时响应。等待周期=时间片x终端数量。
- 实时操作系统:提供及时响应和高可靠性是实时操作系统主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。
- 分时操作系统:分时操作系统提供多路性:即众多联机用户可以同时使用一台计算机。提供独占性:各终端用户感觉到自己独占了计算机。
操作系统启动过程
BIOS和主引导记录MBR
计算机的工作模式有两种:实模式和保护模式。计算机刚刚加电处于的模式是实模式(REAL MODE
),在这个模式下程序按照8086
寻址方法访问0h-FFFFH
(1MB)空间。寻址方式为:物理地址(20位)=段地址加偏移地址的方式。CPU
采用单任务运行的方式。
另外一种是保护模式,是操作系统启动完成之后的一种模式,也被称作内存保护模式(PROTECT MODE
)。保护模式下面采用了段页式的寻址机制(段,页)。会用到虚拟地址,进程,封闭空间等。应用程序和操作系统的运行环境都被保护起来了。CPU
支持多任务。
实模式存取的1M
空间是按照如下形式分配的:
- 前面
640K
【0000–9FFF】:基本内存 - 中间
128k
【A000 – BFFF】:显卡显存 - 末尾
256k
【C000 – FFFF】:BIOS
最后的这个BIOS
又可以细分为三类:
C0000 -- C7FFF
:显示卡BIOS。C8000 -- CBFFF
:IDE控制器BIOS。F0000 -- FFFFF
:最后64KB,系统BIOS。
Basic I/O System
(Firmware, 固件)。它不属于硬件也不属于软件,它以硬件的方式存在,但是它的内部是程序:
它的中文就是基本的输入输出系统,顾名思义支持系统输入输出,位于最后64KB
的F0000 -- FFFFF
。BIOS
的功能有三个:
- 完成系统的启动配置
CMOS
设置:
- 提供基本的设备I/O服务
- 系统的加电自检和启动
计算机按下电源键就开始进行加电自检(POST
)。加电自检的时候就开始初始化基本硬件,比如像CPU
,内存和显卡等。自检正常不提示,错误的话则通过喇叭提示。
按下PowerOn
或者Reset
键执行的第一条指令在FFFF0
处。其指令如下:
JUMP POST; • 1
POST
位于系统BIOS
内部,也就是跳转到加电自检。POST
之后查找显卡BIOS
,调用显卡BIOS
,之后再依次查找其它设备执行相应设备的BIOS
。最后显示启动画面,也就是BIOS
信息,芯片组的型号,主板的信息等。
再往后的话就是从硬盘/软盘/光驱/U盘读入OS
。OS
启动后,由OS
接管计算机。
BIOS
会首先去读硬盘或者软盘的一个特殊扇区,这个扇区就是硬盘或者软盘的首扇区。首扇区里面放的内容就是主启动记录MBR
,放的内容是OS
启动的相关信息(Main Boot Record
),这个扇区512
个字节。
在每个分区的开始会记录一些特殊的内容:
- 绿色部分:分区启动扇区(
Partition Boot Sector
):BootLoader,PBR。 - 蓝色部分:主启动扇区(
Main boot sector
):主要功能就是完成OS
加载或启动管理功能。提供菜单,让用户选择不同的启动项,实现多重启动。加载核心文件:直接指向可启动区加载操作系统;跳转:将启动管理功能转交给其他loader
。
BIOS
和MBR
的运行过程如下所示:
- POST->CMOS设置(硬盘启动)->读取
MBR
->控制权交给MBR
。 MBR
读取分区表(Partition Table),找到其中的活动分区(Active Partition
),并确认其它的分区都不是活动分区。MBR
读取活动分区的第一个分区(分区引导记录PBR
)并把它加载到内存中去。PBR
继续控制后面的引导过程。