Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
LOADER(8)		FreeBSD	System Manager's Manual		     LOADER(8)

     loader -- kernel bootstrapping final stage

     The program called	loader is the final stage of FreeBSD's kernel boot-
     strapping process.	 It is responsible for bringing	the kernel, kernel
     modules and other files into memory.  It creates a	set of sh(1) like en-
     vironment 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 lan-
     guage 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  The Sim-
     ple loader	only interprets	a list of builtin commands without any control

     During initialization, loader will	probe for a console and	set the
     console variable, or set it to serial console ("comconsole") if the pre-
     vious 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 spe-
     cific file	will be	executed.

     The commands common to all	interpreters are described in the
     loader_simp(8) "BUILTIN COMMANDS" section.

     The environment variables common to all interpreters are described	in the
     loader_simp(8) "BUILTIN ENVIRONMENT VARIABLES" section.

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

     The loader	first appeared in FreeBSD 3.1.	The loader scripting language
     changed to	Lua by default in FreeBSD 12.0.

     The loader	was written by Michael Smith <>.

     FICL was written by John Sadler <>.

     Warner Losh <> integrated Lua into the tree	based on ini-
     tial work done by Pedro Souza for the 2014	Google Summer of Code.

FreeBSD	13.0		      September	29, 2021		  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help