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

目录

操作系统设计原则

操作系统的结构

简单结构

MS-DOS系统

​编辑

UNIX系统

微内核

核心技术

缺点


操作系统设计原则

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

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

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

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

操作系统的结构

简单结构

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

MS-DOS系统

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

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

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

UNIX系统

下图为UNIX系统的一个结构

UNIX系统结构的特点是:

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

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

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

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

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

微内核

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

核心技术

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

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

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

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

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

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

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

缺点

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

相关推荐
Lary_Rock2 分钟前
Android 编译问题 prebuilts/clang/host/linux-x86
android·linux·运维
熬夜学编程的小王3 分钟前
【Linux篇】理解信号:如何通过信号让程序听从操作系统的指令
linux·信号产生·软件条件产生信号
绵绵细雨中的乡音15 分钟前
Linux进程学习【基本认知】
linux·运维·学习
Johny_Zhao33 分钟前
MySQL 高可用集群搭建部署
linux·人工智能·mysql·信息安全·云计算·shell·yum源·系统运维·itsm
Gazer_S1 小时前
【HTTP/2:信息高速公路的革命】
网络·网络协议·http
李匠20241 小时前
C++ RPC以及cmake
网络·c++·网络协议·rpc
科技小E1 小时前
EasyRTC音视频实时通话嵌入式SDK,打造社交娱乐低延迟实时互动的新体验
大数据·网络
珹洺1 小时前
Linux操作系统从入门到实战(三)Linux基础指令(上)
linux·运维·服务器
再睡一夏就好1 小时前
Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别
linux·服务器·c语言·c++·笔记
剁椒排骨1 小时前
win11什么都不动之后一段时间黑屏桌面无法显示,但鼠标仍可移动,得要熄屏之后才能进入的四种解决方法
运维·windows·经验分享·计算机外设·win11·win10