操作系统设计思想–主奴思想

对于操作系统而言,如何稳定可靠运行无疑是最重要的。目前的方案均为将用户进程和其他用户进程、将用户进程和操作系统进行分离。实现操作系统可以管理用户进程,但用户进程不能侵入内核,同时用户进程之间也不能互相干预。那么,在同一个cpu同一个指令集以及内存条等的情况下,如何实现该机制?

这就是操作系统设计的一个思想,主奴思想,即特权思想。

我们希望能够实现,操作系统可以访问以及管理应用程序,但应用程序之间不能够互相干预,同时应用程序的权限是有限的,即不可以干扰操作系统。

因此,操作系统需要管理应用程序,令其可访问的内存空间是有界的,同时操作系统负责管理用户进程的CPU访问时间,并且全权管理硬件,应用程序需要使用外设等必须向操作系统请示。

主奴机制的三方面体现
  • 进程调度方面。由操作系统全权管理CPU的调度,Linux操作系统每次分配给进程的运行时间由若干时间片组成,分配多少直接由操作系统决定,同时时间片一旦用完将强制交还给内核。因此,操作系统完全支配CPU调度,这保证了应用程序占用CPU资源的情况最多也只影响分配给该程序的时间片范围,避免了如果由进程自己管理则会出现恶意进程占据CPU不归还的现象,将导致系统崩溃。

  • 内存管理方面。操作系统将管理内存分配,在进程的task_struct结构中明确定义了进程的边界,未经允许的跨界行为将被制止。因此清晰的边界保证了进程不能直接越界访问操作系统内核,也不能随意直接访问其他进程的空间。

    在Linux设计中,将空间氛围了内核专用区和进程分页区,内核可以访问两个区域,但进程不可以访问内核专用区。同时,通过段页机制,用户进程只能访问虚拟地址而不能直接使用物理地址。因为一旦内核地址泄露便很可能会被利用而攻击,一旦恶意程序获得了内核的管理权则直接完全控制了整个机器。

  • 文件系统方面。操作系统管理着磁盘调度,用户需要读写文件都需要向操作系统申请,同时该过程受操作系统调度。

实现主奴机制的关键技术
  • 保护和分页
  • 依托CPU硬件提供的特权级
  • 中断:实现特权级切换
建立主奴机制的决定性因素–先机

理论上,上述的一切前提,都是操作系统能够直接获得最高的优先级。计算机开机时是实模式,没有特权的区分,此时,开始加载BIOS、内核等,因此,操作系统是最早执行的程序,其他进程都是它直接或间接创建的,那其他进程便都是受其管理的。因此,如果一个病毒能够先于操作系统启动,则它将获得最高的特权级,也就将完全控制这个机器。

操作系统设计思想--主奴思想相关推荐

  1. 操作系统的设计指导思想——主奴机制

    在学习操作系统的过程中我们会发现一个问题:应用程序是应用程序,操作系统也是程序,操作系统程序凭什么能对应用程序进行组织.管理和协调而不受应用程序损害呢?我们认为凭的是特权机制.要想让操作系统做到能够对 ...

  2. 荐书|程序员必读经典《UNIX操作系统设计》

    当前,介绍UNIX系统的书籍很多,然而论述UNIX系统内部结构的专著却屈指可数.<UNIX操作系统设计>是其中非常引人注目的一本.本书作者Maurice J.Bach多年来在AT& ...

  3. 操作系统哲学原理(22)操作系统设计原理-操作系统设计之哲学原理

    说明:该系类文章更多的是从从哲学视角看 操作系统 这门学科.同时也是 操作系统的学习笔记总结.因为博主 这些年主要是以研究安卓系统和 嵌入式Linux为主,因此这个系类文章也是这两个领域不可或缺的基石 ...

  4. 是不是正是因为linux主奴机制,所以Linux不需要杀毒软件?

    是不是正是因为linux主奴机制,所以Linux不需要杀毒软件? 几乎什么操作都要先经过内核的系统调用 https://zhuanlan.zhihu.com/p/36725483 https://ba ...

  5. linux 0.01内核分析与操作系统设计 pdf,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 readme 本光盘为<Linux 0.0.1内核分析与操作系统设计--创造你自己的操作系统>一书的配套光盘,读者可自由取其源文件做学习,研究 ...

  6. linux1.0内核下载,《Linux 0.01 内核分析与操作系统设计》(Linxu 0.01Source)

    中文名: Linux_0_01_内核分析与操作系统设计 英文名: Linxu 0.01Source 发行时间: 2003年 地区: 大陆 对白语言: 普通话 简介: 清华 卢军<Linux0.0 ...

  7. Linux0.1源码分析,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 readme 本光盘为<Linux 0.0.1内核分析与操作系统设计--创造你自己的操作系统>一书的配套光盘,读者可自由取其源文件做学习,研究 ...

  8. 转:Bit-Map思想与2-BitMap思想

    转:Bit-Map思想与2-BitMap思想 1. Bit-map思想 给你一堆西安市的电话号码列表,数量大概在千万级,要求从中找出所有重复的电话号码,需要时间复杂度尽可能小. 目前西安市的电话号码大 ...

  9. 技术新星决战巅峰,全国大学生操作系统设计赛圆满结束!

    在新兴技术百花齐放的今天,我国对自主知识产权的发展愈发重视.除了大量研发资金投入国产芯片.软件及5G等技术领域,基础软件的自主可控也成为必然趋势,其中国产操作系统的开发被定义成了一场收复失地的战争.要 ...

最新文章

  1. 如何将CSDN文档转换成IPYNB格式的文档?
  2. BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)
  3. Smarty2至Smarty3升级指南
  4. python示例_Python中的缩进示例
  5. hive中的日期转换函数
  6. Nlpir Parser智能语义平台全文搜索
  7. python format 时间格式
  8. mysql集群负载均衡,这些知识你必须拿下
  9. 服务器没有进行新建或修改数据的操作,14-认识DjangoRESTframework
  10. apache2 安装时报错 ServerRoot must be a valid directory
  11. Shapley Explanation Networks
  12. CondaValueError : prefix already exists: /**/anaconda3
  13. 【Linux系列文章】网络配置
  14. MacBook上有哪些值得下载的软件?
  15. 网络编程——(1)网络编程入门
  16. NVDIMM的应用场景
  17. CAD .NET 14.1.X DWG/ DXF, PLT 自由转换- CNC
  18. SQL Server 配置管理器
  19. 微信识别图片文字直接导出Word方法
  20. 学习笔记(5):第01章-互联网的概述(历史发展+技术发展+常见应用)-互联网的接入(手把手教你调试ADSL宽带技术)

热门文章

  1. java 断言assert_Java中的断言 Assert
  2. 网络环境ping丢包率测试
  3. NPM Error Unexpected token < in JSON at position 0 while parsing near ‘<!DOCTYP
  4. kali更新源及更新系统。
  5. 学习方法-学习观(04)英语专题
  6. 【假捻发加工生产工单下达】
  7. 台式机和笔记本 如何选择
  8. Khatri-Rao积(KR积)
  9. 域名交易网站哪家好?从三方面评估域名平台质量
  10. 行业分析:我国导电塑料市场需求量为2.31万吨