什么是 Linux 内核?

被一行行代码包围的编码员图片

作者

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

什么是 Linux 内核?

Linux 内核作为免费开源的系统核心,是众多计算机系统不可或缺的关键组件。在 Linux 操作系统 (OS) 中,Linux 内核构成了硬件与软件层之间的关键接口,使操作系统能够同时管理众多不同的组件。

内核是计算机进程,构成操作系统 (OS) 的内核,让用户完全控制构成系统的硬件和软件组件。内核有助于防止对系统正常运行至关重要的重要进程之间发生冲突。内核代码保存在计算机内存中,支持软件和硬件之间的所有交互,例如输入/输出 (I/O)、CPU 和缓存使用情况、设备驱动程序、文件系统和网络套接字。

Linux 内核由 Linus Torvalds 于 1991 年开发,是 Unix 的免费替代品,也是最早允许用户与计算机直接交互的操作系统之一。此后数年,Linux 内核及其后续内核版本和内核发布版本已成为 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 内核外,Linux 操作系统还由系统库、用户空间实用程序和应用程序等各种组件组成。但是,所有这些组件都依赖 Linux 内核与操作系统进行通信,以便接收命令(如输入/输出 (I/O))并满足用户请求。Linux 内核以其灵活性著称,可以根据用户需要或特定程序的要求进行修改。

Linux 内核生命周期

每个 Linux 内核版本都有生命周期,包括测试、向公众发布,然后逐步淘汰。Linux 内核生命周期分为五个阶段:Prepatch、Mainline、稳定审查、长期支持 (LTS) 和生命周期结束 (EOL)。

  • Prepatch:Linux 开发人员在内核源代码树中试验新功能。
  • Mainline:通过严格的测试和调整,这些变化得以稳定。
  • 稳定审查:内核在发布前还要经过额外的测试,以修复 Mainline 阶段发现的更多关键问题。
  • 长期支持 (LTS):只有部分内核被认定为 LTS 内核,维护时间比其他内核长,一般为两年。
  • 生命周期结束:当更新的内核发布时,未被选为 LTS 的内核将停止支持。

 

辅以专家洞察分析的最新科技新闻

通过 Think 时事通讯,了解有关 AI、自动化、数据等方面最重要且最有趣的行业趋势。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。每份时事通讯都包含取消订阅链接。您可以在此管理您的订阅或取消订阅。更多相关信息,请参阅我们的 IBM 隐私声明

Linux 内核的优点

如今,Linux 已成为世界上使用最广泛的开源操作系统之一。这主要归功于 Linux 内核的灵活性和高效性。它提供了许多使 Linux 操作系统成为如此强大平台的管理和控制能力,包括为 CPU(计算机系统的主动大脑)和联网能力(与其他设备连接并共享资源和信息的能力)提供支持的能力。以下是 Linux 内核为企业带来的一些最广泛的优势:

  • 抽象:在计算机科学术语中,“抽象”一词简单地说就是省略非关键信息,使设备和程序之间的交互更加无缝。Linux 内核可以对底层硬件进行抽象,将其不重要的细节从操作系统中隐藏起来,使系统和软件能够更高效地运行。
  • 定制:Linux 内核可以定制,以满足不同用户或不同类型操作系统的特定需求。定制过程通常需要更改内核源代码并编译定制内核映像,即经过调整以满足特定用途的内核。然后,可以选择特定的内核功能和内核模块——加载或卸载到内核中的代码片段,以增加或减少某些功能——来满足特定的计算需求。常见的内核模块可用于各种任务和设备,例如高性能计算 (HPC)、企业应用程序和图形处理单元 (GPU) 等。
  • 容器化: 容器化是将软件代码与仅在任何计算环境中运行所需的操作系统库和依赖关系打包,这对于许多现代云原生应用至关重要。Linux 内核对于容器化和相邻技术(如 DockerKubernetes)至关重要,这些技术使容器成为可能。Docker 和 Kubernetes 是市场上最流行的两种容器化工具,94% 的受访公司使用其中一种或两种。1Docker 用于创建和运行容器,而 Kubernetes 是一个开源容器编排平台,可管理和扩展容器化的应用程序。
  • 虚拟化:Linux 内核可以利用其“基于内核的虚拟机 (KVM)”功能在单个物理机上运行虚拟机 (VM)。虚拟机之所以重要,是因为它们允许不同操作系统在单一设备上使用单一物理机的资源,如内存、CPU、网络接口和存储器。这个过程本质上是将 Linux 系统变成虚拟机管理程序,这一种用于管理和监控虚拟机的工具,使 Linux 系统具备了管理虚拟机的重要能力。
