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

[操作系统篇|学习笔记]初识操作系统

一.操作系统概念与功能1.1 定义操作系统Operating SystemOS是管理和控制计算机软硬件资源的系统软件是用户与计算机硬件之间的接口也是其他应用软件运行的基础。简单来说就是三点1.操作系统是系统资源的管理者。2.向上提供方便易用的服务。3.是最接近硬件的一层软件。1.2 功能1.2.1 人机交互1.2.2 资源管理1.处理机管理核心任务负责程序的启动、运行、切换、结束关键作用分配 CPU 时间让多个程序 “同时运行”2.存储器管理核心任务分配和回收内存空间关键作用保证程序互不干扰实现虚拟内存扩展3.文件管理核心任务负责文件的存储、读取、修改、删除、权限控制关键作用组织目录结构方便用户查找数据4.设备管理核心任务管理键盘、鼠标、显示器、硬盘、打印机等外设关键作用统一驱动接口让软件不用关心硬件细节1.2.3 资源抽象操作系统对底层物理硬件进行抽象隐藏硬件细节提供统一、简洁的逻辑接口把复杂的物理内存抽象为虚拟地址空间程序只需使用逻辑地址把杂乱的磁盘扇区抽象为文件与目录用户无需关心物理存储位置把不同厂商的硬件抽象为统一的系统调用接口让程序可跨硬件、可移植不用为每类硬件重写代码。二.操作系统的特征2.1 并发指宏观上同时运行微观上交替执行。单核CPU同一时刻只能执行一个程序各程序只能并发运行。多核CPU同一时刻可以同时执行多个程序多个程序可以并行地运行。区别并行是真・同时执行需要多核 CPU并发是交替执行。2.2 共享系统中的硬件 / 软件资源被多个并发执行的程序共同使用。并发和共享是最基础、互为依存的两大特征。2.3 虚拟2.4 异步进程以不可预知、走走停停的速度向前推进。进程会因等待资源暂停、获得资源再继续但只要运行环境相同操作系统能保证最终结果完全一致。三.操作系统的发展阶段时间核心特点手工操作阶段无 OS1940s–1950s 初无操作系统人工控制独占机器单道批处理 OS1950s 末自动批量执行内存仅一道程序多道批处理 OS1960s 初多道程序并发硬件利用率大幅提高分时 OS1960s 中时间片轮转多用户交互代表UNIX实时 OS1960s 末响应快、高可靠用于控制 / 金融通用 OS1970s–1980s融合批处理、分时、实时功能现代 OS1980s 至今桌面、移动、嵌入式、云原生等多元化四.操作系统的运行环境4.1 原理程序运行的过程其实就是CPU执行一条一条的机器指令的过程。4.2 内核4.2.1 定义操作系统的核心程序常驻内存是硬件与上层软件的中间层权限最高4.2.2 功能1.支撑功能功能核心作用中断处理内核最基础功能响应硬件 / 软件中断切换内核态处理 I/O、异常、系统调用时钟管理管理系统时钟提供时间片轮转、定时任务、系统计时支撑进程调度原语操作内核中不可中断的原子操作用于进程同步、资源分配、状态切换2.资源管理功能核心作用进程管理进程创建、调度、切换、通信、同步负责 CPU 资源分配存储器管理内存分配与回收、虚拟内存、地址映射、内存保护设备管理设备驱动、I/O 控制、设备分配、缓冲区管理4.3 处理机4.3.1 两种处理机状态对比项核心态管态 / 内核态用户态目态权限等级最高特权受限特权运行的程序操作系统内核程序用户应用程序可执行指令特权指令 非特权指令仅非特权指令可操作资源所有硬件、系统资源、内存、寄存器仅用户地址空间、普通运算进入方式系统调用、中断、异常陷入执行中断返回指令主要作用管理资源、控制硬件、处理系统级操作运行普通应用、完成用户任务内核态--用户态执行一条特权指令——修改PSW的标志为“用户态”这个动作意味着操作系统将主动让出CPU的使用权。用户态--内核态由“中断”引发硬件自动完成变态的过程触发中断信号意味着操作系统将强行夺回CPU的使用权。4.3.2 处理机状态切换流程图“变态”CPU的转换的过程是有成本的要消耗不少时间。频繁地“变态”会降低系统性能。4.4 中断与异常对比项中断外中断异常内中断来源CPU 外部硬件CPU 内部指令执行发生时机异步随机同步必定由某条指令触发与当前指令关系无关直接相关典型例子I/O 完成、时钟、键盘中断除零、缺页、系统调用、非法指令处理后回到原指令下一条继续执行可能重执行原指令或终止程序触发状态切换用户态 → 核心态用户态 → 核心态中断管外部让系统并发、高效、响应及时异常管内部让系统安全、稳定、支持用户请求内核服务4.5 生成与引导4.5.1 操作系统的生成阶段核心操作说明源码与配置内核源码 功能配置选择硬件支持、功能开关生成配置文件编译主内核编译核心代码生成内核主模块常驻内存编译模块编译可加载内核模块 (LKM)生成驱动、文件系统等.ko 模块文件链接与打包链接 压缩生成镜像生成 vmlinuz、bzImage 等可引导内核镜像生成辅助文件制作 initramfs/initrd临时根文件系统用于挂载真实根分区4.5.2 操作系统的引导阶段执行主体核心任务1. 上电自检 (POST)BIOS/UEFI硬件检测初始化硬件查找启动设备2. 加载引导程序BIOS/UEFI读取 MBR/GPT加载Boot Loader(GRUB)3. 加载内核Boot Loader加载内核镜像 initramfs解压启动内核4. 系统初始化内核挂载根文件系统启动 init/systemd进入用户态五.系统调用5.1 定义系统调用是用户程序请求操作系统内核服务的接口是用户态进入核心态的唯一合法途径本质属于异常。5.2 系统调用的过程5.3 系统调用 vs 普通函数调用对比项系统调用普通函数调用调用位置用户程序 → 操作系统内核用户程序 → 库函数 / 自身代码处理机状态用户态 → 核心态保持用户态实现方式触发陷入Trap异常直接跳转执行权限可执行特权指令仅能执行非特权指令速度较慢切换状态 内核处理较快5.4 作用1.为用户程序提供内核服务接口让应用程序能使用文件操作、进程管理、内存分配、I/O、网络等系统功能。2.实现用户态→核心态的合法切换是用户程序进入核心态、使用特权指令的唯一正规途径。3.保护系统安全与稳定禁止用户程序直接操作硬件、修改系统资源避免程序破坏操作系统。4.屏蔽底层硬件差异向上提供统一接口应用程序无需关心具体硬件细节可跨平台运行。5.支撑操作系统核心机制是实现多任务、并发、虚拟内存、设备管理等功能的基础。六.操作系统的体系结构体系结构类型核心思想优点缺点典型系统整体式宏内核所有 OS 功能集成在内核内核态直接调用效率高、实现简单、兼容性好耦合度高、稳定性差、易崩溃Linux、早期 UNIX、MS-DOS分层式结构功能分层仅上层调用下层服务结构清晰、易调试、故障隔离层间调用有开销、效率一般Multics、教学型 OS微内核结构内核仅保留基础功能服务在用户态通过消息通信稳定性强、安全、易扩展消息传递开销大、效率低MINIX、QNX、Mach混合内核结合宏内核效率 微内核稳定性兼顾效率与稳定、实用性强设计复杂、架构臃肿Windows NT、macOS(XNU)外核结构内核仅分配保护硬件应用直接管理硬件性能极致、灵活度高编程复杂、对应用不友好Exokernel、Aegis虚拟机结构虚拟机监视器抽象硬件运行多个独立 OS隔离性强、资源利用率高有虚拟化开销、配置复杂VMware、Hyper-V、KVM现代整体式宏内核的改进形态模块化宏内核内核 内核主模块 可加载内核模块LKM

