操作系统 (Operator System)
💦 概念
操作系统是进行软硬件资源管理的软件
,任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS)。笼统的理解,操作系统包括:
- 内核 (进程管理,内存管理,文件管理,驱动管理)。
- 其他程序 (例如函数库,shell 程序等等)。
为什么要有操作系统 ❓
- 最明显的原因是如果没有操作系统,我们就
没有办法操作计算机
。换句话说,操作系统的出现可以减少用户使用计算机的成本
。你总不能自己拿上电信号对应的电线自己玩吧,那样成本太高了。 对下管理好所有的软硬件
,对上给用户提供一个稳定高效的运行环境
。其中硬件指的是 CPU、网卡、显卡等;软件指的是进程管理、文件、驱动、卸载等。不管是对下还是对上,都是为了方便用户使用。
💦 计算机体系及操作系统定位
其中用户可以操作 C/C++ 库、Shell、命令、图形界面;底层可以通过操作系统接口完成操作系统工作;操作系统目前主流的功能有四大类 —— 1、进程管理
。2、内存管理
。3、文件管理
。4、驱动管理
。后面我们重点学习进程管理和文件管理,其次内存管理学习地址空间和映射关系就行了。
其次操作系统是不信任任何用户的
,所以用户不可能通过某种方式去访问操作系统,甚至对系统硬件或者软件的访问。而对系统软硬件的访问都必须经过操作系统。也就是说作为用户想要去访问硬件,只能通过操作系统所提供的接口去完成,但是操作系统提供的接口使用成本高,所以我们就有了基于系统调用的库等。就比如银行不信任任何人,你要去取钱 (硬件),你不能直接去仓库拿钱,你也不能私底下指挥工作人员 (驱动) 给你去仓库拿钱,银行规定你要拿钱,必须通过银行提供的窗口 (操作系统提供的接口) 来取钱。
也就是说我们使用 print、scanf 等库函数时,都使用了系统接口,称之为系统调用。
系统调用和库函数概念 ❓
- 在开发角度,操作系统对外会
表现为一个整体
,它不相信任何用户,但是会暴露自己的部分接口
,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。 - 系统调用在使用上,功能比较基础,对用户的
要求相对也比较高
,所以,有心的开发者就对部分系统调用进行适度封装
,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。类似于银行取钱时,一般都会雇佣指导人员 (库),王大爷不会取钱,就叫指导人员来指导 (调用库)。其实对于库函数的使用要么使用了 SystemCall,如 printf 函数;要么没使用 SystemCall,如 sqrt 函数。
我们学习的 C/C++ 的范畴实际上在系统提供的接口之上,当然 Java 等语言还要在往上点。所以我们经常说的 “ 跨平台性 ” 的根本原因就是因为 C语言的库对用户提供的接口是一样的,但系统调用的接口可能不一样,Windows下就用 W 的,Linux 下就用 L 的
可以看到计算机体系是一个层状结构
,任何访问硬件或者系统软件的行为,都必须通过 OS 接口,贯穿OS
进行访问操作。
💦 管理
90% 的人操作系统学不会的根本原因是不理解 “ 管理 ”。
在学校里大概有这三种角色:
- 学生 (被管理者) —— 软硬件
- 辅导员 (执行者) —— 驱动
- 校长 (管理者) —— 操作系统
现实中我们做的事情无非是 a) 做决策
。 b) 做执行
。总之你是不是一个真正的管理者取决于你做决策的占比多还是少。在现实生活中一般都有一个现象,管理者和被管理者并不见面,校长不会因为你挂科就过来 跟你谈心。
管理者和被管理者并不直接打交道,那么如何进行管理 ❓
学生和校长并不见面,但还是把学生安排的明明白白的,比如拿奖学金与否、挂科与否。原因是你的个人信息在学校的系统里面,也就是说本质管理者是通过 “ 数据 ” 来进行管理的。比如说评选奖学金,校长在系统中筛选好某系某级综合成绩排名前 3 的学生来发奖学金,这时校长把 3 位同学对应的辅导员叫过来,并要求开一个表彰大会来奖励 3 位同学,然后辅导员就开始着手执行工作。
管理者和被管理者并不直接打交道,那么数据从哪来的 ❓
就相当于在入学时你的个人信息是由执行者把你的档案录入系统。
既然是管理数据,就一定要把学生信息抽取出来,而学生信息可以用一个结构体来描述,每一名同学创建一个结构体变量,然后利用指针把所有的同学关联起来,构成一个双向循环链表。此时校长要对旷课超出一定次数的张三进行开除学籍的处分,那么校长先通知辅导员,叫张三不要来了,然后从系统中把张三的个人信息给删除掉。本质学生管理工作,就是对链表的增删查改。
也就是说操作系统并不和硬件打交道,而是通过驱动程序进行操作。操作系统里会形成对所有硬件相关的数据结构,并连接起来,所以对硬件的管理最后变成了对数据结构的管理
。
管理的本质是:a) 对信息或数据进行管理 b) 对被管理对象先描述,然后通过某种数据结构组织起来,简化为先描述,后组织
。后面我们都会围绕着这些观点学习。
- 点赞
- 收藏
- 关注作者
评论(0)