【Linux课程学习】:对操作系统(Operator System)的理解

🎁个人主页:我们的五年

🔍系列专栏:Linux课程学习

🌷追光的人,终会万丈光芒

🎉欢迎大家点赞👍评论📝收藏⭐文章

目录

[操作系统(Operator system)](#操作系统(Operator system))

🥥概念:

🥥设计操作系统的目的(OS):

🥥如何理解OS:

对硬件进行管理:(先描述,再组织)

整体理解:

🥥对下层的理解---驱动程序:

🥥理解OS

🥥OS的系统调用的理解:

🥥用户操作接口:

操作系统的分类


1.数据在计算机内流转的过程中,其本质是在不同设备拷贝。---->设备的拷贝效率本质就是计算机的效率

2.面向对象语言要有:1.面向对象的能力。(对对象进行描述)2.标准库。(对对象进行组织)

3.上层要和硬件进行交流,必须经过操作系统。操作系统会给上层提供系统调用。

4.操作系统是用C语言写的,所有的语言必须与C语言有直接和间接有关。

操作系统(Operator system)

🥥概念:

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

操作系统包括:

|------|-------------------------------------------|
| 内核 | 进程/任务/线程管理,内存管理,文件管理,驱动管理 |
| 其他程序 | 函数库,shell程序 |

进程管理:操作系统复杂进程的创建,进程的调度,进程的同步,进程的终止。进程间通信允许进程之间进行信息交流。

文件管理:比如对要保存在文件中的数据进行管理。

驱动管理:控制和协调硬件设备的使用。

🥥设计操作系统的目的(OS):

1.降低应用程序的操作门槛,使用户不要求懂底层的硬件管理,利用操作系统提供的接口就可以对硬件进行管理。

|-------|-------------------------|
| 对底层硬件 | 对底层硬件进行稳定,高效,安全的管理。(手段) |
| 对上层环境 | 给上层提供一个良好的运行环境。(目的) |

🥥如何理解OS:

OS相当于中间角色:OS对上进行收集数据,对下进行决策工作。

对硬件进行管理:(先描述,再组织

OS定义一个结构体,对底层的硬件进行描述(比如设备名称,设备的状态),然后每一个设备都有结构体对象进行管理,并且通过链表进行存储。最后OS对硬件的管理就是对链表的增删查改


整体理解:

🥥对下层的理解---驱动程序:

每一种硬件都要有自己对应的驱动程序。硬件厂商自己写的驱动程序。

让操作系统内核进行管理时,通过驱动程序就能进行。

🥥理解OS

和银行系统一样,必须保证银行的安全性,

以银行系统类比来理解OS。

1.设备,仓库,宿舍,桌椅相当于计算机底层的硬件。

2.对应的这些硬件,设备有计算机相关专业的人堆设备进行管理,仓库有仓库管理员......对应的这些人员,是对某些硬件进行特殊管理的,可以理解为驱动程序。

3.银行的行长就可以看成OS。

4.银行的窗口相当于系统调用。


🥥OS的系统调用的理解:

银行的基本服务是存取服务。

当一个人要进行存钱时,如果没有OS,也就是存钱得让这个人进入银行的内部,将钱放入仓库,然后在电脑上进行登记。虽然步骤是这样的,但是有的人不会按这样的步骤走,他们可能进入仓库不是自己的钱放入仓库,而是把从仓库里拿钱,这样银行就发生了错误。有了安全性问题。

但是银行不是这样进行操作的,如果我们要进行存钱服务,我们要到对应的窗口进行存钱服务,然后告诉银行我们的需求,银行就能帮我们完成存钱业务。不会让我们进入银行的内存。这就相当于OS对外层提供一系列的系统调用,程序只能通过这些系统调用对硬件进行交流。

🥥用户操作接口:

对于系统调用还是有点偏底层,在系统调用之上又封装了用户操作接口。

根据不同的用户的需求,设计出了:

1.命令行界面:Unix和Linux的shell环境。文本基础,效率,灵活性,简洁。一系列指令用C语言写的,比如ls指令:通过系统调用,对磁盘的内容进行访问。

2.图形用户界面:Windows,macOS,Android,IOS的操作系统界面。显示器由许多的点组成,图形化界面本质就是这些点是否被点亮。

操作系统的分类

操作系统类别 特点 应用场景
批处理操作系统 按批次处理作业。 存在于早期大型计算机
分时操作系统 允许多个用户同时使用计算机,每个用户感觉好像独占计算机。 个人计算机
实时操作系统 用于需要快速,确定性反应的场景。 汽车工业
网络操作系统 专门为网络环境设计的操作系统。 Web服务和应用服务器
分布式操作系统 管理分布在多个物理位置的计算机资源。 云计算和大数据处理
相关推荐
小蜗牛慢慢爬行1 分钟前
有关异步场景的 10 大 Spring Boot 面试问题
java·开发语言·网络·spring boot·后端·spring·面试
秋名山小桃子4 分钟前
Kunlun 2280服务器(ARM)Raid卡磁盘盘符漂移问题解决
运维·服务器
与君共勉121385 分钟前
Nginx 负载均衡的实现
运维·服务器·nginx·负载均衡
Algorithm157611 分钟前
云原生相关的 Go 语言工程师技术路线(含博客网址导航)
开发语言·云原生·golang
岑梓铭11 分钟前
(CentOs系统虚拟机)Standalone模式下安装部署“基于Python编写”的Spark框架
linux·python·spark·centos
努力学习的小廉12 分钟前
深入了解Linux —— make和makefile自动化构建工具
linux·服务器·自动化
MZWeiei15 分钟前
Zookeeper基本命令解析
大数据·linux·运维·服务器·zookeeper
shinelord明20 分钟前
【再谈设计模式】享元模式~对象共享的优化妙手
开发语言·数据结构·算法·设计模式·软件工程
Monly2127 分钟前
Java(若依):修改Tomcat的版本
java·开发语言·tomcat
boligongzhu28 分钟前
DALSA工业相机SDK二次开发(图像采集及保存)C#版
开发语言·c#·dalsa