[操作系统篇|学习笔记]初识操作系统
一.操作系统概念与功能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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2415779.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!