大西冰城的博客

跟我学操作系统(1):操作系统的基本概念

Word count: 2.3kReading time: 7 min
2026/04/22
loading

操作系统,想必大家都不陌生。我们日常使用的电脑、手机、平板等各类智能设备,都离不开它的支撑——Windows、macOS、Linux、Android、iOS、鸿蒙,这些熟悉的名字,背后都是操作系统的身影。

它就像一位隐形的“管家”,将一堆看似零散、毫无关联的硬件零件,有序组织、高效协调,最终搭建出一个便捷的交互平台,承载着我们日常的工作、学习与娱乐,成为人与设备、程序与硬件之间不可或缺的桥梁。那么,操作系统到底是什么?它是如何默默工作、协调各方的?它又包含哪些核心概念和组成部分?在这篇文章中,我们将一同走进操作系统的世界,拆解它的基本概念,帮助大家更好地理解这个看似神秘、却早已渗透生活方方面面的“设备核心”。

1.什么是操作系统?

你拥有一台顶配电脑:最新的处理器、大容量内存和超快固态盘。但如果没有安装任何操作系统,这台机器本身只能算是一堆精密的零件,无法理解你的“打开应用”或“保存文件”这样的命令。这样的硬件我们称为 裸机(bare metal),它提供了资源,却不会协调它们的使用。

操作系统(Operating System,OS) 就是把裸机变成“会工作的电脑”的那套软件。它像一个协调者和管家,负责分配处理器时间、管理内存、组织磁盘数据、驱动外设,并为应用程序与用户提供一致且简单的接口,为了方便使用,还会提供一套 系统服务用户界面,换句话说,操作系统把杂乱的硬件资源整理成一个有规则、可被程序和人方便使用的平台。

下面的示意图展示了用户、应用、操作系统与裸机之间的关系:

flowchart TD
    User[用户]
    App[应用程序(软件)]
    OS[操作系统]
    Hardware[裸机(纯硬件)]
    User --> App
    User --> OS
    App --> OS
    OS --> Hardware

用户与操作系统的交互分为两种方式:可以直接与操作系统进行交互,也可以通过应用程序间接地与操作系统进行交互。从核心功能来看,操作系统的核心职责之一就是管理计算机的各类硬件资源,比如CPU、内存、磁盘、网络等,确保这些资源被高效、合理地利用;同时,它还会为应用程序提供丰富的服务支持,像文件系统、进程管理、内存管理等,正是这些服务的存在,才让用户能够无需了解硬件底层细节,就能方便地使用计算机资源。

2. 操作系统的主要功能

操作系统的功能可以归纳为三个层面:管理底层资源、为程序提供接口与服务、为用户提供操作界面。

2.1 资源管理

资源管理可以分成四个方面,即处理器管理、内存管理、文件系统和设备管理。

  • 处理器管理:过调度算法在多个程序之间分配 CPU 时间,决定哪个程序先运行、运行多久,从而让多个程序能够并发执行,充分利用 CPU 资源。
  • 内存管理:负责内存的分配与回收,确保每个进程拥有独立的内存空间,互不干扰,同时避免内存浪费,让有限的内存能够支撑多个程序同时运行。
  • 文件系统:管理磁盘上的文件与目录,提供统一的创建、读写、删除接口,规范文件的存储方式,并保证数据的安全性与完整性,方便用户和程序管理各类数据。
  • 设备管理:通过驱动程序控制键盘、鼠标、打印机等外设,向应用程序提供统一的访问接口,无需用户或程序直接操作硬件,就能实现对外设的便捷使用。

2.2 接口和服务

除了管理底层资源,操作系统的核心功能之一就是为应用程序提供接口与服务——应用程序无法直接操作硬件,必须通过操作系统提供的途径来访问资源。其中,最底层的入口是 系统调用(System Call)——应用程序向内核发出请求,由内核代为完成读写文件、分配内存、创建进程等操作。

在系统调用的基础上,操作系统还提供了更高层次的系统服务,如文件系统、网络通信、进程管理等。这些服务封装了底层的系统调用,简化了操作流程,为应用程序提供更易用、更全面的功能支撑,无需应用程序再去调用复杂的底层指令。