相关文章:

[操作系统篇|学习笔记]初识操作系统

一.操作系统概念与功能1.1 定义操作系统(Operating System,OS)是管理和控制计算机软硬件资源的系统软件,是用户与计算机硬件之间的接口,也是其他应用软件运行的基础。简单来说就是三点:1.操作系统是系统资源…...

The RAG Process: Retrieval-Augmented Generation Step-by-Step

文章目录RAG简介流程【分片】【索引】向量embedding向量数据库【召回】【重排】【生成】总结流程代码环境准备RAG 参考视频 BV1wc3izUEUb 简介 检索增强生成 RAG(Retrieval-Augmented Generation,检索增强生成)是一种把信息检索&#xff0…...

RL学习记录(更新中)

主要课程来源:小电视赵老师课程:主要针对强化学习原理(实践和编程较少) 目录 前言 第一章 基础概念 第二章 贝尔曼公式 第三章 贝尔曼最优公式 第四章 值迭代与策略迭代 前言 贝尔曼公式:一句话总结&#xff0…...

Spring面试题 01

目录 1. 谈谈你对 AOP 的理解? 2. 谈谈你对 IOC 的理解? 3. 解释下 Spring 支持的几种 Bean 的作用域? 4. 简述 Spring 中的事务的实现方式? 5. 了解 Spring 中的事务传播机制吗? 6. 说一说 Spring 事务的底层实…...

没有学不会的义务之动态内存管理

