操作系统与系统特权级

引导加载程序将操作系统(OS)载入内存并交出控制权后,系统便由这位“看不见的管家”来全权接管。操作系统介于用户、应用程序与底层硬件之间,协调整个系统活动。

它就像繁忙的高铁调度中心,调度轨道(硬件资源)、协调各个车次(运行中的程序),并保证整体安全与秩序。如果没有操作系统的协调,多个程序直接争抢硬件资源,系统会瞬间陷入瘫痪。

内核态与用户态

在现代计算机体系中,为了系统的稳定性与安全性,操作系统划分了不同的特权级别,将系统环境严格拆分为两个空间:

  • 内核空间:操作系统内核运行的极高特权级区域。运行在内核态的内核对物理硬件(CPU、内存、存储等)拥有不受限制的完全控制权。
  • 用户空间:普通应用程序(如网页浏览器、办公软件)运行的受限区域。运行在用户态的程序禁止直接操作物理硬件。
  • 系统调用:如果用户空间的普通程序需要执行涉及硬件的操作(例如读取本地文件、在屏幕上绘图或发送网络数据包),它不能直接操作,必须发出系统调用。

    我们可以用公司日常来理解这个特权隔离:普通员工(用户态应用)无权进入公司机密保险库(硬件/内核空间),如果需要存取文件,必须填写并提交一份“审批表”(发出系统调用),由保卫科长(内核)核验身份并确认无误后,代为存取。如果普通员工写错了申请,或者权限不够,就会被保卫科拦截。

这种设计确保了系统的健壮性。即使某个普通应用崩溃了,它也仅仅是在自己的用户空间里消亡,不会波及内核或其他应用,从而避免了整个系统宕机。

特权级隔离:内核空间与用户空间

系统特权级判断

练习

在操作系统的特权层级中,为了保证系统安全稳定,运行普通应用程序(如浏览器、媒体播放器)的空间是受限的。当普通应用需要写入文件或播放声音时,必须通过系统调用发出请求。这个供普通应用程序运行的受限空间被称为: A. 内核空间(Kernel Space / 内核态) B. 用户空间(User Space / 用户态) 请提交正确选项的字母(例如 A)。

提交答案

题解 Hint

操作系统的职责

为了维护计算机秩序,操作系统执行着以下五项核心职责:

  1. 进程管理:进程是运行中的程序的实例。

    静态的程序与动态的进程,区别类似于“菜谱”与“做菜的过程”。放在硬盘上的程序(如一个可执行文件)只是一堆静态的步骤,不占用 CPU 或 RAM 资源;只有当用户运行该程序时,操作系统开始为它分配内存空间、让 CPU 开始执行它,才变成了一个真实消耗计算资源的活动实例,这就是进程。 操作系统负责创建、调度、排定优先级并终止这些进程。它决定了每个进程分得多少 CPU 时间,让我们在同时听音乐、写文档和运行其他软件时感到流畅。

  2. 内存管理:操作系统为每个运行的进程分配专属的 RAM 空间,并建立安全隔离,防止一个进程窥探或篡改另一个进程的数据。当物理内存告急时,操作系统还会将硬盘的一部分划作虚拟内存来维持系统平稳。

    注意

    安全视角下的内存:操作系统必须保护每个进程的内存不被越界访问。在网络安全攻防中,内存是黑客关注的焦点。即使存在硬盘上的文件是加密的,但在计算机运行和使用它们时,明文数据(如账号密码、加密密钥、解密的敏感文档)必须载入内存中。如果内存隔离失效,攻击者就能通过读取内存直接抓取这些明文凭据。

  3. 文件系统管理:将数据以文件的形式组织成树状目录结构。操作系统不仅负责数据的读取和写入,还管理着文件名、物理路径、读写权限以及修改时间等元数据。

    注意

    在后续的 Linux 入门模块中,我们将详细学习如何使用命令行编辑器(如 nanovim)来创建和修改文件。本模块仅用于理解操作系统管理文件的底层概念。

  4. 设备管理:操作系统加载各种硬件驱动程序,为应用层提供统一的硬件抽象层。对于应用而言,它们只需发出标准命令(如“打印此文档”或“播放此声音”),无需关心底层硬件的具体品牌。
  5. 用户管理:操作系统支持多用户账户。它负责验证用户身份,并实施权限模型,确保普通用户的私密文件不会被其他登录用户查看。

