操作系统(第三周 第一堂)

目录

操作系统设计原则

操作系统的结构

简单结构

MS-DOS系统

​编辑

UNIX系统

微内核

核心技术

缺点


操作系统设计原则

这一段希望大家自己可以好好看一下~~

策略和机制的分离意味着操作系统可以进一步简化。在操作系统诞生之初,大家认为操作系统需要替用户干尽可能多的事情。这导致了两个问题:一、操作系统过于庞大。 二、操作系统干太多事,用户的自主性降低。 三、操作系统制作时不可能考虑到用户所有的需求,特定需要需要用户自己实现

基于这些问题,前辈们提出了机制和策略分离。机制决定怎么做,这是操作系统定义的;策略决定做什么,这是操作系统和用户都可以定义的(操作系统决定用户操作可能造成危险的部分)

UNIX的可加载模块就体现了策略和机制分离。模块存在体系机制,可加载体现策略

操作系统的结构

简单结构

简单结构意味着并没有对操作系统的各个部分进行分级分割处理,而是混杂在一起,不同程序、上下层程序之间能够直接访问

MS-DOS系统

下图为MS-DOS系统的一个结构

在这个结构中,我们可以看到应用程序能够调用系统程序从而访问硬件,能够直接访问硬件。而系统程序访问硬件也不一定要走驱动程序(API接口访问),而是可以直接访问

这将导致 MS-DOS系统很容易发生错误(恶意攻击)从而出现系统奔溃(例如:用户跨过操作系统直接调用I/O硬件进行操作,导致操作系统并不知道,出现错误)

UNIX系统

下图为UNIX系统的一个结构

UNIX系统结构的特点是:

一、用户及应用程序已经不能直接访问硬件或者系统程序

二、访问系统程序(系统服务)必须通过系统调用接口,访问硬件必须通过系统程序(系统服务)(各种API的组合)的运行

三、将操作系统简单分为了三层:硬件、系统服务、用户或应用程序。三者之间能彼此访问但是不能跨级访问

四、此方法让UNIX系统比较于MS系统安全性大大提升

五、这种系统存在的重大缺点就是内核那里提供的系统服务会随着系统的升级越来越庞大,导致操作系统显得非常冗余(很多服务可能大部分人都用不到,但是仍需要下载)

微内核

微内核的出现就解决了上面操作系统的问题------越来越冗余

核心技术

一、对内核进行模块化处理,将内核分为许多模块

二、对内核模块进行分类,分为必要/不必要部件

三、不必要的部件从内核中删除,并将其包装为系统驱动程序(例如现在电脑中的音频驱动、显卡驱动程序)

四、用户需要这些系统服务时可以自行下载这些系统服务程序,然后内核运行时,如果需要就会动态通过其提供的系统调用接口实现这些系统服务程序的功能

五、内核仅仅提供核心服务,其他服务在内核运行时动态实现

从上图中我们可以看到微内核中仅仅有三个功能,这三个功能都是必要的。至于上面的文件系统、驱动程序等都是非必要的(电脑不需要也可能运行程序,完成计算)

从这个例子,我们可以看到如果不下载上面的几个系统程序,内核的内存将会很小。至于下不下载这几个系统程序全看用户自己的需求

缺点

将部分操作系统的功能转变为系统程序去调用,意味着这些系统程序之间是独立的个体,他们仅仅和应用程序以及OS之间存在联系。他们之间如果要交互就需要通过操作系统进行,这样必然造成运行效率降低

相关推荐
kymjs张涛7 小时前
OpenClaw 学习小组:初识
android·linux·人工智能
程序设计实验室10 小时前
经历分享,发现挖矿木马后,服务器快速备份与重装(腾讯云平台)
linux
Miku1611 小时前
OpenClaw-Linux+飞书官方Plugin安装指南
linux·人工智能·agent
Miku1611 小时前
OpenClaw 接入 QQ Bot 完整实践指南
linux·人工智能·agent
Yogurt_cry16 小时前
[树莓派4B] 闲置近10年的爱普生 L310 打印机爆改无线打印机
linux·物联网·树莓派
爱吃橘子橙子柚子2 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
Johny_Zhao2 天前
OpenClaw中级到高级教程
linux·人工智能·信息安全·kubernetes·云计算·yum源·系统运维·openclaw
Sheffield2 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield3 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器