为什么要有动态内存管理:让程序员自己可以申请和释放空间(数组等开辟空间的大小是固定的)内存中的不同区malloc函数功能:向内存的堆区申请一块连续可用的空间,并返回指向这块空间的起始地址。1.如果开辟成功&#xff0…...

sql注入之sql基本语法

(持续更新)学习网站推荐:www.w3school.com.cnsqlzoo.net一、SELECT查询语句SELECT 列 FROM 表 WHERE 条件;SQL SELECT 语法SELECT 列名称 FROM 表名称以及:SELECT * FROM 表名称1.SELECT population FROM world WHERE name Germany主要目的是输出人口&a…...

字节码优化、存储布局与那次成功的“代码混淆”

# 字节码优化、存储布局与那次成功的“代码混淆”## 引言:从一个小想法到一场技术革命故事要从几年前的一个午后说起。当时我们团队正在为一个嵌入式设备开发一套领域特定语言(DSL)。设备资源有限,我们需要一个轻量级的虚拟机来执…...

简中互联网“四大恶人”批判:一种数字生存境况的技术社会学分析

內容來自知乎:https://www.zhihu.com/question/660840540 # 简中互联网“四大恶人”批判:一种数字生存境况的技术社会学分析 ## 引言:被围困的数字日常 2026年的今天,当你打开手机准备查询地铁线路,仅仅因为起身时轻…...

RAG——RAG生成(大模型)

目录 一、前提 二、大模型发展 三、大模型原理 四、RAG 中如何选择大模型 本文来源:极客时间vip课程笔记 注:后续技术类文章会同步到我的公众号里,搜索公众号 小志的博客 感兴趣的读友可以去找来看看。 一、前提 RAG 的本质是通过为大模型提供外部知识来增强其理解和回答领…...

IntelliJ IDEA 4个必改配置:主题字体+代码提示+免费AI插件,让你的开发体验起飞

IntelliJ IDEA 被誉为 Java 开发最好用的工具,但默认配置不一定适合每个人。默认的暗黑主题在白天长时间开发容易眼疲劳;默认字体偏小,盯着看一会儿眼睛就酸;默认的代码提示严格区分大小写,输入小写就找不到大写开头的…...

HelloWorld的前世今生:用IntelliJ IDEA编写人生第一个Java程序

为什么全世界所有编程语言的第一个例子,都是输出“Hello World”?这个传统来自C语言之父丹尼斯里奇的经典著作《C程序设计语言》。在这本书中,第一个示例程序就是输出“Hello World”。由于C语言是绝大多数编程语言的鼻祖,后续Jav…...

计算机毕业设计springboot高校体育竞赛管理系统 基于SpringBoot的高校体育赛事综合服务平台设计与实现

