走进Linux的世界:初识操作系统(Operator System)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的

passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

我的博客:yuanManGan

我的专栏:C++入门小馆 C言雅韵集 数据结构漫游记 闲言碎语小记坊 进阶数据结构 走进Linux的世界 题山采玉 领略算法真谛


1.操作系统(Operator System)



1.1. 概念


我们新手小白对操作系统(OS)的最开始的认知是

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(如函数库,shell程序等)

而我们程序员视角的操作系统则只包括内核。

我们平常老是说的安卓操作系统的内核就是linux操作系统,但它的外壳不一样,它有不一样的图形化界面,从而形成了很多安卓手机平台,他们大多数都是只改变了外壳的图形化界面或者对某些功能进行优化,但底层的内核是没有改变的。


1.2设计OS的目的


我们的操作系统可以将软硬件资源进行管理,但这是它的目的吗?它的本要目的是为了让人更好的使用计算机,让人能稳定的、高效的、安全的访问数据。

操作系统会提供很多接口给你访问,让你更好的管理硬件。


1.3 理解操作系统的管理


操作系统的核心管理逻辑可以用 "校长管理学生" 的场景形象拆解,核心思路是先描述、再组织------ 管理者无需直接对接被管理者,通过数据化描述和结构化组织,就能高效完成管理目标。


1.3.1 管理的核心逻辑:无需直接见面,数据即是 "桥梁"


校长管理全校学生时,不需要逐一认识每个学生。就像操作系统管理硬件、进程等资源时,不会直接操作实体本身,而是通过 "数据" 实现间接管理。

学生的个人信息(姓名、班级、C 语言成绩等)、学习状态(是否出勤、是否在完成作业),对应操作系统中资源的核心属性(如文件大小、进程优先级、内存地址)。管理者只需掌握这些数据,就能实现对被管理者的有效管控。


1.3.2"找 C 语言成绩最优学生":管理流程具象化


当校长需要找出每个班 C 语言成绩最好的学生时,流程完全贴合操作系统的管理模式,步骤清晰且高效:

  1. 明确管理目标:筛选 "各班 C 语言成绩最高分" 的学生,对应操作系统 "查询特定属性资源" 的需求(如查找内存中占用最小的进程)。
  2. 分层传递指令:校长不直接找学生,而是通知各班班主任 ------ 班主任作为 "中间管理者",对应操作系统中的 "驱动程序""管理模块"(如文件系统、内存管理器),负责对接具体 "被管理者"。
  3. 数据收集与汇总:班主任收集本班学生的 C 语言成绩数据,整理后上报校长;如同管理模块收集资源的属性数据,统一提交给操作系统核心。
  4. 结果筛选与反馈:校长汇总所有班主任的数据,直接筛选出各班最高分学生,无需与学生产生任何直接交互。

1.3.3 先描述:用 "结构体" 定义被管理者


要实现数据化管理,第一步是 "描述" 被管理者 ------ 把每个学生的核心属性整理成标准化的 "数据模板",这就是编程中的struct结构体,对应操作系统对资源的 "描述机制"。

以学生为例,结构体可定义为:

cpp 复制代码
struct student {
    char name[20];  // 学生姓名(对应资源名称)
    int class_id;   // 班级编号(对应资源分类)
    float c_score;  // C语言成绩(对应资源核心属性)
    struct student *next;  // 指向next学生的指针(为"组织"做准备)
};

这个结构体就像学生的 "数据身份证",把零散的个人信息整合为统一格式,让管理者能快速识别、提取关键数据(比如只关注c_score字段就能对比成绩)。


1.3.4 再组织:用 "链表" 串联被管理者


有了标准化的 "描述",下一步就是 "组织"------ 将所有学生的结构体按规则串联,形成可高效遍历、查询的结构,这对应操作系统对资源的 "组织机制"。

这里用 "链表" 组织学生数据,逻辑如下:

  1. 每个学生的结构体是一个 "节点",存储自身数据。
  2. 通过结构体中的next指针,将同一个班级的学生节点依次连接,形成 "班级链表";再将各班链表的头节点汇总,形成 "全校学生链表"。
  3. 校长(或班主任)要查询数据时,只需顺着链表遍历节点,提取每个节点的c_score字段对比,就能快速找到各班最高分 ------ 如同操作系统遍历资源链表,查询特定属性的资源。

核心总结:

操作系统的管理本质,就是 "先通过结构体描述资源的核心属性,再通过链表、数组等结构组织这些资源节点"。管理者(操作系统核心 / 校长)无需对接被管理者(硬件 / 学生)实体,只需通过数据描述和结构化组织,就能高效完成查询、筛选、调度等管理任务,这也是 "先描述、再组织" 的核心价值。

由此可以看到操作系统最核心的东西是数据结构


1.4 系统调用和库函数概念


  • 在开发⻆度,操作系统对外会表现为⼀个整体,但是会暴露⾃⼰的部分接⼝,供上层开发使⽤,

    这部分由操作系统提供的接⼝,叫做系统调⽤。

  • 系统调⽤在使⽤上,功能⽐较基础,对⽤⼾的要求相对也⽐较⾼,所以,有⼼的开发者可以对部

    分系统调⽤进⾏适度封装,从⽽形成库,有了库,就很有利于更上层⽤⼾或者开发者进⾏⼆次开

    发。


相关推荐
Ghost Face...2 分钟前
PCI总线配置核心实现与架构解析
linux·运维·架构
Kapaseker5 分钟前
为什么 Java 的数组需要 new 出来
android·java·kotlin
難釋懷18 分钟前
Nginx应用场景
运维·nginx
黄林晴20 分钟前
颠覆开发!Google AI Studio 一句话生成原生 Android App
android·google io
曾阿伦21 分钟前
Linux 系统资源查看命令大全
linux·运维·服务器
全栈游侠23 分钟前
DRM驱动分析01 - 初始化
linux
qq_4017004124 分钟前
TCP 多客户端与服务器通信程序
运维·服务器
宠..24 分钟前
VS Code SSH 远程连接 Ubuntu 并实现快速运行(C/C++示例)
java·运维·c语言·开发语言·c++·ubuntu·ssh
量子罐头24 分钟前
国产鲲鹏服务器适配:光润通 100GbE 网卡性能实测报告
运维·服务器
WPF工业上位机25 分钟前
匠心研智造-上位机硬件通讯之Modbus 服务器
运维·服务器