操作系统是如何运行的

本文是《操作系统:以程序员的角度》第三章,本章的主题是从程序员的角度来理解操作系统到底是如何工作的。本篇承接上文《程序员应如何理解中断》,以下为本篇目录:

  • 操作系统是如何启动的

  • 操作系统什么时候才会运行

  • 操作系统运行的本质

  • 操作系统如何获取控制权:定时器

  • 操作系统是如何运行的

  • 总结


在理解了系统调用和中断处理机制之后,我们就可以开始详细的了解一下操作系统是如何工作的了,注意这一节对于从整体上掌握操作系统至关重要,我们首先来看一下操作系统是如何启动的。

操作系统是如何启动的

我们已经知道了,操作系统其实就是一个大的C程序,本质上和我们自己写的C程序没什么区别,用户程序要想运行起来需要被操作系统从磁盘加载到内存中,那么操作系统是如何运行起来的呢?

我们可以自己想一下这个问题,计算机在关机状态下也就是不通电的状态下内存是不能保存内容的,因此一般情况下操作系统和我们的程序一样都是保存在磁盘当中(没有磁盘的计算设备,例如嵌入式设备,会保存在ROM中,稍后会有解释),那么操作系统要想运行起来必然需要被什么东西加载到内存当中。

当我们按下计算机的开机按键后,这时的计算机什么都做不了,因为这时操作系统还没有运行起来,内存中什么都没有。由于现在内存中没有任何程序供CPU执行,因此CPU只能跳转到一种特殊的存储介质中,这种特殊的存储介质就是ROM(Read-Only Memory),这种存储介质在断电后保存的内容不会丢失,CPU开始执行ROM中保存的程序,这个程序就是大家熟悉的BIOS(Basic Input/Output System),基本输入输出系统。

BIOS之所以称之为基本输入输出系统,就是因为BIOS中有管理硬件设备的程序,类似硬件的驱动程序,如果你重装过操作系统使用过BIOS就很容易理解了,你在设置BIOS时就可以使用键盘鼠标来操作,但是请注意此时操作系统还没有运行起来,因此是BIOS来管理的这些硬件设备,当操作系统运行起来后会使用自己的驱动程序来进行设备管理,此时就不再依赖BIOS了。

BIOS程序运行后就开始在磁盘中搜索操作系统映像(Operating System Image,也就是操作系统),可以搜索的位置包括floppy disk,磁盘,CD-ROM等,搜索的顺序基于BIOS的设置,这个大家应该比较清楚,我们在重装操作系统时要设置BIOS的搜索顺序。

一般情况下像Windows、Linux、MacOS这样的大型操作系统其映像都是放在磁盘当中的(就像我们写程序一样,编译成可执行程序后存放在磁盘当中)。当BIOS找到可以使用的操作系统映像后,开始把操作系统映像加载到内存当中,就好比操作系统把我们的程序从磁盘加载到内存一样,加载完毕后调用操作系统初始化函数,比如启动的是Linux系统,那么调用start_kernel()函数,该函数对Linux内核进行初始化,之后操作系统就运行起来了,因此作为程序员如果你好奇操作系统是如何初始化的,那么该阶段完成的就是操作系统的初始化任务

以上就是操作系统启动的完整过程,如下图所示:

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值