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

目录

操作系统设计原则

操作系统的结构

简单结构

MS-DOS系统

​编辑

UNIX系统

微内核

核心技术

缺点


操作系统设计原则

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

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

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

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

操作系统的结构

简单结构

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

MS-DOS系统

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

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

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

UNIX系统

下图为UNIX系统的一个结构

UNIX系统结构的特点是:

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

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

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

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

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

微内核

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

核心技术

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

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

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

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

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

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

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

缺点

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

相关推荐
谷粒.1 小时前
Cypress vs Playwright vs Selenium:现代Web自动化测试框架深度评测
java·前端·网络·人工智能·python·selenium·测试工具
斯南7 小时前
wireshark的基本使用,过滤请求,过滤数据,追踪数据
网络·测试工具·wireshark
小糖学代码8 小时前
LLM系列:1.python入门:3.布尔型对象
linux·开发语言·python
yenggd8 小时前
首次eve-ng锐捷设备园区网案例实现
网络·智能路由器
shizhan_cloud8 小时前
Shell 函数的知识与实践
linux·运维
Deng8723473488 小时前
代码语法检查工具
linux·服务器·windows
霍夫曼10 小时前
UTC时间与本地时间转换问题
java·linux·服务器·前端·javascript
2301_8107463110 小时前
CKA冲刺40天笔记 - day20-day21 SSL/TLS详解
运维·笔记·网络协议·kubernetes·ssl
❀͜͡傀儡师10 小时前
docker 部署 komari-monitor监控
运维·docker·容器·komari
物联网软硬件开发-轨物科技11 小时前
【轨物方案】软硬件一体赋能,开启矿山机械远程智慧运维新篇章
运维