Linux学习之认识操作系统

news2024/11/15 11:01:40

1.什么是操做系统?

操作系统实际上就是一个软件,是一个管理电脑硬件与软件资源的软件,同时也是计算机系统的内核与基石。

操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。

2.为什么要用操作系统?

 在几十年前,计算机感刚开始发展的时候,那时候只有甚至没有简单的操作系统,都是通过开关,二极管等显示计算机信息,计算机使用起来非常不方便,通过操作系统,软硬件得到合理的管理(程序的正常运行,计算机的正常工作)。

对于我们来说,计算机在启动的那一刻,加载的第一个软件就是操作系统,通过操作系统,给用户提供了稳定的,高效,安全的使用环境。

计算机的层状结构:

对于我们的下三层结构就可以清晰的看到,操作系统以底层硬件之间的间接交互。

 底层硬件:底层硬件是以冯诺依曼体系结构的方式组合在一起。

驱动程序:每一个硬件基本都要有一个与之匹配的驱动程序,通过驱动程序,操作系统可以控制我们的硬件。

3.操作系统是如何管理的呢?

对于整个计算机系统使用我们可以将它分为两个阶段:

第一阶段:

 操作系统管理的本质并不是管理软硬件,而是软硬件的数据,对结构化数据的管理。

对于操作系统对任何软硬件的管理的工作我们都可以用六个字来概括:“”先描述再组织”

先描述:将被管理的对象以什么样的结构体形式描述出来

再组织:把描述的结构体,定义的对象按数据结构的方式存储起来

故操作系统并不是直接和底层硬件打交道,而是通过驱动程序,获取这些硬件的结构体数据(设备状态,id,设备名称等各种属性),然对这些结构体数据进行管理(增删查改)。

 在操作系统内部就存有大量的数据结构和数据对象。

那么一个硬件怎样才算是被操作系统管理着呢?

硬件对应的结构体数据被操作系统拥有并管理着,那么硬件就是被操作系统管理着。

而对于操作系统的管理,主要是四个方面:

1.进程管理

2.内存管理

3.文件/Io管理

4.驱动管理

无论管理哪一方面,都离不开“先描述,在组织”,先描述管理的是啥,再讲它按数据结构的形式存储下来。

第二阶段:

 对于用户:广义上是指所有的人,狭义上是指开发者。

而操作系统是不相信任何的用户的(不会直接与用户交互),因此用户想要访问到操作系统,就要通过用户的接口调用函数来访问,且接口是操作系统自己实现的,且接口是有限的。用户是不能直接访问操作系统,且因为操作系统管理着硬件,用户也是不能直接访问到底层硬件,必须贯穿整个层状结构。

system call:系统调用会将操作系统封装起来并提供系统调用接口,对于用户访问操作系统i,用户首先要进行调用系统调用的各个接口。

外壳系统:虽说访问操作系统需要用户去调用系统的各个接口,但是站在使用者的方向上,使用者并不知道系统调用具体的实现,也不知道如何调用,此时,使用者使用外壳程序(shell,图形化界面等),通过输入指令或者手动点击等操作,外壳程序将这些指令告诉给系统调用,此时操作系统就知道用户想要什么,执行对应的操作。

库(lib):当然系统调用站在开发者的角度上,是提供了许多系统调用接口,并且将系统调用接口封装成一个个函数,打包形成库,开发者就不用自己再去写,直接调用库中的函数实现系统调用。

明白了这些,我们就会理解操作系统的具体指向:

广义的操作系统:

狭义上的操作系统(也是我们常说的):

对于linux,就是linux内核,所谓一般我们遇到的各种操作系统,(安卓,Linux,红旗,ubuntu等)内核都是一样的,我们都是在这之外的外壳程序,系统调用等重新实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1074962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1. QEMU背景知识

QEMU的两种模拟方案: 系统模拟 System Simulation:可以简单的理解为对整个计算机系统进行模拟(CPU、Memory等) 用户模式模拟 User Mode Simulation:基于模拟方案执行特定应用程序 除了模拟功能外,QUME工具…

教资照片尺寸要求几寸 报考教资照片尺寸介绍

报考教资的照片要求是近期2寸正面免冠照片,并且白底彩色照片,照片的格式为ipg,要求照片的文件大小小雨200l,保证照片清晰,头部占照片驰尊的三分之二左右即可。 具体要求: 照片必须为本人近6个月以内的免冠…

437.路径总和III

