For the complete documentation index, see llms.txt. This page is also available as Markdown.

loader(8)

loader — 内核引导的最终阶段

名称

loader

描述

名为 loader 的程序是 FreeBSD 内核引导过程的最终阶段。它负责将内核、内核模块和其他文件载入内存。它创建一组类似 sh(1) 的环境变量并传递给内核。它执行以多种解释器之一编写的引导脚本。它与脚本一起控制引导过程以及与用户的交互。

它提供了一种脚本语言,可用于自动化任务、进行预配置或协助恢复操作。此脚本语言大致分为两个主要组件。较小的一组是专为普通用户直接使用而设计的命令集合,出于历史原因称为“内建命令”。这些命令的主要驱动力是用户友好性。较大的组件是内置于引导加载器中的脚本语言。FreeBSD 提供三种不同的解释器:Forth、Lua 和 Simple。Forth 加载器基于由 John Sadler 编写的 FICL,这是一个与 ANS Forth 兼容的 Forth 解释器。Lua 加载器是来自 https://www.lua.org/ 的完整 Lua 解释器。Simple 加载器仅解释一系列内建命令,不包含任何控制结构。

在初始化期间,loader 会探测控制台并设置 console 变量,或者如果前一引导阶段使用了串口控制台,则将其设置为串口控制台(“comconsole”)。如果选择了多个控制台,它们将以空格分隔列出。然后,探测设备,设置 currdev 和 loaddev,并将 LINES 设置为 24。最后,将执行特定于解释器的文件。

内建命令

所有解释器通用的命令在 loader_simp(8) 的“内建命令”章节中描述。

以下命令仅在 loader_lua(8) 和 loader_4th(8) 中可用:

be-list 列出 loader 可见的引导环境。列出的名称可直接与 be-switch 一起使用。

be-switch beName 切换到 beName 引导环境。loader 配置将从新的根目录重新加载,并且任何先前加载的内核和模块将立即被卸载。

boot-conf 加载 loader 配置并启动自动引导序列。

read-conf file 加载指定的配置文件。

reload-conf 还原所有先前应用的设置,并重新加载配置。在命令行中执行的、用于覆盖先前由 loader.conf(5) 配置 set 的变量的命令也将被还原,同时还原任何已切换的模块选项。

enable-module kmod-name disable-module kmod-name toggle-module kmod-name 启用、禁用或切换名为“kmod-name”的内核模块的加载。

show-module-options 描述 loader 已知的所有模块,并显示它们是否已启用。

以下命令仅在 loader_lua(8) 中可用:

disable-device device 设置 newbus 提示以禁用 device。

内建环境变量

所有解释器通用的环境变量在 loader_simp(8) 的“内建环境变量”章节中描述。

参见

libsa(3), loader.conf(5), tuning(7), boot(8), btxld(8), loader.efi(8), loader_4th(8), loader_lua(8), loader_simp(8)

历史

loader 首次出现于 FreeBSD 3.1。loader 脚本语言在 FreeBSD 12.0 中默认更改为 Lua。

作者

loader 由 Michael Smith msmith@FreeBSD.org 编写。

FICL 由 John Sadler john_sadler@alum.mit.edu 编写。

Warner Losh imp@FreeBSD.org 基于 Pedro Souza 为 2014 年 Google 夏季代码节所做的初始工作,将 Lua 集成到源码树中。

最后更新于

这有帮助吗?