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

FreeBSD Manual Pages

  
 
  

home | help
LOADER(8)		    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 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
       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.

       The   following	commands  are  only  available	in  loader_lua(8)  and
       loader_4th(8):

       boot-conf
	       Load the	loader config and commence the autoboot	sequence.

       read-conf file
	       Load the	specified configuration	file.

       reload-conf
	       Revert any previously applied settings, and reload the configu-
	       ration.	Set comands that were executed at the command line  to
	       override	 variables previously set by loader.conf(5) configura-
	       tion will also be reverted, along with any module options  that
	       were toggled.

       enable-module kmod-name
       disable-module kmod-name
       toggle-module kmod-name
	       Enable,	disable,  or toggle loading of the kernel module named
	       "kmod-name".

       show-module-options
	       Describe	all modules the	loader is aware	of, and	show  if  they
	       are enabled or not.

       The following command is	only available in loader_lua(8):

       disable-device device
	       Set a newbus hint to disable the	device.

   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 lan-
       guage 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	15.0		       November	14, 2025		     LOADER(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=loader&manpath=FreeBSD+15.0-RELEASE+and+Ports>

home | help