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 bootstrap-
     ping  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 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 compati-
     ble 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 in-
     terprets 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  configura-
	     tion.   Set comands that were executed at the command line to over-
	     ride variables previously set by loader.conf(5) configuration  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 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 ports 15.1		November 14, 2025		       LOADER(8)

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

home | help