对开发者来说,直接使用系统调用往往繁琐且与平台强绑定,开发效率较低,于是便有了应用程序编程接口(API)。API 把系统调用与系统服务进一步封装,提供了更简洁、统一的调用方式,让开发者能更方便、跨平台地编写应用程序,无需关注底层实现细节,

flowchart LR
    App[应用程序]
    API[程序接口(API)]
    SysCall[系统调用(System Call)]
    OS[操作系统]
    Hardware[硬件]

    App --> API
    API --> SysCall
    SysCall --> OS
    OS --> Hardware

3. 用户界面

除了管理资源、提供接口服务,操作系统还为用户提供了便捷的操作界面,这是用户直接与操作系统交互的窗口。常见的用户界面有两种:图形用户界面(GUI)命令行界面(CLI)

图形用户界面(GUI):提供直观的图形化操作,通过窗口、图标、菜单等元素,用户只需点击、拖动鼠标就能完成大多数任务,比如我们常用的 Windows 桌面、macOS 界面,都属于 GUI,操作简单易懂,适合普通用户。

命令行界面(CLI):属于纯文本界面,用户需要通过输入具体命令来驱动操作系统完成操作,无需图形元素,虽然操作相对繁琐,但执行效率高,适合有一定基础的用户或开发者使用。其中,CLI 里面又分两种用法:联机命令(交互式命令) 和脱机命令。

CLI 里面又分两种用法:联机命令(交互式命令)脱机命令

联机命令是实时交互的模式,输入一条命令,操作系统立即执行,结果实时反馈给用户,你再根据反馈决定下一步。这种模式特别适合文件管理、系统配置、进程控制等需要随时调整的场景。常见的使用环境有 Linux 的 bash、Windows 的 cmd/PowerShell。

脱机命令思路和联机命令完全不同,它无需用户实时交互,而是把命令提前写进脚本或批处理文件,交给系统在指定时间或条件下自动运行。命令的输入和执行是分离的,用户提前准备好所有需要执行的命令,系统在后续按照设定自动依次执行,适合数据备份、日志分析、批量文件操作这类重复性高、无需实时干预的任务。常见形式有 Windows 的批处理(.bat)、Linux 的 Shell 脚本(.sh)、crontab 定时任务等。

4. 小结

操作系统做的事情说简单也简单:把一堆硬件变成一个可以用的平台。它管着 CPU 时间怎么分、内存怎么分配、文件怎么存、外设怎么驱动;它在应用程序和硬件之间架了一层系统调用和系统服务,让开发者不用直接操作硬件;它还给用户留了入口——GUI 让普通人能用,CLI 让有需要的人能深入控制。

这三件事缺一不可。没有资源管理,程序抢着用 CPU 会乱成一团;没有接口,开发者每次都得从头和硬件打交道;没有用户界面,计算机就只是工程师的玩具

这篇是整个系列的起点,后续会逐一拆开来讲——进程调度怎么做、内存分配有哪些方式、文件系统长什么样。先把这张整体的图记住,后面的细节会好理解得多。


整个操作系统的运行流程如下图所示:

flowchart TD
    User[用户]
    App[应用程序]
    OS[操作系统]
    SysCall["系统调用(System Call)"]
    GUI["图形用户界面(GUI)"]
    CLI["命令行界面(CLI)"]
    Service[系统服务]
    Proc[进程管理]
    Mem[内存管理]
    FS[文件系统管理]
    Net[网络管理]

    User --> GUI
    User --> CLI
    User --> App
    App --> SysCall
    GUI --> OS
    CLI --> OS
    SysCall --> OS
    OS --> Service
    Service --> Proc
    Service --> Mem
    Service --> FS
    Service --> Net
CATALOG
  1. 1. 1.什么是操作系统?
  2. 2. 2. 操作系统的主要功能
    1. 2.1. 2.1 资源管理
    2. 2.2. 2.2 接口和服务
  3. 3. 3. 用户界面
  4. 4. 4. 小结