Linux

一、设计哲学与第一性原理(Why Linux Exists)

1. Unix / Linux 的核心哲学

第一性原理:操作系统是资源管理系统

Linux 的本质职责只有三件事:

所有用户看到的命令、工具、Shell,都是围绕这三类资源的“访问接口”。

Unix 哲学

这些哲学直接塑造了:文件系统、管道、Shell、工具链生态。


2. GNU 与自由软件思想

GNU 并不是一个工具集合,而是一种 制度设计

四大自由定义了软件与人的关系:

Linux 内核 + GNU 工具链 = 现代 Linux 操作系统。

结论:Linux 是技术系统 + 社会协作系统的结合体。


二、Linux 的核心抽象模型(What Linux Is)

1. 进程模型(Process as Resource Container)

进程的本质

进程不是“程序运行”,而是:

操作系统分配资源的最小管理单元

一个进程包含:

进程状态模型

僵尸进程的存在是为了 保证父进程可以获取子进程的退出信息


2. 父子进程与生命周期

孤儿进程

僵尸进程

这是 进程一致性设计,不是 Bug。


3. 文件模型(File as Universal Interface)

inode / block 抽象

Linux 文件由两部分构成:

文件名 ≠ 文件本体,只是目录中的一个映射。

设计收益


4. 文件系统类型与设计取舍

文件系统核心设计取舍
FAT链表式 block简单 / 易碎片
ext2inode + block高效 / 不安全
ext3/4日志一致性 / 恢复能力

日志文件系统的本质是 用时间换一致性


5. 权限与安全模型

权限的设计对象

权限含义重解释

目录的 x 权限是一切操作的前提


三、系统机制与执行模型(How Linux Works)

1. Shell 的系统位置

Shell 不是内核,而是:

用户态的命令调度与文本处理引擎

Shell 的职责:


2. 命令执行查找模型

执行顺序:

  1. 路径执行(./cmd)
  2. alias
  3. Shell 内建
  4. PATH 搜索

PATH 是 策略变量,不是技术细节。


3. 数据流模型(重定向与管道)

三种标准流

管道的本质

管道是进程间的内存缓冲区

它实现了:


四、工具链作为抽象的映射(Tools as Projection)

1. 文件与目录操作(文件模型映射)

它们都是对 inode / 目录表的不同操作方式。


2. 搜索与过滤(文本流算子)

统一模型:

数据源 → 过滤 → 转换 → 聚合
工具能力
grep过滤
cut / awk投影
sort排序
uniq聚合

3. 压缩与打包

tar 是 结构工具,gzip 是 算法工具


五、稳定认知总结(What to Remember Long-term)

记住模型,而不是命令。

关联内容(自动生成)