操作系统:一款纯正的“管理”软件
目录
前言:
1.操作系统的概念
2.操作系统的结构示意图:
3.什么是接口?
4.什么是驱动程序?
4.什么是系统调用(system call)?
5.操作系统和操作系统内核的区别
6.设计OS的核心目的

前言:
微软的windows,苹果的macos以及linux都是市面上常见的计算机的操作系统(Operator System,简称OS)。虽然随着时代的发展以及操作系统版本的不断迭代,各种操作系统都拥有属于自己的特色,但无论是哪一款操作系统,它们的“使命”都是一致的:管理软件和硬件资源。
1.操作系统的概念
操作系统是一种最接近硬件的软件,它控制和管理计算机系统的硬件和软件资源,为用户提供了一个便捷的操作平台和接口。
操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
外壳程序(例如函数库,shell程序等等)
2.操作系统的结构示意图:

3.什么是接口?
接口即计算机系统中两个独立的部件进行信息交换的共享边界,应用程序和操作系统之间存在接口,操作系统和计算机硬件之间也存在接口。通过接口可以实现应用程序与操作系统之间的通信和操作系统和计算机硬件之间的通信。
4.什么是驱动程序?
相信上面安装驱动程序的弹窗大家都见过,那么这个驱动程序到底是啥呢?
驱动程序:驱动程序是一种硬件厂商提供的特殊的软件组件,相当于硬件设备的接口,操作系统通过这个接口来控制和操作硬件设备。其主要功能是使计算机和设备之间能够进行通信。
理论上来说,没有驱动,操作系统内核就无法访问硬件。
为什么每个硬件的驱动程序都要硬件厂商提供呢?
这是因为,硬件设备的品牌有很多,各种品牌之间的设备可能会有差别, 操作系统无法应对所有的硬件提供合适的驱动。这样一来,干脆就让厂家自己提供不同操作系统的驱动程序,操作系统只需要使用这些接口就可以了。所以各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。就好像我们买的网卡和显卡,它们都会自带驱动程序,在使用它们之前系统需要先安装驱动程序。
4.什么是系统调用(system call)?
系统调用,又名系统呼叫,是指运行在使用者空间的程序向操作系统内核请求更高权限的服务。(来自维基百科)
用printf函数举例,假如我们在运行某份代码文件。由于printf函数是向屏幕文件写入数据,需要访问屏幕这个硬件。在执行printf函数的时候,就会发出一个系统调用的请求,请求操作系统分配屏幕资源。这也使操作系统内核的不被暴露在外面。
5.操作系统和操作系统内核的区别
内核(kernel):是整个操作系统的核心部分,负责管理 CPU、内存、磁盘、网络等硬件资源,并为应用程序提供进程管理、内存管理、文件管理、设备管理等功能。
操作系统:是指包含内核系统、系统服务等一整套软件系统,内核系统和操作系统不是相互排斥的概念,它们是层次分明的关系,内核系统是操作系统的基础,而操作系统则是更广泛的概念,包括了内核系统以外的一些其他组成部分。
6.设计OS的核心目的
与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境