法一:深度优先遍历,递归 rootSum(p,val)计算节点p向下且路径和为val的路径和rootSum(p,val)rootSum(p->left,val-pval)rootSum(p->right,val-pval)遍历二叉树所有节点的rootSum并求和 class Solution { public:int rootSum(TreeNode* node,long …

SpringCloud之Resilience4j熔断器源码解析

Hystrix官方已经停止开发了,Hystrix官方推荐使用新一代熔断器作为Resilience4j。作为新一代的熔断器,Resilience4j有很多优势,比如依赖少,模块化程度较好等优势。 Resilience4j是受Hystrix启发而做的熔断器,通过管理远…

Stm32_标准库_9_TIM

频率(HZ)是频率的基本单位1HZ是1s的倒数 STM32F103C8T6一般情况给定时器的内部时钟都是72MHz(系统主频率) TIM基本构成 计数器、预分频器、自动化重装 // 都是16位其中计数器、自动化重装,都是16位换算成10进制范围为[0, 655536] 时间 1 /…

【Es基础入门必看】

Es基础入门 1. ElasticSearch的认知1.1 搜索1.2 倒排索引1.3 Lucene1.4 ES基本概念 1. ElasticSearch的认知 ElasticSearch(以下简称ES)是什么?按照官网的定义,ElasticSearch是一个分布式的、RESTFUL风格的搜索引擎。 1.1 搜索…

浅谈go语言的错误处理

前言 本文是探讨的是"go语言中如何优雅地处理错误" 观察go语言源码 在go语言的内置函数中,很多的函数都会返回一个error,特别是在与文件读写操作的相关的函数的时候,基本上都会有返回error,返回这个的好处是用来辨别是否出错,把结果直接告诉你,以便你进行下一步操…

64.最小路径和

法:动态规划 第一行的元素,只有通过左侧右移才能到达;第一列的元素,只有通过上方的下移才能到达。其他位置元素:比较从上方元素向下移动的路径和和左侧元素向右移动的路径和的较小值dp[i][j]:到达(i,j)位置…

【数据分类】基于麻雀搜索算法优化支持向量机的数据分类方法 SSA-SVM分类算法【Matlab代码#61】

文章目录 【可更换其他群智能算法,获取资源请见文章第6节:资源获取】1. 麻雀搜索算法(SSA)2. 支持向量机(SVM)3. SSA-SVM分类模型4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他群智能算法&#…

Jmeter 链接MySQL测试

1.环境部署 1.1官网下载MySQL Connector https://dev.mysql.com/downloads/connector/j/ 1.2 解压后,将jar放到jmeter/lib目录下 1.3 在测试计划中添加引用 2.脚本设置 2.1设置JDBC Connection Configuration 先添加一个setUp线程中,在setUp中添加“…

Git知识整理(持续更新)

一、跨系统配置之CSLF和LF Windows系统中,从第n行到第n1行,用的是回车\r加换行\n,即Carriage Return和Line Feed。 Mac和Linux系统中,从第n行到第n1行,只用了换行\n,即Line Feed。 git有CRLF机制&#xf…

基于springboot实现准妈妈孕期交流平台项目【项目源码+论文说明】

基于springboot实现准妈妈孕期交流平台演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,准妈妈孕期交流平台当然也不能排除在外。准妈妈孕期交流平台是以实际运用为开…

【UE5 Cesium】16-Cesium for Unreal 建立飞行跟踪器(1)

目录 步骤 一、关卡准备 二、UE读取存有航线点迹的CSV文件 三、程序化CesiumCartographicPolygon的点 步骤 一、关卡准备 1. 在Cesium For Unreal官网找到“San Francisco international Airport”的经纬度如下: 在“CesiumGeoreference”中设置相应的经纬度 …

软件开发进度的有效管控方法和技巧

对于软件开发而言,进度把控十分重要。如果无法即时跟踪进度,就无法获知项目计划的进展,团队通常会在此过程中失去动力。 Zoho Projects 结合IT行业特点运用项目管理技术、理念和方法,包括9大知识领域(项目综合、范围、…

各类高危漏洞介绍及验证方式教程(一)

本期整理的漏洞验证教程约包含50多类漏洞,分多个章节编写,可从以下链接获取全文: 各类高危漏洞验证方式.docx (访问密码: 1455) 搭建dvwa测试环境基础教程.docx(访问密码: 1455) web逻辑漏洞挖掘快速入门基础教程.docx(访问密码: 1455) 01 Ca…

【面试算法——动态规划 21】不同的子序列(hard) 通配符匹配(hard)

115. 不同的子序列 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 链接::https://leetcode.cn/problems/distinct-subsequences/ 示例 1: 输入:s “rab…

FreeRTOS自我救赎1之基本知识

每次写博客都是先用完了知识再写,也是很无奈,因为面试的时候我只会操作但我不会说,多写博客才能会“吹”。 1.目录结构 不好评价,我的目录结构是cubemx生成的,其中BSP_Device存储了一些模块化后的中间层代码 1.1核心…

【Java 进阶篇】使用Druid数据库连接池工具类进行测试

在前面的博客中,我们已经介绍了如何配置和使用Druid数据库连接池。现在,让我们来学习如何编写测试代码,以确保Druid连接池的正常运行。 步骤1:创建测试表 首先,我们需要创建一个测试用的数据库表,以便在示…

MongoDB——centOS7安装mongodb5.0.21版本服务端(图解版)

目录 一、mongodb官网下载地址二、安装步骤2.1、上传安装包并解压2.2、配置环境变量2.3、创建目录并授权2.4、创建配置文件2.5、启动MongoDB 三、开放端口四、客户端连接 一、mongodb官网下载地址 mongodb官网下载地址:https://www.mongodb.com/try/download/commu…

Android启动式服务

Github: https://github.com/MADMAX110/Joke 服务是与活动类似的应用组件,只不过服务没有用户界面。 使用服务可以一直在后台做某些事情,比如下载一个大文件,播放一段音乐或者监听来自服务器的一个消息。 有三种类型的服务: 1、启…