计算机毕业设计springboot高校体育竞赛管理系统48825p75(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着高校体育事业的蓬勃发展和校园文化建设需求的不断提升,传…...

计算机毕业设计springboot就业岗位推荐系统 基于SpringBoot的智能职位匹配平台设计与实现

计算机毕业设计springboot就业岗位推荐系统a6nq8o76(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着数字化转型的深入推进,人力资源市场正经历从传统招聘模式向智…...

2025年智能座舱交互革命:从语音助手到多模态AI中枢

1. 告别“人工智障”:为什么你的车载语音助手总在关键时刻掉链子? 不知道你有没有过这样的经历:开车时想调低空调温度,对着车机喊了好几声“你好,XX”,它要么没反应,要么答非所问,最…...

R 4.5量化回测合规红线预警:证监会《证券期货业回测系统技术规范》V2.3落地后,这7类代码将被认定为无效回测

第一章:R 4.5量化回测合规性总览R 4.5 版本在统计计算与金融建模领域引入了多项增强机制,尤其在回测框架的可审计性、随机数生成确定性、时间序列对齐一致性及浮点运算精度控制方面,显著提升了量化策略回测结果的合规可信度。监管机构&#x…...

STEP3-VL-10B部署案例:边缘计算节点部署10B模型实现离线多模态推理

STEP3-VL-10B部署案例:边缘计算节点部署10B模型实现离线多模态推理 1. 引言 想象一下,你正在一个网络信号不稳定的野外现场,或者在一个对数据安全要求极高的企业内部,需要快速分析一张复杂的工程图纸,或者理解一段带…...

如何用Dify在24小时内完成传统需2周的人工评估闭环?——金融客服场景下LLM-as-a-judge SLO达标实践白皮书

第一章:LLM-as-a-judge在金融客服评估中的范式革命传统金融客服质量评估长期依赖人工抽检、规则引擎与预设话术匹配,存在覆盖率低、主观性强、反馈滞后等结构性瓶颈。大语言模型作为裁判(LLM-as-a-judge)的引入,正推动…...

通义千问3-Reranker-0.6B实战案例:直播带货话术与商品信息匹配

通义千问3-Reranker-0.6B实战案例:直播带货话术与商品信息匹配 1. 直播带货的痛点与解决方案 直播带货现在火得不得了,但有个问题一直困扰着主播和运营团队:说的话和卖的商品经常对不上。你可能也遇到过这种情况——主播说得天花乱坠&#…...

Emilia数据集:6种语言10万小时语音生成技术的突破与应用

1. Emilia数据集:一个改变游戏规则的多语言语音宝库 如果你最近在关注语音合成(TTS)或者语音生成领域,那你大概率已经听过“Emilia”这个名字了。它就像一个突然出现在舞台中央的超级新星,让整个圈子都兴奋了起来。简…...

第7章:Docker network网络管理_(网络驱动类型)

第7章:Docker network网络管理(网络驱动类型) 在现代容器化应用部署中,Docker网络管理是确保服务可靠通信的关键环节。除了基础的网络连接操作外,Docker提供了一系列高级网络功能,能够满足复杂场景下的网络需求。本文将解析三个高级网络管理命令: docker network connec…...

连续时间马尔科夫链:从理论到生灭过程的应用解析

1. 从排队到种群:为什么我们需要连续时间马尔科夫链? 想象一下,你正在一家网红奶茶店排队。队伍的长度时增时减,有人买完离开(“死亡”),也有新顾客加入队尾(“出生”)。…...

UNIAPP 上架审核指南:精准应对 Guideline 5.1.2 数据追踪与隐私合规

1. Guideline 5.1.2 到底是什么?为什么你的UNIAPP应用会踩坑? 最近不少用UNIAPP开发iOS应用的朋友,在提交App Store Connect审核时,都遇到了一个让人头疼的拒绝理由:Guideline 5.1.2。苹果给出的原文通常很长&#xf…...

文件描述符fd:跨进程共享机制

文件描述符跨进程资源共享机制详解 文件描述符作为 Unix/Linux 系统的核心抽象机制,通过精巧的内核设计实现了高效的跨进程资源共享。下面从技术原理、实现机制和实际应用三个维度深入解析这一过程。 一、核心技术原理 1. 文件描述符的本质 文件描述符实际上是进…...

实战避坑指南:基于RocketMQ 5.2 Proxy的两主两从集群部署与关键配置解析

1. 为什么你需要这份“踩坑”指南? 最近有不少朋友在后台问我,想在生产环境部署RocketMQ 5.2的集群,特别是带Proxy的两主两从架构,但照着网上一些零散的教程做,总是卡在某个环节,要么服务起不来&#xff0c…...

天地图结合GeoJSON实现中国行政区划可视化开发指南

1. 为什么选择天地图GeoJSON做行政区划可视化? 如果你正在做一个政务系统、数据分析平台,或者任何需要在地图上清晰展示中国省、市、县边界的项目,那你大概率绕不开“行政区划可视化”这个需求。几年前,我为了这个功能可没少折腾&…...

从零到一:Gemini AI Studio 实战部署与避坑指南

1. 初识 Gemini AI Studio:你的 AI 应用“游乐场” 如果你对 AI 感兴趣,想自己动手做个聊天机器人、智能助手,或者任何带点“智能”的小应用,但一看到“模型训练”、“微调”、“部署”这些词就头疼,觉得那是专业开发…...

Crystals Kyber密钥封装机制解析:从LWE问题到实际应用

1. 为什么我们需要Kyber?从RSA的“中年危机”说起 如果你用过网银、登录过邮箱,或者只是在网站上看到那个小锁图标,那你其实已经和公钥密码学打过无数次交道了。我们最熟悉的老朋友,莫过于RSA和ECC(椭圆曲线密码&#…...

Windsurf实战:AI代码编辑器的智能协作开发全解析

1. 初识Windsurf:不只是编辑器,更是你的AI编程搭档 如果你还在用传统的代码编辑器,每天重复着敲击键盘、查找文档、调试错误的循环,那今天这篇文章可能会彻底改变你对编程的认知。Windsurf,这款在2024年底横空出世的AI…...

揭秘这款零成本抢票神器:十年口碑,无广告无加速包!

1. 为什么你需要一个“干净”的抢票工具? 又到了一年一度考验手速和网速的时候了。打开手机里那些主流的购票App,想抢张回家的票,迎面而来的不是“助力加速”,就是“VIP光速通道”,各种加速包、会员权益的弹窗让人眼花…...

金蝶EAS uploadlogo任意文件上传漏洞深度分析与防护策略

1. 从一次“意外”的服务器告警说起 那天下午,我正在工位上摸鱼,突然手机开始疯狂震动,一看是监控平台的告警短信,提示某台核心业务服务器的CPU使用率飙升到了98%。我心里咯噔一下,赶紧连上去看。登录服务器一看&#…...