操作系统入门

本文介绍了操作系统的基础知识,包括其定义、层次结构、主要特征、实例、历史及结构。探讨了Linux、Windows和UNIX家族的操作系统,强调了并发、共享、虚拟和异步等OS核心特性。同时,概述了操作系统的发展历程,从主机到个人电脑,再到网络和分布式计算。文章还提到了不同的操作系统结构,如简单结构、微内核和模块结构。
摘要由CSDN通过智能技术生成

什么是操作系统

用户角度上,操作系统是一个控制软件
管理应用程序
为应用程序提供服务
杀死应用程序
资源管理
管理外设,分配资源

操作系统架层次结构

硬件之上,应用程序之下
应用软件:办公软件,视频播放软件
操作系统位于应用软件之下,为应用软件提供服务支撑
Linux,Windows,Android的界面属于外壳(Shell)(如windows的gui,linux和unix的命令行),而不是内核(kernel)。Kernel是我们的研究重点,在Shell之下

Kernel - 操作系统内部 组件,包括:
CPU调度器
物理内存管理
虚拟内存管理
文件系统管理
中断处理与设备驱动

OS Kernel的特征

  • 并发
    计算机系统中同时存在多个运行的程序,需要OS管理和调度
  • 共享
    “同时”访问
    互斥共享
  • 虚拟
    把硬件虚拟化。如把cpu虚拟化成进程,把磁盘虚拟化成文件,把内存虚拟化成地址空间
    利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
  • 异步
    程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知
    但只要运行环境相同,OS需要保证程序运行的结果也要相同

操作系统实例

UNIX家族
UNIX BSD 是在UNIX的基础上由伯克利学校改进的版本,在网络协议栈上有独到之处,形成了UNIX BSD伯克利软件发行版,开放给大家学习使用。通过开放性使得操作系统得到了广泛的发展,从开源软件来说,有FreeBSD,OpenBSD,NetBSD等等,从产业界来说,基于UNIX BSD有惠普操作系统,苹果操作系统等等,都开发了自己的操作系统,用于商业。UNIX软件的发展产生了很多分支。
Linux家族
Linux是一个学生,写了最早的开源的Linux系统,经过了漫长的发展在操作系统领域占有了很重要的一个位置。谷歌推出的安卓系统用的是Linux内核,很多移动终端都是基于linux开发的
Windows家族
最早是Dos,后面发展成了Windows,有了GUI图形界面。在桌面领域Windows占绝对统治地位,在服务器,终端领域是Linux操作系统占一定的统治地位。
还有一些实时操作系统,面向巨型应用的操作系统。

操作系统的历史

早期计算机使用纸带传输程序和数据,操作系统只起到加载作用
批处理阶段:成批/离线处理,操作系统的并发的特征得到了初步的体现
内存的容量越来越大,CPU执行多个程序
为了更好的利用计算机资源,并且更好的和用户交互看,出现了分时系统
个人电脑操作系统
单用户,利用率已不再是关注点,重点是用户界面和API,很多服务和功能不存在。最初操作系统作为一个简单的服务提供者(简单库),现在是支持协调和沟通的多应用系统。越来越多的安全问题(如电子商务,医疗记录)。
随着集成电路的发展,在一个CPU里面可以集成多个CPU核,多核多处理的情况已经普遍存在。
随着网络的快速发展,使得很多工作不放在本机来做了,可以通过网络丢到数据中心去完成,形成了分布式的操作系统的概念。给一般用户接触的只是前端页面,很多计算存储的工作是放在数据中心来帮你完成,中间是通过internet连在一起,形成了分布式的环境,需要操作系统更好地应对。
有两个应对,一个是通过internet的松耦合,怎样使得交互更加及时,有效。另一个是在数据中心里面是一个紧耦合的集成系统,怎么让这个系统更好地完成计算功能。
操作系统的演变
主机型计算->个人机计算->网络计算->普适计算,移动计算,云计算,大数据处理,许多联网设备为许多人提供个性化的服务。

操作系统结构

常见的结构分为:简单结构,层结构,微内核结构,垂直结构,模块结构,虚拟机结构。现在大部分操作系统采用模块结构。
简单操作系统:MS-DOS(1981~1994),不分模块的单体内核
Unix操作系统是1972由Kenneth Thompson和Dennis Ritchie在贝尔实验室设计。
微内核的设计,尽可能把内核功能移到用户空间。思想是在操作系统内核里面只放最基本的功能,比如说中断处理,消息传递。像文件系统,内存管理,网络协议栈都是放在外围,以进程或者是程序的形式存在,是一种服务的形式。服务于服务之间是通过内核的消息传递机制进行通讯。这种松耦合的机制很灵活,相互之间不会有破坏,在内核里面通过地址隔离可以确保程序相互之间无法去恶意的破坏对方的地址空间。这种灵活和安全是有代价的,代价是性能。如两个服务模块之间要进行交互的话,要先把数据导入内核,内核再导给内存管理的子系统,它们之间要完成多次拷贝,开销要远大于简单的函数调用。在产业界很少得到应用。
学术界存在另一种更加极端的架构,”外核”。使内核分成两部分,一部分和硬件打交道,最主要的功能是完成硬件功能的复制,称为Exokernel,就是外核。另一部分称为Lib OS,Lib OS建立在Exokernel之上,Lib OS跟具体应用打交道。比如说有一个browser,这个browser有一个专门面向browser的Lib OS,这个Lib OS再去访问Exokernel,再去访问硬件。另外可能有一个office,它也有专门面向office的lib OS,去和相应的Exokernel打交道。这两个Lib OS面向的应用特点不一样,所以设计也不一样,唯一的共同点是同时访问Exokernel。由Exokernel来统一完成对硬件的管理,可以使得这两个不同应用的Lib OS可以安全有效地,并发地来使用硬件资源。好处是速度,因为OS中的大部分资源是和具体的应用紧密结合的,应用和OS是紧耦合的,同时通过Exokernel完成和硬件的隔离。在学术界有进一步的研究。
在这里插入图片描述

VMM(虚拟机监视器),跑在传统OS之下,可以虚拟出多个计算机系统,使得在一台物理计算机之上可以虚拟出多台计算机系统,给上层的操作系统使用。VMM虚拟出的是一台完整的计算机,包含CPU,内存,各种外设。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值