操作系统笔记(一):Introduction

最近在学习JVM的时候我感受到了吃力,一些概念较为晦涩,一些词汇看似熟悉但其实不知道其深层含义,于是我打算再次从基础捡起,复习操作系统并做笔记。参考书为《现代操作系统》英文版第三版。

1. basic

  首先需要了解的是:操作系统的概念:它是管理计算机硬件及软件的程序,它更像是一“层”程序,运行于计算机的软硬件之间,让程序更好地运行在硬件之上。若用分层结构来解释计算机和程序,那么最底层是计算机硬件,最顶层是各种应用软件(浏览器、游戏、QQ等等),其中间便是操作系统。一般来说,电脑用户与电脑程序打交道,这往往是通过用户和程序提供的图形界面(GUI)交互实现的,而应用程序与操作系统打交道,以一种我们看不见的方式,最终才是操作系统这个管理者去调动计算机硬件,实现功能。一般情况下,计算机有两种操作模式:内核态(kernal mode)用户态(user mode),内核态拥有极高的权限,几乎能够操纵计算机的一切硬件,操作系统是运行在内核态中的软件。而剩下的软件则一般是运行在用户态中的。

  具体来说,操作系统的作用可以分为两类,一类是作为机器的延展(as an Extended Machine),一类是作为资源管理者,这两类并不是说一个操作系统不是第一种就是第二种,而是根据语境和发挥作用的对象不同,操作系统的功能可以分为这两种。对于前者机器延展来说,操作系统做的是为应用程序提供一种抽象(abstraction),使得程序和编程人员不必考虑很复杂的硬件实现,比如:文件就是一个很厉害的抽象,它们本质上都应该是磁盘上的数据,但用文件这个抽象概念提取之后就变得有界限、清晰了起来,程序里也只需要关注读写文件、关闭文件等等,而不用考虑文件具体在磁盘的什么位置,甚至我要如何控制磁盘的机械臂去读写等等。在这种情况下,我们其实是自上而下(top-down)地看待计算机的,我们从应用程序出发,向下看发现了操作系统。

  操作系统的另一个角色是资源管理者,与前者相对,这里是一个自底向上的视角,从硬件出发,找到了它们的管理者操作系统。一个计算机往往要运行多个应用程序,什么时候让程序A使用CPU?什么时候让程序B写入磁盘甲?这都是操作系统要做出的决策,就像是一个计算机系统中的交警一样。上述的这种复用(Multiplexing)是时间角度上的,还有空间上的多路复用,比如,运行中的程序(进程)是要装载在内存中的,操作系统同样要决定程序们都占用哪部分内存,如何进入/退出等等。

 从上文可以看出,操作系统起到的作用与软硬件有很大的关联,为了更好地理解其在中间的作用,先来复习一下计算机中的各种硬件。首先,一个计算机包括CPU、内存、IO设备、硬盘...等等,各种硬件连接到总线上,并通过总线相互沟通交互。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值