news 2026/5/20 0:27:37

操作系统概述和硬件视角

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
操作系统概述和硬件视角

操作系统概述和硬件视角

文章目录

  • 操作系统概述和硬件视角
    • 一、前言
    • 二、操作系统的概述
      • 2.1 定义
      • 2.2 目的
      • 2.3 关注点
      • 2.4 程序来看OS
        • 2.4.1 提出问题
        • 2.4.2 解决编译器的很多问题
    • 三、硬件视角
      • 3.1 组成
      • 3.2 核心概念
        • 3.2.1 CPU
        • 3.2.2 存储器
        • 3.2.3 I/O设备
        • 3.2.4 总线
    • 四、小结

一、前言

今天,我们开始步入操作系统的学习啦~

二、操作系统的概述

2.1 定义

Operating System,简称OS,是一组控制和管理计算机硬件软件资源的程序集合

本质:OS是一个软件,需要在硬件上运行,为软件系统提供访问接口

s:software

上管软件,下管硬件,就是操作系统

程序集合:操作系统需要编码

2.2 目的

  • 合理地对各类作业进行调度,方便用户使用计算机

  • 使系统资源的利用率高,系统的吞吐量大

    利用率高:使一个事物可以尽可能的做更多事

    吞吐量大:一次性干好多事

2.3 关注点

如何设计操作系统以及设计操作系统需要解决的问题和方案

2.4 程序来看OS

2.4.1 提出问题
  • hello.c文件在磁盘怎么存,怎么读,可以我们在磁盘那么大的空间可以找到hello.c?

    文件系统

  • hello.c怎么变成CPU能认识的指令?

    识别指令(操作系统能做的活都限制在指令集中)

    我们现在写的程序都是基于OS的程序设计(裸机程序)

  • 软件可以运行多次,甚至同时运行很多软件,CPU如何管理多个任务?

  • 程序存放内存之中,内存如何进行管理?

核心:操作系统如何管理CPU,如何管理内存,如何管理磁盘,如何管理设备(IO)

涉及进程和线程(调度和同步机制)、内存管理、文件系统、IO设备

2.4.2 解决编译器的很多问题

编译器和操作系统的关系

操作系统和编译器是彼此辅助的关系:编译器是基于操作系统的,帮助操作系统管理资源的以及支持编译行为

一款编译器要解决的问题:解决CPU指令集问题;不同操作系统的问题

如果操作系统是none——说明它是直接面向CPU编程,不是为系统服务

gcc不像javac(java的编译器是javac),gcc在windows上写的程序,在Linux上就是运行不了。而java语言可以跨平台运行。

gcc编译过程

  • gcc是一个总的调度器,后面跟着一个选项,决定了干活干到什么程度(语法)
  • 预处理和汇编,一定程度上,人类还是看得懂的,后面不行
  • 运行出错,一般是链接出错
  • 编译器和汇编器都是来解决CPU的,链接器是解决内存管理的

gcc -E -o hello.i hello.c预处理

gcc -S -o hello.s hello.i生成汇编文件(人们能看懂的助记符) 编译

cc1 hello.c -o /tmp/cceVNE1I.s编译器 gcc -S

里面含有很多编译所产生文件的目录

在编写程序时,所谓的include就是把文件打开了,最终编译的是.c文件,只是将会重复编译的文件整成头文件,包含在.c文件中了,最终是一起编译的

gcc -c -o hello.o hello.s将助记符一一映射,变成了非ASCII码的文件 汇编

as -o /tmp/cc8ATX9H.o /tmp/cceVNE1I.sas-assembler 汇编器 gcc -c

借助nmobjdump来看懂

.o是gcc二进制指令流

里面有很多-c,-lc,-lgcc等都是第三方库——链接(组装车间)

gcc -o build hello.o链接

