Linux内核简介
Linux 内核简介
Linux 内核是 Linux 操作系统的核心组件,它是一个开源的、单内核(Monolithic Kernel)的操作系统内核,主要负责管理计算机硬件资源(如 CPU、内存、设备驱动)和进程调度。它由芬兰学生 Linus Torvalds 于 1991 年创建,最初是为了在 Intel 80386 处理器上运行的免费 Unix-like 系统。 Linux 内核的特点包括:
- 开源性:遵循 GNU 通用公共许可证(GPL),允许全球开发者自由修改和贡献代码。 
- 模块化设计:支持动态加载模块,便于扩展功能,如文件系统、网络协议和设备驱动。 
- 可移植性:支持多种架构,包括 x86、ARM、RISC-V 等,广泛应用于服务器、桌面、嵌入式设备(如 Android 手机)和超级计算机。 
- 安全性与稳定性:内置权限控制、多任务处理和内存保护机制,常用于企业级环境。 
截至 2025 年 8 月,Linux 内核已发展到 6.x 系列(如 6.15 版本),并开始支持 Rust 编程语言以提升安全性。
Linux 内核发展历史
Linux 内核的发展从一个个人项目演变为全球协作的开源典范,涉及数千名开发者。以下是主要发展时间线,呈现了关键版本和里程碑:
1991
0.01 / 0.02
Linus Torvalds 在赫尔辛基大学启动项目,受 Minix 启发;8 月在新闻组宣布,9 月发布首个版本(约 10,000 行代码),支持基本 shell 和编译器。
1992
0.12
成为开源项目,支持 bash 和 gcc;开始吸引社区贡献。
1994
1.0
首个稳定版本发布,支持多用户和网络功能;标志着从实验到实用。
1996
2.0
支持多处理器(SMP)和模块化加载;用户基数快速增长。
1999
2.2
改进网络和文件系统支持;广泛用于服务器。
2001
2.4
增强 USB 和防火墙支持;企业采用增加。
2003
2.6
引入预抢占和虚拟内存改进;2005 年开始使用 Git 版本控制系统,促进协作开发。
2011
3.0
版本号升级以庆祝 20 周年;优化虚拟化和容器支持(如 Docker 的基础)。
2015
4.0
实时补丁和内核自检功能;支持更多 ARM 架构。
2019
5.0
改进安全性和性能;LTS(长期支持)版本如 5.4 和 5.10 持续维护至 2026 年。
2022
6.0 / 6.1
版本号升级;6.1 引入 Rust 支持,提升内存安全;应用于现代硬件如 RISC-V。
2024-2025
6.x 系列(如 6.16)
持续优化 AI、云计算和边缘计算;发布周期约 9-10 周,主线内核保持活跃。
Linux 内核的发展依赖于全球社区,包括公司如 Red Hat、IBM 和 Google 的贡献。 如今,它驱动了超过 80% 的互联网服务器和大多数智能手机。 如果需要特定版本的详细信息,可进一步查询官方内核档案(如 kernel.org)。
Kernel 6.12版本新特性概览
Linux Kernel 6.12 新特性概览
Linux Kernel 6.12 于 2024 年 11 月 17 日正式发布,由 Linus Torvalds 宣布。这是一个重大版本,引入了多项长期期待的功能,如实时支持(PREEMPT_RT)和新的调度器 sched_ext,同时增强了硬件兼容性、安全性和性能。 该版本被视为潜在的长期支持(LTS)候选,适用于服务器、嵌入式系统和桌面环境。
主要新增功能
- 实时支持 (PREEMPT_RT):集成实时内核补丁,使 Linux 适用于实时应用,如工业控制和机器人。该功能开发了 20 年,支持低延迟任务调度。 
- 新调度器 sched_ext:引入可扩展调度类,允许用户自定义 CPU 调度策略,提升灵活性和性能优化。 
- DRM Panic 消息作为 QR 码:在内核崩溃时生成 QR 码,便于快速扫描和诊断错误。 
硬件支持增强
- 处理器和架构:支持 Intel Granite Rapids 和 Sierra Forest 处理器(包括 OOB 模式和混合 CPU 容量缩放);AMD Zen 和更新 CPU 的微码加载简化;RISC-V 新功能如 Zkr(用于 KASLR 种子)、IPI CPU 回溯、用户空间漏洞报告和 Svvptc 扩展。 
- 图形和显示:默认启用 Intel Xe2 图形(用于 Lunar Lake 和 Battlemage);支持 Raspberry Pi 5 图形加速。 
- 网络和存储设备:新增驱动包括 Realtek RTL9054/RTL9068 等汽车 PCIe 设备、Microchip LAN8650/1 10BASE-T1S MAC-PHY、Rockchip RK3568 CAN-FD、Marvell xSPI、Mediatek MTK7981 和 NXP i.MX8ULP 控制器;支持 NVIDIA SMMUv3 虚拟命令队列。 
- 外设和传感器:支持 PixArt PS/2 触控板、RTL8852BT/8852BE-VT(Wi-Fi 6);ARM64 Surface 设备、LG 笔记本操作区域、Dell 电池充电设置、ASUS Vivobook 风扇配置文件和高分辨率滚轮滚动。 
- 其他:支持 ARM “权限叠加扩展”(使用内存保护键);Android 保护访客运行;多个互连 PMU;Sophgo SG2042 外部硬件监视器。 
文件系统改进
- EROFS:添加文件后备挂载支持,提升只读文件系统的灵活性。 
- 其他文件系统:对 EXT4、Btrfs、exFAT、FUSE、F2FS 和 Bcachefs 的各种优化,包括性能提升和 bug 修复。 
网络功能
- Device Memory TCP:支持零拷贝 TCP 有效负载接收到 DMABUF 区域,同时包头单独处理,提升网络性能。 
- IPv6 增强:添加 IOAM6 支持新 tunsrc 封装模式;支持前缀信息选项中的 PIO p 标志。 
- PTP 支持:允许与 MONOTONIC_RAW 时间戳一起读取 PTP PHC。 
安全性和其他改进
- 安全:LoongArch KVM 的访客 PMU 支持;AMD 内存控制器错误地址转换;Rust 更新和最新版本支持;vDSO getrandom 移植到多个架构(LoongArch64、ARM64、PowerPC、s390x)。 
- 电源管理:intel_rapl 支持 AMD 家族 1Ah 和 Intel ArrowLake-U;cpuidle 工具显示驻留值。 
- 测试和工具:新热管理测试模块;SWIG 绑定 libcpupower;Clang 支持 nolibc(包括 LTO)。 
- 杂项:文档改进、清理和 bug 修复;SPI-NAND 连续读取;regmap irqdomains 自定义名称;MOSI 引脚空闲状态配置;ACPI 基于 RISC-V 中断控制器枚举。 
6.12 版本强调实时性和调度创新,同时保持对现代硬件的广泛支持。
具体6.12更新日志详见:
https://kernelnewbies.org/Linux_6.12
本书的内核版本基于6.12.41 LTS版本,源码详见:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/?h=v6.12.41
内核配置与编译流程(Kconfig & Makefile) (从 bootloader 到 init)
Last updated