走进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 系统调用和库函数概念


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

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

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

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

    发。


相关推荐
jun_bai18 小时前
python写的文件备份网盘程序
运维·服务器·网络
HIT_Weston18 小时前
39、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)
linux·前端·ubuntu
欢喜躲在眉梢里19 小时前
CANN 异构计算架构实操指南:从环境部署到 AI 任务加速全流程
运维·服务器·人工智能·ai·架构·计算
weixin_5377658019 小时前
【容器技术】虚拟化原理与Docker详解
运维·docker·容器
胡斌附体19 小时前
docker健康检查使用
运维·docker·依赖·健康检查
来来走走19 小时前
Android开发(Kotlin) LiveData的基本了解
android·开发语言·kotlin
云飞云共享云桌面19 小时前
无需配置传统电脑——智能装备工厂10个SolidWorks共享一台工作站
运维·服务器·前端·网络·算法·电脑
福尔摩斯张20 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法
TH_120 小时前
腾讯云-(3)-Linux宝塔面板使用
linux·云计算·腾讯云
。puppy20 小时前
MySQL 远程登录实验:通过 IP 地址跨机器连接实战指南
android·adb