相关文章:
操作系统:一款纯正的“管理”软件
目录 前言: 1.操作系统的概念 2.操作系统的结构示意图: 3.什么是接口? 4.什么是驱动程序? 4.什么是系统调用(system call)? 5.操作系统和操作系统内核的区别 6.设计OS的核心目的 前言&…...
Mac笔记本聚焦SpotLight占用内存太高的 解法
分享一个自创的绝对有效的解决苹果电脑Mac笔记本SpotLight聚焦占用内存过高的方法! 一、背景 / 问题原因 1、Mac的聚焦功能,可以快速打开应用程序,非常方便! But,随着电脑的使用文件等越来越多,就会导致SpotLight聚焦需要更多更多甚至巨多的内存来建立索引,就会导致电脑…...
C++中.h和.hpp文件有什么区别?
在C中,.h和.hpp文件都是用于包含函数声明、类定义、宏定义等内容的头文件,它们的主要区别在于约定和习惯。 历史与来源:.h后缀是C语言头文件的标准后缀,随着C的演变,一些开发者开始使用.hpp后缀来表示C头文件ÿ…...
MongoDB聚合运算符:$derivative
$derivative聚合运算符返回返回指定窗口内的平均变化率(即求导),变化率使用以下公式计算: $setWindowFields阶段窗口中的第一个和最后一个文件。分子,等于最后一个文档的表达式的值减去第一个文档表达式的值。分母&am…...
面试官:如果你现在有20个Spring Boot微服务,如何监视所有这些Spring Boot微服务?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:如果你现在有20个Spring Boot微服务,如何监视这些微服务? 要监视所有 Spring Boot 微服务,可以使用 Spring Boot Admin 这样的监控工具。Sprin…...
冯诺依曼模型
只要我们学习计算机操作系统,就离不开对冯诺依曼体系结构。因为我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 1.什么是冯诺依曼模型呢? 如上图所示,冯诺依曼模型由…...
高低拖延个体的任务决策及执行差异
高低拖延个体的任务决策及执行差异 摘要 拖延行为普遍存在,且影响着许多人的工作.学习和生活。已有的许多研究发现拖延个体明知自己需要尽快完成某项任务,但行动上却迟迟无法付诸实践,表现出一种知行不- -”的倾向.这种倾向是否在高低拖延特质者之间存…...
数据分析Pandas专栏---第十三章<Pandas训练题(初)>
前言: 写这篇是为了弄一个富有挑战性的Pandas练习题库,涵盖了许多常见和实用的数据处理问题。通过解决这些练习,能够深入了解Pandas提供的关键功能,掌握有效处理数据的技巧和方法。 练习题库涵盖了选择特定列并创建新DataFrame、对DataFrame进…...
Delete `␍`eslint(prettier/prettier) 错误的解决方案
最近开始一个新的项目,由他人构建,clone下来后,发现页面每行都有黄色的波浪线的提示:Delete ␍eslint(prettier/prettier) ,尝试了很多方法不能解决,最后选择关闭Prettier: 在.eslintrc.js文件…...
第3周 Python字典、集合刷题
第3周 Python字典、集合刷题 单击题目,直接跳转到页面刷题,一周后公布答案。 B2125:最高分数的学生姓名28:返回字典的键值75:字符串转字典77:映射字符串中的字母87:按条件过滤字典B3632&#…...
文字校对的首选——爱校对:用户真实反馈汇编
在今日快节奏、高标准的工作环境下,准确与效率成为了每位专业人士追求的双重目标。不论是在政府机构、学术领域、企业界,还是在自由职业者的行列中,我们都面临着同一个挑战:如何在保持工作速度的同时,确保每一份文档的…...
Llama-3即将发布:Meta公布其庞大的AI算力集群
Meta,这家全球科技巨头,再次以其在人工智能(AI)领域的雄心壮志震惊了世界。3月13日,公司在其官方网站上宣布了两个全新的24K H100 GPU集群,这些集群专为训练其大型模型Llama-3而设计,总计拥有高…...
【JAVA】Date、LocalDate、LocalDateTime 详解,实践应用
Date、LocalDate、LocalDateTime 详解,实践应用 一、Date、LocalDate 简介1、 java.util.Date:2、 java.time.LocalDateTime:3、 java.time.LocalDate: 二、输出格式1、使用 java.util.Date 的示例代码如下:2、使用 ja…...
分布式链路追踪(一)SkyWalking(1)介绍与安装
一、介绍 1、简介: 2、组成 以6.5.0为例,该版本下Skywalking主要分为oap、webapp和agent三部分,oap和webapp分别用于汇总数据和展示,这两块共同组成了Skywalking的平台;agent是探针,部署在需要收集数据的…...
蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛
一、题目 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 注意&…...
SCAU 8580 合并链表
8580 合并链表 时间限制:1000MS 代码长度限制:10KB 提交次数:3724 通过次数:2077 题型: 编程题 语言: G;GCC Description 线性链表的基本操作如下: #include<stdio.h> #include<malloc.h> #define ERROR 0 #define OK 1 #define ElemType inttyped…...
Docker安装Gitlab
下载镜像 直接下载最新版,比较大有2.36G docker pull gitlab/gitlab-ce创建数据存放的目录位置 按自己习惯位置创建目录 mkdir -p /usr/local/docker/docker_gitlab编写docker-compose.yml 在上面创建的挂载目录里面(/usr/local/docker/docker_gitl…...
浅淡 C++ 与 C++ 入门
我们知道,C语言是结构化和模块化的语言,适用于较小规模的程序。而当解决复杂问题,需要高度抽象和建模时,C语言则不合适,而C正是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库…...
学习和认知的四个阶段,以及学习方法分享
本文分享学习的四个不同的阶段,以及分享个人的一些学习方法。 一、学习认知的四个阶段 我们在学习的过程中,总会经历这几个阶段: 第一阶段:不知道自己不知道; 第二阶段:知道自己不知道; 第三…...
Python编程从入门到实践中的一些误区
1.num 使用num时python报错,后来查过后才知道是因为python不支持自增或自减,可以用1。 2.字符串和非字符串连接 要先将非字符串转换为字符串类型之后才能连接 print(2int(‘2’))#4 3.关键字参数必须在未…...
面向商业航天的高可靠电机控制系统:从环境约束到芯片实现
摘要商业航天已成为全球航天产业高质量发展的核心增长极,电机控制系统作为运载火箭、卫星平台、空间载荷与在轨服务装备的关键执行机构,其在轨可靠性、控制精度与环境适应性直接决定航天任务成败。本文系统梳理商业航天电机控制领域的技术演进、典型负载…...
基于FPGA的车道线检测系统设计
基于FPGA的车道线检测系统设计 摘要 车道线检测是高级驾驶辅助系统(ADAS)中的核心功能模块,对实时性和计算效率有着严苛的要求。传统的软件实现方式在应对高分辨率视频流时往往面临延迟大、资源占用高等问题。本文设计并实现了一套基于FPGA的车道线检测系统,采用Altera C…...
计算机毕业设计:Python智慧出行数据分析系统 Django框架 可视化 数据大屏 数据分析 大数据 机器学习 深度学习(建议收藏)✅
1、项目介绍 技术栈:Python语言、Django框架、ECharts可视化库、数据大屏技术。 功能模块: 首页模块数据大屏模块数据分析模块数据查看模块登录模块后台管理模块订单管理模块用户管理模块 项目介绍:滴滴出行数据分析平台基于Django框架开发&a…...
深入OTTO音序器:创建复杂节奏和自动化控制的完整指南
深入OTTO音序器:创建复杂节奏和自动化控制的完整指南 【免费下载链接】OTTO Sampler, Sequencer, Multi-engine synth and effects - in a box! [WIP] 项目地址: https://gitcode.com/gh_mirrors/otto1/OTTO OTTO是一款开源的数字硬件合成器、节奏盒和效果处…...
从产品到生态:观远数据的一站式智能分析平台之路
开篇:客户现场的真实发问 上个月在华东某快消头部企业的CIO圆桌会上,负责数字化转型的副总裁问了我一个很尖锐的问题: “你们BI厂商总说一站式,但我前几年买的BI工具,最后要么数据接不上要额外买数仓工具,要…...
Fooocus:让AI图像创作触手可及的革新工具
Fooocus:让AI图像创作触手可及的革新工具 【免费下载链接】Fooocus Focus on prompting and generating 项目地址: https://gitcode.com/GitHub_Trending/fo/Fooocus 价值定位:AI绘画的民主化革命 🚀 在数字创作领域,专业…...
高级编程 第一节:Python中的时间处理
一、时间标准库:time 1、time库介绍 time库是Python中处理时间的标准库,提供获取系统时间并格式化输出功能,但是功能上,没有datatime库强大。 time库中相关概念: 时间戳:格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,…...
AI辅助地图开发:用自然语言告诉快马你想要什么样的智能地图应用
AI辅助地图开发:用自然语言告诉快马你想要什么样的智能地图应用 最近在做一个旅游推荐项目,需要展示杭州的几个著名景点在地图上的分布。传统做法可能需要手动查找每个地点的经纬度坐标,然后编写大量代码来添加标记点和实现筛选功能。但在In…...
Ubuntu 18.04安装后必做的5件事:换源、更新、装基础软件及常见问题修复
Ubuntu 18.04系统初始化优化指南:从零到高效工作环境 刚完成Ubuntu 18.04安装的新用户往往会面临一系列基础配置问题——从龟速的软件下载到缺失的日常应用,从分辨率异常到输入法卡顿。这些看似琐碎的问题实则构成了Linux入门的第一道门槛。本文将系统性…...
车载蓝牙只能打电话不能放音乐?教你排查A2DP协议支持问题(含车型适配清单)
车载蓝牙音乐播放失效?全面解析A2DP协议兼容性与实战修复指南 开车时想用蓝牙播放手机里的音乐,却发现只能接打电话?这种"半残"状态困扰着不少车主。问题的核心往往在于A2DP(高级音频分发协议)的支持与配置。…...