ld -o build /tmp/cc8ATX9H.o .../*.o -lc链接器 gcc

不仅需要自己的.o,还需要很多操作系统的依赖.o,还有很多第三方库的.o(-lc)

为什么说编译是在操作系统下运行的呢?因为编译器也把操作系统对应的依赖文件装进去了,并且第三方库(我们写程序也需要很多别人写好的函数,如标准C库)在操作系统中有

as,ld,cc1这些东西比较底层,做了解

三、硬件视角

3.1 组成

一个或多个处理器(CPU)、主存、键盘 + 鼠标、显示器、网络接口、打印机

  • CPU不存指令,CPU如果存指令,消耗会很大,于是有了主存,主存相当于CPU外面的一个仓库
  • 主存包括内存 + 磁盘
  • 键盘 + 鼠标、显示器、网络接口、打印机都属于IO
  • 磁盘是由磁盘控制器管理的,磁盘控制器是由驱动控制来工作的

CPU -> Cache -> 内存、数据内存、控制器

  • 控制器:控制硬件产生高低电压和频率和另外一个芯片达成通信过程(相当于一个小芯片)

    CPU不能做这个事情,因为它不能停,是一直高速转动的,CPU负责控制控制器

  • CPU里面有寄存器(不同CPU的寄存器不一样[厂家决定],数量少),数据是通过寄存器写到内存里面的,CPU就是依靠寄存器实现和内存的交互(有专门的指令集)

  • 指令集

    • PC:Program Counter(程序计数器),PC指哪,CPU就在哪运行
    • SP:Stack Pointer(栈指针),控制在内存存放东西

注意:每个厂家实现的行为不一样~

3.2 核心概念

3.2.1 CPU
  • 指令集和结构特点

    • 寄存器和内存的加载、存储指令

      把内存的东西取到寄存器里面,在寄存器里操作完之后,再放回内存

      寄存器不能通过地址来访问,只能通过写汇编访问

    • 基本运算指令

    • 特殊功能指令

  • 资源:寄存器

    • 通用寄存器

      R0-R12(ARM体系)

    • 特殊寄存器

      • PC寄存器

      • SP寄存器

        保护和恢复信息

      • PSW寄存器(状态寄存器)

        还在运行时需要保存(比如:中断)

  • 工作模式

    工作模式:有独立的空间,独立的任务

    特权 & 非特权

  • 中断模式 & 系统调用★

3.2.2 存储器

  • 存储器的访问时间和容量关系

    • 寄存器、缓存

      缓存是一行一行存

    • 局部性原理

      cache比内存快

  • 常见主存(Main Memory)

    意识性存储器(掉电易失)

    • RAM(Random Access Memory)

      掉电易失

    • ROM(Read Only Memory)

      存了不丢

  • 磁盘

    非意识性存储器

    • 磁盘结构
    • 磁道、柱面、扇区
3.2.3 I/O设备
  • I/O设备工作模型

    实现输入输出的3种方式:

    • 忙等(busy waiting)/轮询

    • 中断

      • 中断处理流程

        中断发生就要保护现场恢复现场,硬件/软件来保护,

      • 异常和中断

3.2.4 总线

衔接不同的设备

分高速总线和低速总线

四、小结

本篇仅对操作系统进行一个总览,有一个感性的理解,之后会分主题深入探索。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 16:38:40

xv6 lab4 trap

lab4 trap RISC-V assembly call.asm分析&#xff1a; 1、auipc指令&#xff1a;计算一个32位的地址 ​ auipc rd, imm20 rd PC (imm20 << 12)一个20位的立即数被左移12位&#xff08;x2096&#xff09;pc然后赋值给rd寄存器 2、jalr 命令&#xff1a; ​ jalr 1…

作者头像 李华
网站建设 2026/5/6 19:57:33

YOLOFuse在低照度环境下的检测能力实测视频发布

YOLOFuse在低照度环境下的检测能力实测视频发布 在夜间安防、自动驾驶夜行辅助或工业巡检等场景中&#xff0c;一个老生常谈的问题始终困扰着开发者&#xff1a;天太黑&#xff0c;摄像头“看不见”。传统基于RGB图像的目标检测模型&#xff0c;在暗光环境下往往表现乏力——噪…

作者头像 李华
网站建设 2026/5/19 15:29:00

YOLOFuse边防监控部署实例:夜间越境行为捕捉成功

YOLOFuse边防监控部署实例&#xff1a;夜间越境行为捕捉成功 在新疆某段边境线上&#xff0c;凌晨两点的气温已降至零下。浓雾弥漫&#xff0c;能见度不足十米&#xff0c;传统的可见光摄像头画面几乎一片漆黑。然而&#xff0c;在监控中心的大屏上&#xff0c;一个清晰的人形热…

作者头像 李华
网站建设 2026/5/20 13:33:54

HardFault异常触发与响应机制通俗解释

揭秘HardFault&#xff1a;嵌入式系统崩溃的“黑匣子”如何读取&#xff1f;你有没有遇到过这样的场景&#xff1f;代码明明编译通过&#xff0c;逻辑也看似无误&#xff0c;可设备运行几分钟后突然死机——没有打印、无法响应&#xff0c;调试器一连上&#xff0c;程序却停在一…

作者头像 李华
网站建设 2026/5/17 9:52:27

基于proteus的智能门禁报警系统仿真:核心要点

从零搭建智能门禁系统&#xff1a;Proteus仿真实战全解析你有没有试过在没有一块开发板、一根杜邦线的情况下&#xff0c;完整跑通一个带RFID识别、密码输入、声光报警的智能门禁系统&#xff1f;听起来像天方夜谭&#xff1f;其实&#xff0c;借助Proteus Keil C51的联合仿真…

作者头像 李华