FreeBSD manual
download PDF document: loader.8.pdf
LOADER(8) FreeBSD System Manager's Manual LOADER(8)
NAME
loader - kernel bootstrapping final stage
DESCRIPTION
The program called loader is the final stage of FreeBSD's kernel
bootstrapping process. It is responsible for bringing the kernel, kernel
modules and other files into memory. It creates a set of sh(1) like
environment variables that are passed to the kernel. It executes boot
scripts written in one of several interpreters. Together with the
scripts, it controls the booting process and interaction with the user.
It provides a scripting language that can be used to automate tasks, do
pre-configuration or assist in recovery procedures. This scripting
language is roughly divided in two main components. The smaller one is a
set of commands designed for direct use by the casual user, called
"builtin commands" for historical reasons. The main drive behind these
commands is user-friendliness. The larger component is the scripting
language built into the boot loader. FreeBSD provides three different
interpreters: Forth, Lua and Simple. The Forth loader is based on an ANS
Forth compatible Forth interpreter based on FICL, by John Sadler. The
Lua loader is a full Lua interpreter from https://www.lua.org/. The
Simple loader only interprets a list of builtin commands without any
control structure.
During initialization, loader will probe for a console and set the
console variable, or set it to serial console ("comconsole") if the
previous boot stage used that. If multiple consoles are selected, they
will be listed separated by spaces. Then, devices are probed, currdev
and loaddev are set, and LINES is set to 24. Finally, an interpreter
specific file will be executed.
BUILTIN COMMANDS
The commands common to all interpreters are described in the
loader_simp(8) "BUILTIN COMMANDS" section.
BUILTIN ENVIRONMENT VARIABLES
The environment variables common to all interpreters are described in the
loader_simp(8) "BUILTIN ENVIRONMENT VARIABLES" section.
SEE ALSO
libsa(3), loader.conf(5), tuning(7), boot(8), btxld(8), loader.efi(8),
loader_4th(8), loader_lua(8), loader_simp(8)
HISTORY
The loader first appeared in FreeBSD 3.1. The loader scripting language
changed to Lua by default in FreeBSD 12.0.
AUTHORS
The loader was written by Michael Smith <msmith@FreeBSD.org>.
FICL was written by John Sadler <john_sadler@alum.mit.edu>.
Warner Losh <imp@FreeBSD.org> integrated Lua into the tree based on
initial work done by Pedro Souza for the 2014 Google Summer of Code.
FreeBSD 14.0-RELEASE-p6 September 29, 2021 FreeBSD 14.0-RELEASE-p6