## 1、Linux 内核概览 Linux 内核是操作系统最核心的部分,负责: - 进程调度 - 内存管理 - 设备驱动 - 文件系统 - 网络协议栈 - 系统调用接口 用户平时操作的大多数命令和程序,最终都需要通过内核来访问系统资源。 ## 2、内核版本号 以一个示例版本为例: ```text linux-5.4.119-19-0009 ``` 可以大致理解为: - `5`:主版本号 - `4`:次版本号 - `119-19-0009`:修订版本或发行版附加版本信息 通常主版本和次版本更偏向内核主线版本,后面的部分则常见于发行版维护补丁版本。 ## 3、源码状态与协议 Linux 内核是开源软件,常见采用 GPL 协议发布。 ## 4、Linux 发行版和内核的关系 Linux 内核并不等于 Linux 发行版。发行版通常是在内核基础上,加上: - 软件包管理器 - 系统工具 - 服务管理组件 - 默认配置 - 桌面环境或服务器工具链 常见发行版: - `Red Hat` / `Rocky Linux` / `AlmaLinux` - `Debian` - `Ubuntu` - `Fedora` - `Alpine` ### 4.1 简单理解 - `Fedora`:相对更新、更激进 - `Ubuntu`:桌面和服务器都很常见,LTS 版本支持周期长 - `Debian`:稳定著称 - `Alpine`:轻量、简洁,容器场景常见 ## 5、用户态与内核态 ### 5.1 用户态 用户程序运行的空间。 特点: - 权限受限 - 不能直接操作底层硬件和关键系统资源 - 需要通过系统调用进入内核态 ### 5.2 内核态 内核运行的空间。 特点: - 拥有更高权限 - 可以直接管理 CPU、内存、磁盘、网络等资源 ### 5.3 两者关系 应用程序大多运行在用户态,但在访问文件、网络、设备等资源时,需要通过系统调用进入内核态完成相关操作。 ## 6、`/proc` 与内核参数管理 Linux 通过 `/proc` 这个伪文件系统暴露很多内核状态、统计信息和可调参数。 例如: - 进程信息 - CPU 信息 - 内存信息 - 网络参数 - `sysctl` 内核参数 ## 7、`sysctl` 命令 常见配置文件: ```shell /etc/sysctl.conf ``` 常见用法: ### 7.1 临时设置参数 ```shell sysctl -w 参数=value ``` ### 7.2 重新加载配置文件 ```shell sysctl -p ``` ### 7.3 查看指定参数 ```shell sysctl 参数名 ``` ### 7.4 查看所有生效参数 ```shell sysctl -a ``` ## 8、常见运维建议 - 先理解“内核”和“发行版”不是同一个概念 - 调整内核参数前,先明确业务目标 - 临时调优先用 `sysctl -w` - 永久调优再写入 `/etc/sysctl.conf` 或 `/etc/sysctl.d/` - 不熟悉的内核参数不要直接在生产环境修改 ## 9、小结 - Linux 内核负责系统最底层的资源管理 - 发行版是在内核之上封装出的完整操作系统环境 - 用户态和内核态是 Linux 权限与执行模型的重要概念 - `/proc` 和 `sysctl` 是观察和调整内核行为的常用入口