この記事は中国語版をもとにした日本語版メモです。コマンド、コード、数式、画像リンクは原文の意味を壊さないように保持し、説明文と見出しを日本語向けに整理しています。
在 Linux 中,固件 是指与特定硬件组件紧密相关的低级软件,通过提供指令和控制机制使它们能够正常実行。此固件在内核之下実行,但对于硬件与操作システム交互至关重要。
让我们分解一下問題的每个部分:
1. Linux 中的固件#
在 Linux システム中,固件通常是指在以下硬件设备上実行的微コード或二进制コード:
- CPU(たとえば,Intel 或 AMD 微コード)
- GPU(显卡固件)
- 网卡(Wi-Fi 或以太网适配器固件)
- 存储控制器(たとえば,SSD 固件)
- 外围设备(たとえば,USB 设备、声卡)
==一些固件内置于硬件本身,而其他固件则由操作システム在启动期间加载。==Linux 使用存储在 /lib/firmware ディレクトリ中的ファイル来处理固件加载。
2. /sys ディレクトリ中的固件#
Linux 中的 /sys ディレクトリ是 sysfs 虚拟ファイルシステム的一部分,它提供了内核和用户空间之间的接口,公开了有关硬件设备和内核子システム的详细信息。尽管 sysfs 主要处理内核和设备信息,但它也できます公开固件相关数据。
- /sys/firmware:此ディレクトリ包含与システム固件相关的信息和接口,たとえば:
- /sys/firmware/efi:もし您的システム以 UEFI 模式启动,则此ディレクトリ包含有关 UEFI 固件的详细信息,たとえば設定表、実行时变量和メモリ映射。
- /sys/firmware/acpi:与 ACPI(高级設定和电源接口)固件相关的信息,可帮助进行电源管理和硬件設定。
- /sys/firmware/dmi:DMI(桌面管理接口)表提供システム信息,たとえば主板型号、システム制造商和 BIOS/UEFI 版本。
3. 固件、内核、硬件和システム之间的关系#
这些组件中的每一个都在计算机的整体実行中发挥着关键作用:
固件#
- 它是什么:固件是嵌入硬件或由システム在実行时加载的低级软件。它提供了硬件应如何実行和与操作システム通信的基本指令。
- 角色:固件直接控制硬件,使其能够実行。もし没有固件,网卡、CPU 和 GPU 等硬件组件可能无法正常工作或根本无法工作。
- 位置:固件要么预装在硬件中(非易失性存储器),要么从操作システム加载(来自 Linux 中的“/lib/firmware”)。
内核#
- 它是什么:Linux 内核是操作システム的核心。它管理システム资源,包括メモリ、プロセス和硬件。
- 角色:内核负责通过驱动程序与硬件通信,驱动程序充当内核和硬件设备之间的中介。在必要时,内核还できます加载固件来初始化和控制特定硬件。
- 与固件的关系:内核与固件交互以初始化设备。它在必要时将固件加载到设备中,并处理固件与更高级别システムプロセス之间的通信。
硬件#
- 它是什么:计算机的物理组件,たとえば CPU、GPU、网卡、ディスク和外围设备。
- 角色:硬件执行システム所需的物理任务(たとえば计算、存储、输入/输出)。但是,硬件必要固件和内核驱动程序才能正常実行并与システム的其余部分交互。
システム#
- 它是什么:整个计算机,包括硬件、固件、内核和用户级软件(应用程序、实用程序等)。
- 角色:システム作为一个整体,提供用户できます与应用程序和服务交互的环境,而应用程序和服务又依赖内核来访问硬件资源。もし没有固件,システム可能无法正确初始化硬件组件。
交互例:#
当 Linux システム启动时:
- 固件 (BIOS/UEFI) 初始化硬件,执行 POST(开机自检),その後将控制权传递给引导加载程序(如 GRUB)。
- 引导加载程序将 内核 加载到メモリ中。
- 加载内核后,它开始初始化设备(如网卡或 GPU)。もし硬件必要额外的固件,内核将从
/lib/firmware加载它。 - 内核使用 驱动程序 来管理硬件和操作システム之间的通信。
- 硬件现在已正确初始化并由其固件和内核驱动程序控制,できます执行其任务(たとえば,ネットワーク传输、渲染图形等)。
关系摘要:#
- 固件是直接控制硬件组件的低级软件。==できます与硬件直接通信,不依赖于操作システム。==
- 内核是操作システム的核心,它使用驱动程序管理システム资源和硬件,并在必要时加载固件。
- 硬件依靠固件和内核驱动程序与操作システム通信。
- システム包含所有这些组件,共同为用户提供功能环境。==システム要控制硬件,必须要通过驱动程序。==


