操作系统(Operator System)简介

简介: 操作系统的简单了解,为接下来学习进程管理,内存管理等操作系统方面的知识做铺垫!

1.概念

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

①内核(进程管理,内存管理,文件管理,驱动管理)

②其他程序(例如函数库, shell程序等等)

Y893I[D_%WJXLDHK1EJ8X)J.png

对于操作系统,有三连问:

①什么是操作系统?

②为什么需要操作系统?

③操作系统是怎么干活的?

答:操作系统是一个进行软硬件资源管理的软件。我们需要操作系统来合理的管理软硬件资源。操作系统通过管理操作来干活。

而我们需要了解管理的本质:

管理者不需要与被管理者之间打交道,依旧能够把被管理对象很好地管理起来。原因是管理者只需拿到被管理者的数据,就能很好的管理了。

所以,管理的本质:就是对数据做管理

2.管理者如何拿到数据?

管理者是如何拿到被管理者的数据的呢?并且,被管理者的数据如果是不断的发生改变,要怎么办?

那么此时,在管理者和被管理者的中间,需要一个执行者。这很好理解,院长是管理者,学生是被管理者,而辅导员就是负责执行院长的决策的执行者,辅导员收集学生信息,上交给院长。

因此,执行者的任务:①执行上面的命令  ②和被管理者接触并拿到相关的数据

那么对应的:操作系统就是管理者,硬件就是被管理者,而在它们之间,就有一层叫做驱动。

(_OW75%]M{GO51M)KBUGJVX.png

3.数据的数量问题

当数据量很少的时候,管理者管理起来当然容易,然而当数据量非常大的时候,管理者管理起来一年下来身体不得报废?所以问题来了,如何去高效地将大数据管理起来?

先来举个例子:一个校长,需要上万名学生的信息,如果要将每个学生的信息做成一个表格, 那么需要上万个表格,那样岂不是不用一个学期,就得换校长啊。

但幸运的是,校长是科班出身的,曾经是一位高级工程师,他想了个办法。他观察到,每个学生的信息,其种类几乎相同,那么,他就使用代码的方式,进行数据管理:

简单的方法:将需要管理的学生的信息(种类):包括姓名,班级,性别,手机号,成绩等等信息,用结构体封装起来,然后创建一个链表!

有了这个链表之和,每当校长要删除或添加学生信息的时候,只需要对链表进行修改即可!当校长需要找成绩最好的那个学生来报送时,直接在链表中找到成绩最高的那个便可。

所以,对学生数据做管理,变成了对链表做管理。

所以,计算机管理硬件:① 描述起来,用struct结构体 ② 组织起来,用链表或其他高效的数据结构.也就是说,操作系统就是使用这种思路去管理硬件的:先描述,将对象描述起来(C++的对象,C语言的结构体),再组织,使用数据结构。

F1L8}`AKURZ}HNV(N{@7H2X.png

其实所有的管理,本质逻辑都是先描述,再组织。

对应的,对于硬件的管理,就是将硬件的属性种类,以对象的形式,写出类,然后使用数据结构来管理,当有一个硬件不行了,坏掉了,那么就对这个硬件的代码去掉或者怎么样。

`2I4OC{98(1NCS8C(N]Z6P2.png

结论:管理的本质:对数据做管理;管理的方法:先描述再组织

4.管理软件

我们说了,操作系统是管理软硬件资源的软件,我们知道了操作系统是怎么样去管理硬件的了,现在就去探究一下,它是怎么管理软件的是。

也就是说,软件能够管理硬件,也能管理软件。

其实,跟管理硬件一样,也是先描述再组织,使用数据结构组织起来统一管理。

所以,操作系统对下通过驱动来管理硬件,对内也会管理软件

52}Y)_3{~Z_R)25)}DTEQ87.png

5.操作系统对上

先来举个例子,银行为什么不让别人进去他的仓库,用他的电脑等等?因为银行系统不相信任何人,而且自己非常容易受到伤害,因此银行要将自己保护起来。

但银行又必须对外提供服务,怎么办呢?那就是使用玻璃窗,下面打一个小孔用于对外服务。

同样的,操作系统也不相信任何人,但是也必须给上层用户提供各种服务。

此时操作系统做了一件事,那就是:给用户提供操作系统接口。

8J}P0X~5PQSXC2E])GY140W.png

对于这个系统调用,就是C式接口,即操作系统通过C语言给我们提供函数调用!

当我们想要访问显卡,显示器等设备硬件,都是通过调用这个接口进行的,我们向操作系统发出访问请求,操作系统就会拿着我们的访问"资料"去给我们处理,当然,如果你的请求不合理,那么操作系统是不会给你处理的!

6.辅助用户去完成访问操作的工具

在Linux中,用户通过shell来实现指令操作,对操作系统接口的访问;在Windows中,用户通过图形化界面来实现对操作系统接口的访问,当然还有点就是编程操作,是通过C/C++的库来进行访问。

对于编程操作,通过冯诺依曼体系我们知道,我们在输入设备(键盘)输入数据的时候,通过内存调用了库中的函数,然后函数向操作系统发出访问硬件的请求,操作系统再给我们处理,最后输出设备(显示器)打印出来。并不是我们直接写在硬件上!

}YOQ]W[GT9@@(F~R%Q$2[(8.png

总结:

99E%HMI05`7]JATL2X$1O0A.png

1A}6%KY3$PXQ]5[EWIC7{SS.png

 以上:就是操作系统软硬件体系结构!

相关文章
|
8月前
|
Linux iOS开发 UED
Linux简介和比较:开源操作系统的优势与差异
Linux简介和比较:开源操作系统的优势与差异
260 0
|
8月前
|
Shell Linux 应用服务中间件
ABAP 面试题:如何使用 ABAP 编程语言的 System CALL 接口,直接执行 ABAP 服务器所在操作系统的 shell 命令?
ABAP 面试题:如何使用 ABAP 编程语言的 System CALL 接口,直接执行 ABAP 服务器所在操作系统的 shell 命令?
115 0
|
8月前
|
Shell Linux 应用服务中间件
使用 ABAP 编程语言的 System CALL 接口,直接执行 ABAP 服务器所在操作系统的 shell 命令
使用 ABAP 编程语言的 System CALL 接口,直接执行 ABAP 服务器所在操作系统的 shell 命令
80 0
|
4月前
|
安全 物联网 Linux
Windows客户端操作系统的历史版本简介
从Windows 1.0到最新的Windows 11,微软操作系统经历了从简单的GUI层迭于DOS之上,到全面独立且功能丰富的现代操作系统的发展历程,不断引入创新的用户界面、提升性能、强化安全性,并随着技术进步与市场需求变化,逐步优化了对多任务处理、网络连接、移动和触控设备的支持。
95 0
|
6月前
|
Linux Shell C语言
|
10月前
|
运维 Python
Python基础之os模块简介
Python基础之os模块简介
68 0
|
Shell Linux 调度
一、计算机操作系统简介
一、计算机操作系统简介
一、计算机操作系统简介
|
安全 Ubuntu 网络协议
Linux操作系统:基础篇1简介
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
116 0
|
传感器 人工智能 网络协议
AliOS Things 操作系统简介|学习笔记
快速学习 AliOS Things 操作系统简介。
195 0
AliOS Things 操作系统简介|学习笔记
|
存储 网络协议 IDE
(*长期更新)软考网络工程师学习笔记——Section 11 Linux操作系统简介
(*长期更新)软考网络工程师学习笔记——Section 11 Linux操作系统简介
(*长期更新)软考网络工程师学习笔记——Section 11 Linux操作系统简介