AI 学院

利用混合云实现 AI 就绪

本课程由 IBM 资深思想领袖带领,旨在帮助企业领导者获得所需的知识,以便划分可以推动增长的 AI 投资的优先级。

Linux 内核如何运行?

Linux 内核由六个不同的层或子系统组成,这些层或子系统实现了 Linux 内核的内核功能:

  • 系统调用实现 (SCI)
  • 流程管理
  • 内存管理
  • 虚拟内存
  • 网络堆栈
  • 设备驱动程序

下面我们将详细介绍每种功能及其作用。

SCI

SCI 层承载着允许内核执行从用户空间到内核的系统调用的功能。这是 Linux 内核的一项重要功能,因为用户空间是应用软件和驱动进程执行其工作负载的地方,而内核空间则严格用于运行关键的操作系统功能。SCI 层是两个空间之间的桥梁。当从用户空间发起系统调用时,例如请求刷新电子邮件收件箱或打开移动银行应用程序,系统调用会触发内核层的切换,从而将请求传送到操作系统。

流程管理

进程管理层使 Linux 内核能够执行用户与计算机交互的进程。例如,Linux 首次启动时,Init(“初始化”的缩写)通过运行启动脚本和管理运行级别,使系统进入可用状态。每个进程代表处理器的一个独立虚拟化,例如线程代码、数据、堆栈和 CPU 寄存器。

内存管理

计算机通过名为“内存分页”的机制来管理虚拟内存。在采用虚拟内存的操作系统中,内存页是数据可被划分的最小存储单元。Linux 内核的内存管理层使操作系统(进而使用户)能够管理计算机的可用内存。虚拟内存对所有程序及应用程序的功能实现至关重要。

虚拟文件系统 (VFS)

Linux 内核的虚拟文件系统 (VFS) 为文件系统提供了一个通用接口。VFS 作为 SCI 和内核支持的文件系统之间的交换层,支持许多关键功能(例如,打开、关闭、读取和写入)。

文件系统抽象(换句话说,文件、目录和文件系统向用户呈现的方式)是 VFS 层的另一个关键组件,有助于以用户易于理解的代表性方式呈现计算系统的复杂性。

网络堆栈

网络中的每台计算机(亦称“节点”)都必须遵循网络协议,这套严格的规则体系规范着数据的发送与接收。这些协议对于实现异构设备共联至关重要,正如安卓手机与 Mac 电脑能共存于同一网络。

为了促进这种通信,网络协议依赖于网关,而网关是促进两个不同网络之间通信的硬件设备(如路由器)。Linux 内核中的网络堆栈使用许多常见的网关设备,如速率转换器、协议转换器等,使不兼容设备之间的网络通信成为可能。

设备驱动程序

设备驱动程序为操作系统提供软件接口,使特定设备(如外置键盘或驱动器、鼠标或打印机)能够运行。Linux 内核源代码主要由特定设备驱动程序中的代码组成。

Linux 源代码树是一个包含 Linux 内核和设备驱动程序所有源代码的目录,它按支持的各种设备及其连接(例如蓝牙或串行端口)进行划分。设备驱动程序可识别对单个设备或设备类别下达的命令,并生成包含这些命令的 I/O 请求,从而使设备按照用户预期的方式运行。

Linux 内核用例

各行各业的企业都依赖 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

IBM Cloud Infrastructure Center 是一款兼容 OpenStack 的软件平台,用于管理 IBM zSystems 和 IBM LinuxONE 上的私有云基础架构。

深入了解 Cloud Infrastructure Center
IT 基础架构解决方案

发现专为企业混合云和 AI 策略设计的服务器、存储器和软件。

探索 IT 基础架构解决方案
云基础设施解决方案

查找适合企业的业务需求的云基础设施解决方案,并按需扩展资源。

云解决方案
采取后续步骤

利用 IBM 的混合云和 AI 就绪解决方案来实现企业基础设施转型。了解旨在保护、扩展和实现企业的现代化改造的服务器、存储和软件,或获取专家洞察分析,从而强化您的生成式 AI 战略。

探索 IT 基础架构解决方案 下载电子书