文件操作对应的 OS 职责

练习

操作系统的核心职责包括进程管理、内存管理、文件系统管理、用户管理、设备管理。当你在电脑中新建一个文件夹,或者将一张图片设置为“只读”属性时,这主要属于操作系统的哪一项管理职责? A. 进程管理 B. 内存管理 C. 文件系统管理 D. 设备管理 请提交正确选项的字母(例如 A)。

提交答案

题解 Hint

操作系统安全机制

在安装任何杀毒软件或配置防火墙之前,操作系统自身就在后台执行基本的安全防线:

  • 认证:通过密码、生物识别等确认当前操作者的真实身份。
  • 权限:细粒度控制每个用户和应用程序可以读取、写入或执行哪些文件与指令。
  • 隔离:利用硬件提供的特权级特性,将应用进程相互隔离,阻断越界访问。
  • 系统保护:拦截非特权程序对关键系统配置文件或内核内存的写入企图。

你以后在 Linux 系统上开展安全测试时,很大一部分精力就是在和操作系统的权限控制机制进行较劲(例如通过提权手段获取更高的系统控制权)。

图形界面与命令行

我们与操作系统的交互方式主要分为两类:

  • 图形用户界面(GUI):通过直观的图标、窗口、鼠标点击和触摸手势来操作电脑。它非常友好,就像手机地图,点一下目的地图标就能出发,无需记忆复杂的坐标。
  • 命令行界面(CLI):通过文本终端输入精准的指令来控制系统。这类似于直接输入目的地的精准 GPS 经纬度。虽然需要记住命令语法,但它带来了无与伦比的精度、效率与自动化能力。

让我们来看一个在 CLI 中查询系统信息的真实会话:

crow@opsbox:~$ uname -a
Linux opsbox 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

在上面的例子中,crow@opsbox:~$ 是命令提示符。它显示当前是以 crow 用户的身份登录在名为 opsbox 的主机上,当前所处的路径是 ~(代表该用户的家目录)。输入命令 uname -a 后,系统在下一行输出了详细的内核版本与系统架构信息。

提示

终端生存快捷操作:在命令行界面中,有一些快捷键可以大幅提升效率:

  • Tab 键:自动补全命令或文件名。
  • / 方向键:翻查历史命令。
  • Ctrl + R:检索历史命令。
  • Ctrl + Lclear:清屏。

操作系统家族

在实际工作中,你会遇到各种不同定位的操作系统:

操作系统类型主要用途关键特征
桌面操作系统个人电脑、日常办公、开发设计拥有丰富的图形界面,支持多任务,面向普通用户
服务器操作系统Web 托管、数据库服务、后台支撑通常没有图形界面,追求极高稳定性,支持多用户与远程访问
移动操作系统智能手机、平板电脑触控界面,强调功耗控制与沙盒隔离
嵌入式系统家用电器、路由器、物联网设备占用资源极小,运行在专用硬件上
虚拟化与云系统虚拟机、容器实例轻量化设计,支持快速部署与水平扩容

在现实中,主要的系统家族有:

  • Windows 家族:在个人电脑中占据主流,而在企业服务器中也常用 Windows Server。
  • macOS 家族:苹果电脑的桌面系统,拥有精致的图形界面,底层与 Unix 兼容。
  • Linux 家族:由 Ubuntu、Debian、Fedora 等众多开源发行版组成,是一个庞大的开源家族。服务器中绝大多数都在运行 Linux。
  • Unix 家族:主要服务于大型金融、政府等对可靠性要求极高的特定企业场景。