操作系统 (Operator System)

举报
跳动的bit 发表于 2022/08/30 07:39:25 2022/08/30
【摘要】 💦 概念操作系统是进行软硬件资源管理的软件,任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS)。笼统的理解,操作系统包括:内核 (进程管理,内存管理,文件管理,驱动管理)。其他程序 (例如函数库,shell 程序等等)。为什么要有操作系统 ❓最明显的原因是如果没有操作系统,我们就没有办法操作计算机。换句话说,操作系统的出现可以减少用户使用计算机的成本。你总不能自己拿上电信号对...

💦 概念

操作系统是进行软硬件资源管理的软件,任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS)。笼统的理解,操作系统包括:

  1. 内核 (进程管理,内存管理,文件管理,驱动管理)。
  2. 其他程序 (例如函数库,shell 程序等等)。

为什么要有操作系统 ❓

  1. 最明显的原因是如果没有操作系统,我们就没有办法操作计算机。换句话说,操作系统的出现可以减少用户使用计算机的成本。你总不能自己拿上电信号对应的电线自己玩吧,那样成本太高了。
  2. 对下管理好所有的软硬件对上给用户提供一个稳定高效的运行环境。其中硬件指的是 CPU、网卡、显卡等;软件指的是进程管理、文件、驱动、卸载等。不管是对下还是对上,都是为了方便用户使用。

💦 计算机体系及操作系统定位

在这里插入图片描述
在这里插入图片描述

其中用户可以操作 C/C++ 库、Shell、命令、图形界面;底层可以通过操作系统接口完成操作系统工作;操作系统目前主流的功能有四大类 —— 1、进程管理2、内存管理3、文件管理4、驱动管理。后面我们重点学习进程管理和文件管理,其次内存管理学习地址空间和映射关系就行了。

其次操作系统是不信任任何用户的,所以用户不可能通过某种方式去访问操作系统,甚至对系统硬件或者软件的访问。而对系统软硬件的访问都必须经过操作系统。也就是说作为用户想要去访问硬件,只能通过操作系统所提供的接口去完成,但是操作系统提供的接口使用成本高,所以我们就有了基于系统调用的库等。就比如银行不信任任何人,你要去取钱 (硬件),你不能直接去仓库拿钱,你也不能私底下指挥工作人员 (驱动) 给你去仓库拿钱,银行规定你要拿钱,必须通过银行提供的窗口 (操作系统提供的接口) 来取钱。

也就是说我们使用 print、scanf 等库函数时,都使用了系统接口,称之为系统调用。

系统调用和库函数概念 ❓

  1. 在开发角度,操作系统对外会表现为一个整体,它不相信任何用户,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
  2. 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者就对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。类似于银行取钱时,一般都会雇佣指导人员 (库),王大爷不会取钱,就叫指导人员来指导 (调用库)。其实对于库函数的使用要么使用了 SystemCall,如 printf 函数;要么没使用 SystemCall,如 sqrt 函数。

我们学习的 C/C++ 的范畴实际上在系统提供的接口之上,当然 Java 等语言还要在往上点。所以我们经常说的 “ 跨平台性 ” 的根本原因就是因为 C语言的库对用户提供的接口是一样的,但系统调用的接口可能不一样,Windows下就用 W 的,Linux 下就用 L 的

可以看到计算机体系是一个层状结构,任何访问硬件或者系统软件的行为,都必须通过 OS 接口,贯穿OS进行访问操作。

💦 管理

90% 的人操作系统学不会的根本原因是不理解 “ 管理 ”。

在学校里大概有这三种角色:

  1. 学生 (被管理者) —— 软硬件
  2. 辅导员 (执行者) —— 驱动
  3. 校长 (管理者) —— 操作系统

现实中我们做的事情无非是 a) 做决策b) 做执行。总之你是不是一个真正的管理者取决于你做决策的占比多还是少。在现实生活中一般都有一个现象,管理者和被管理者并不见面,校长不会因为你挂科就过来 跟你谈心。

管理者和被管理者并不直接打交道,那么如何进行管理 ❓

  学生和校长并不见面,但还是把学生安排的明明白白的,比如拿奖学金与否、挂科与否。原因是你的个人信息在学校的系统里面,也就是说本质管理者是通过 “ 数据 ” 来进行管理的。比如说评选奖学金,校长在系统中筛选好某系某级综合成绩排名前 3 的学生来发奖学金,这时校长把 3 位同学对应的辅导员叫过来,并要求开一个表彰大会来奖励 3 位同学,然后辅导员就开始着手执行工作。

管理者和被管理者并不直接打交道,那么数据从哪来的 ❓

  就相当于在入学时你的个人信息是由执行者把你的档案录入系统。

  既然是管理数据,就一定要把学生信息抽取出来,而学生信息可以用一个结构体来描述,每一名同学创建一个结构体变量,然后利用指针把所有的同学关联起来,构成一个双向循环链表。此时校长要对旷课超出一定次数的张三进行开除学籍的处分,那么校长先通知辅导员,叫张三不要来了,然后从系统中把张三的个人信息给删除掉。本质学生管理工作,就是对链表的增删查改。

  也就是说操作系统并不和硬件打交道,而是通过驱动程序进行操作。操作系统里会形成对所有硬件相关的数据结构,并连接起来,所以对硬件的管理最后变成了对数据结构的管理

  管理的本质是:a) 对信息或数据进行管理 b) 对被管理对象先描述,然后通过某种数据结构组织起来,简化为先描述,后组织。后面我们都会围绕着这些观点学习。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。