当前位置: 首页 > article >正文

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

🎁个人主页:我们的五年

🔍系列专栏:Linux课程学习 

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

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

 

目录

操作系统(Operator system)

🥥概念:

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

 🥥如何理解OS:

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

整体理解:

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

🥥理解OS

🥥OS的系统调用的理解:

🥥用户操作接口:

操作系统的分类


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

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

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

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

操作系统(Operator system)

🥥概念:

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

操作系统包括:

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

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

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

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

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

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

2.

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

 🥥如何理解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服务和应用服务器
分布式操作系统管理分布在多个物理位置的计算机资源。云计算和大数据处理

http://www.kler.cn/a/402950.html

相关文章:

  • 跟李笑来学美式俚语(Most Common American Idioms): Part 34
  • Java学习笔记--继承方法的重写介绍,重写方法的注意事项,方法重写的使用场景,super和this
  • springboot+redis+lua实现分布式锁
  • Spring Boot 3.4 正式发布,结构化日志!
  • Django 自定义路由转换器
  • MySQL数据库与Informix:能否创建同名表?
  • 李春葆《数据结构》——图相关代码
  • JVM垃圾回收算法详解
  • C语言内存:我家大门常打开
  • 手机ip地址异常怎么解决
  • tcn 对比 cnn-attension-gru联合模型,时间序列预测,深度神经网络
  • C# 数据结构之【链表】C#链表
  • PN、VFC、PNC局部网络管理
  • django西西家居全屋定制系统的设计与实现
  • Conda环境Git Pull报错
  • Nmap识别MongoDB 6.0指纹
  • Node.js windows版本 下载和安装(详细步骤)
  • C++:探索AVL树旋转的奥秘
  • RBTree--红黑树
  • MySQL 架构概览
  • 开源一个练手的项目,就叫新闻助手吧
  • vue中动态渲染静态图片资源
  • 如何用GPT-4o解读视频
  • 线性回归Tensorflow实现
  • net某高校社交学习平台的设计与实现
  • 多传感器融合感知算法-后融合