Linux 服务器整体架构与分层认知
Linux 服务器本质上是具备强大处理性能、支持多种网络协议的计算设备。要形成整体性认识,可将其划分为四个层次:
第一层:根基——硬件层
这是物理基础,是一切性能的根源。
- 核心认知:这是物理基础,是一切性能的根源。
- 关键概念:CPU(大脑,负责计算)、内存(工作台,速度快但断电数据丢失)、磁盘(书架,持久化存储数据,SSD 比 HDD 快)。
- 系统视角:在 Linux 里,一切皆文件。CPU 是
/dev/cpu,内存是/dev/mem,硬盘是/dev/sda。操作系统通过驱动程序(也是文件)来指挥这些硬件干活。
第二层:灵魂——内核层
这里指的就是内核。
- 核心认知:内核是操作系统的心脏,负责管理硬件、为上层软件提供运行环境。
- 关键机制:
- 进程管理:实现了进程线程这些机制。内核负责调度,决定哪个进程使用 CPU。
- 内存管理:虚拟内存机制。让你的程序觉得拥有连续完整的内存空间。
- 文件系统:实现了文件存储管理。它把磁盘的扇区组织成目录和文件。
- 网络协议栈:实现了很多网络协议。Linux 内核内置了完整的 TCP/IP 协议栈。
第三层:血肉——系统层(用户空间)
这是操作时直接面对的环境(比如 CentOS 7)。
- 核心认知:系统层的工具和库,让你不需要直接写内核代码就能使用电脑。
- 组成部分:
- Shell:命令解释器(如 bash)。执行
ls命令时,它告诉内核去执行读取目录的程序。 - 系统库:如 glibc(GNU C 库,Linux 中最核心的 C 语言标准库)。
- 基本命令:
cp、mv、vim等,它们都是独立的程序,但依赖内核提供服务。
- Shell:命令解释器(如 bash)。执行
第四层:枝叶——应用层
这就是'服务器就是上网用的'具体体现。
- 核心认知:运行在系统之上,对外提供特定服务的软件。
- 例子:
- Web 服务器(如 Nginx、Apache):监听 80(HTTP 协议默认端口)、443(HTTPS 协议默认端口)端口。
- 数据库服务器(如 MySQL、Redis):监听 3306(MySQL 默认端口)、6379(Redis 默认端口)端口。
- 文件服务器(如 NFS、Samba):实现网络文件共享。
当你访问一个网页时发生了什么?
- 应用层:浏览器向系统发起 DNS(域名系统)查询请求。
- 协议栈(内核):Linux 内核的网络协议栈接手。它把 DNS 请求打包成 UDP(用户数据报协议)数据包。
- 硬件层:网卡驱动程序告诉网卡:'把这个电信号发出去!'

