Linux 内核作为免费开源的系统核心,是众多计算机系统不可或缺的关键组件。在 Linux 操作系统 (OS) 中,Linux 内核构成了硬件与软件层之间的关键接口,使操作系统能够同时管理众多不同的组件。
内核是计算机进程,构成操作系统 (OS) 的内核,让用户完全控制构成系统的硬件和软件组件。内核有助于防止对系统正常运行至关重要的重要进程之间发生冲突。内核代码保存在计算机内存中,支持软件和硬件之间的所有交互,例如输入/输出 (I/O)、CPU 和缓存使用情况、设备驱动程序、文件系统和网络套接字。
Linux 内核由 Linus Torvalds 于 1991 年开发,是 Unix 的免费替代品,也是最早允许用户与计算机直接交互的操作系统之一。此后数年,Linux 内核及其后续内核版本和内核发布版本已成为 Linux 发行版的关键。如今,世界上一些最大的科技、软件和计算机公司都在使用 Linux 内核。
每 9-10 周,Linux 内核就会发布一个新版本。这些版本被称为“稳定内核”,由 Linux 内核开发人员和 Linux 软件源维护者负责维护,可以在 kernel.org 和 GitHub 上找到。
然而,一些供应商,例如 Debian 和 Red Hat,更喜欢维护定制的源代码树,即所有 Linux 内核源代码的集合。这种方法对 Linux 内核在许多现代企业应用(如人工智能 (AI)、边缘计算和物联网 (IoT))中的使用具有重要影响。
例如,Red Hat Enterprise Linux 是一个稳定、高性能的 Linux 平台,具有定制的安全和管理功能,它是使用 Red Hat 定制的 Linux 源代码树构建的。Debian 使用其源代码树来维护 Ubuntu,Ubuntu 是一个开源代码,对许多物联网架构至关重要。
内核是一种计算机程序,充当操作系统跳动的心脏,而操作系统是允许用户与计算机硬件和软件交互的系统。以 Linux 操作系统为例,Linux 内核是构成操作系统核心组件的代码,使操作系统能够执行其功能。
除 Linux 内核外,Linux 操作系统还由系统库、用户空间实用程序和应用程序等各种组件组成。但是,所有这些组件都依赖 Linux 内核与操作系统进行通信,以便接收命令(如输入/输出 (I/O))并满足用户请求。Linux 内核以其灵活性著称,可以根据用户需要或特定程序的要求进行修改。
每个 Linux 内核版本都有生命周期,包括测试、向公众发布,然后逐步淘汰。Linux 内核生命周期分为五个阶段:Prepatch、Mainline、稳定审查、长期支持 (LTS) 和生命周期结束 (EOL)。
Linux 内核由六个不同的层或子系统组成,这些层或子系统实现了 Linux 内核的内核功能:
下面我们将详细介绍每种功能及其作用。
SCI 层承载着允许内核执行从用户空间到内核的系统调用的功能。这是 Linux 内核的一项重要功能,因为用户空间是应用软件和驱动进程执行其工作负载的地方,而内核空间则严格用于运行关键的操作系统功能。SCI 层是两个空间之间的桥梁。当从用户空间发起系统调用时,例如请求刷新电子邮件收件箱或打开移动银行应用程序,系统调用会触发内核层的切换,从而将请求传送到操作系统。
进程管理层使 Linux 内核能够执行用户与计算机交互的进程。例如,Linux 首次启动时,Init(“初始化”的缩写)通过运行启动脚本和管理运行级别,使系统进入可用状态。每个进程代表处理器的一个独立虚拟化,例如线程代码、数据、堆栈和 CPU 寄存器。
计算机通过名为“内存分页”的机制来管理虚拟内存。在采用虚拟内存的操作系统中,内存页是数据可被划分的最小存储单元。Linux 内核的内存管理层使操作系统(进而使用户)能够管理计算机的可用内存。虚拟内存对所有程序及应用程序的功能实现至关重要。
Linux 内核的虚拟文件系统 (VFS) 为文件系统提供了一个通用接口。VFS 作为 SCI 和内核支持的文件系统之间的交换层,支持许多关键功能(例如,打开、关闭、读取和写入)。
文件系统抽象(换句话说,文件、目录和文件系统向用户呈现的方式)是 VFS 层的另一个关键组件,有助于以用户易于理解的代表性方式呈现计算系统的复杂性。
网络中的每台计算机(亦称“节点”)都必须遵循网络协议,这套严格的规则体系规范着数据的发送与接收。这些协议对于实现异构设备共联至关重要,正如安卓手机与 Mac 电脑能共存于同一网络。
为了促进这种通信,网络协议依赖于网关,而网关是促进两个不同网络之间通信的硬件设备(如路由器)。Linux 内核中的网络堆栈使用许多常见的网关设备,如速率转换器、协议转换器等,使不兼容设备之间的网络通信成为可能。
设备驱动程序为操作系统提供软件接口,使特定设备(如外置键盘或驱动器、鼠标或打印机)能够运行。Linux 内核源代码主要由特定设备驱动程序中的代码组成。
Linux 源代码树是一个包含 Linux 内核和设备驱动程序所有源代码的目录,它按支持的各种设备及其连接(例如蓝牙或串行端口)进行划分。设备驱动程序可识别对单个设备或设备类别下达的命令,并生成包含这些命令的 I/O 请求,从而使设备按照用户预期的方式运行。
各行各业的企业都依赖 Linux 内核及其提供的各种功能,以保持员工队伍的创新能力,并提供客户所依赖的程序、应用程序和服务。以下是 Linux 内核的一些最常见的企业用例。
Linux 内核使计算机和计算设备能够通过 Wi-Fi、以太网或其他连接类型安全连接,而不受设备兼容性的影响。这一功能实现了重要的知识和资源共享,如使用内联网和快速、高效地交付软件即服务 (SaaS) 产品。
Linux 内核具备强大的安全功能,可帮助保护用户和操作系统免受可能损害计算机、程序、应用程序及其运行网络的网络威胁。这些威胁包括许多不同类型的恶意软件,例如勒索软件、rootkit、蠕虫等。针对 Linux 内核漏洞的威胁可以通过频繁的补丁(如漏洞修复)来解决,从而确保系统和在系统上运行的程序的安全。
随着 89% 的企业持续推进数字化转型2,优化专用于数字化转型的计算资源已成为大多数企业战略的核心组成部分。
Linux 内核助力企业在关键计算资源(包括服务器、数据库及前沿应用软件)之间实现需求平衡,通过内核调优流程确保系统与网络始终维持峰值性能。
内核调优是指对 Linux 内核的设置进行细微调整,以提高特定 Linux 内核子系统(例如网络、内存、进程调度和文件系统)的性能。以文件系统为例,包括视频游戏、金融交易应用程序和社交媒体网站在内的许多数据密集型应用都需要调整文件系统参数,才能以最佳状态运行。proc 文件系统(Linux 操作系统中的 VFS)是内核内部数据结构之间的接口,用于获取系统数据来调整内核参数,优化应用程序性能。
当今最成功的企业必须为员工配备笔记本电脑和移动设备等尖端装置,才能蓬勃发展。Linux 内核使程序和网络能够支持位于不同地点、使用不同类型设备的数千名员工无缝协作。内核允许硬件设备通过特定的设备模块进行交互,这些设备模块可以加载到内核上,以便由操作系统进行管理。
一种常用的 Linux 设备管理进程被称为中断。 中断允许 Linux 内核在特定操作不需要时停止设备与应用程序之间的通信,从而帮助节省计算资源。另一个是 udev,这是一种 Linux 设备管理工具,可管理在操作系统中添加和删除设备的操作,并控制每个设备在目录中的显示方式。
云计算是一种通过互联网按需提供计算资源的技术,已成为许多现代企业的重要工具,它能促进创新,帮助企业以快速、可扩展的方式为客户提供解决方案。
Linux 内核以重要的方式支持云计算,并已成为包括 AWS、Microsoft Azure、Oracle 和 Google Cloud 在内的全球所有最大云供应商的重要组成部分。
内核的可扩展性使其能够支持超级计算机和数据中心等大型计算机系统,而无需大幅增加计算资源,这对于云架构来说是至关重要的能力。Linux 内核也非常适合云工作负载,因为它非常稳定,停机时间相对较短。最后,Linux 内核通用性极强,能适配各种硬件,这一能力在虚拟化环境中至关重要——虚拟化环境正是现代云计算的核心。
1. Top five containerization technologies in 2024, (link resides outside ibm.com), 6Sense, 2024
2. The Value of Digital Transformation, (link resides outside ibm.com), Harvard Business Review, July 31, 2023
IBM Cloud Infrastructure Center 是一款兼容 OpenStack 的软件平台,用于管理 IBM zSystems 和 IBM LinuxONE 上的私有云基础架构。
发现专为企业混合云和 AI 策略设计的服务器、存储器和软件。
查找适合企业的业务需求的云基础设施解决方案,并按需扩展资源。