xref: /titanic_52/usr/src/man/man5/loader.5 (revision ba11c5b535a8958668f939901bdcacb3ee8b7570)
1*ba11c5b5SToomas Soome.\" Copyright (c) 1999 Daniel C. Sobral
2*ba11c5b5SToomas Soome.\" All rights reserved.
3*ba11c5b5SToomas Soome.\"
4*ba11c5b5SToomas Soome.\" Redistribution and use in source and binary forms, with or without
5*ba11c5b5SToomas Soome.\" modification, are permitted provided that the following conditions
6*ba11c5b5SToomas Soome.\" are met:
7*ba11c5b5SToomas Soome.\" 1. Redistributions of source code must retain the above copyright
8*ba11c5b5SToomas Soome.\"    notice, this list of conditions and the following disclaimer.
9*ba11c5b5SToomas Soome.\" 2. Redistributions in binary form must reproduce the above copyright
10*ba11c5b5SToomas Soome.\"    notice, this list of conditions and the following disclaimer in the
11*ba11c5b5SToomas Soome.\"    documentation and/or other materials provided with the distribution.
12*ba11c5b5SToomas Soome.\"
13*ba11c5b5SToomas Soome.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14*ba11c5b5SToomas Soome.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15*ba11c5b5SToomas Soome.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16*ba11c5b5SToomas Soome.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17*ba11c5b5SToomas Soome.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18*ba11c5b5SToomas Soome.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19*ba11c5b5SToomas Soome.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20*ba11c5b5SToomas Soome.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21*ba11c5b5SToomas Soome.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22*ba11c5b5SToomas Soome.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23*ba11c5b5SToomas Soome.\" SUCH DAMAGE.
24*ba11c5b5SToomas Soome.\"
25*ba11c5b5SToomas Soome.Dd Apr 20, 2017
26*ba11c5b5SToomas Soome.Dt LOADER 5
27*ba11c5b5SToomas Soome.Os
28*ba11c5b5SToomas Soome.Sh NAME
29*ba11c5b5SToomas Soome.Nm loader
30*ba11c5b5SToomas Soome.Nd kernel bootstrapping final stage
31*ba11c5b5SToomas Soome.Sh DESCRIPTION
32*ba11c5b5SToomas SoomeThe
33*ba11c5b5SToomas Soome.Nm
34*ba11c5b5SToomas Soomeis the final stage of
35*ba11c5b5SToomas Soome.Nm illumos Ns 's
36*ba11c5b5SToomas Soomekernel bootstrapping process. The actual name for the stage depends on
37*ba11c5b5SToomas Soomethe platform. On IA32 (i386) architectures with BIOS firmware, it is a
38*ba11c5b5SToomas Soome.Pa BTX
39*ba11c5b5SToomas Soomeclient and named
40*ba11c5b5SToomas Soome.Nm zfsloader .
41*ba11c5b5SToomas SoomeIt is linked statically to libstand and usually located in the directory
42*ba11c5b5SToomas Soome.Pa /boot .
43*ba11c5b5SToomas Soome.Pp
44*ba11c5b5SToomas Soome.Nm
45*ba11c5b5SToomas Soomesupports booting from
46*ba11c5b5SToomas Soome.Cm ZFS ,
47*ba11c5b5SToomas Soome.Cm UFS ,
48*ba11c5b5SToomas Soome.Cm PCFS ,
49*ba11c5b5SToomas Soome.Cm HSFS
50*ba11c5b5SToomas Soomeand
51*ba11c5b5SToomas Soome.Cm NFS
52*ba11c5b5SToomas Soomefile systems. Additionally,
53*ba11c5b5SToomas Soome.Nm
54*ba11c5b5SToomas Soomecan load files from the
55*ba11c5b5SToomas Soome.Cm TFTP
56*ba11c5b5SToomas Soomefile service. The NFS and TFTP based boot is enabled via
57*ba11c5b5SToomas Soome.Xr pxeboot 5 .
58*ba11c5b5SToomas SoomeThe
59*ba11c5b5SToomas Soome.Nm
60*ba11c5b5SToomas Soomealso does support uncompressing gzip files while reading. The uncompression
61*ba11c5b5SToomas Soomewill happen automatically if the compressed file is stored without .gz
62*ba11c5b5SToomas Soomesuffix or if the file is accessed by leaving out the .gz suffix from the name.
63*ba11c5b5SToomas SoomeIf the file is referred by full name, including .gz suffix, then the file
64*ba11c5b5SToomas Soomecontent is read as is and the uncompression is not performed.
65*ba11c5b5SToomas Soome.Pp
66*ba11c5b5SToomas Soome.Nm
67*ba11c5b5SToomas Soomeprovides a scripting language that can be used to
68*ba11c5b5SToomas Soomeautomate tasks, do pre-configuration or assist in recovery
69*ba11c5b5SToomas Soomeprocedures.
70*ba11c5b5SToomas SoomeThis scripting language is roughly divided in
71*ba11c5b5SToomas Soometwo main components.
72*ba11c5b5SToomas SoomeThe smaller one is a set of commands
73*ba11c5b5SToomas Soomedesigned for direct use by the casual user, called "builtin
74*ba11c5b5SToomas Soomecommands" for historical reasons.
75*ba11c5b5SToomas SoomeThe main drive behind these commands is user-friendliness.
76*ba11c5b5SToomas SoomeThe bigger component is an
77*ba11c5b5SToomas Soome.Tn ANS
78*ba11c5b5SToomas SoomeForth compatible Forth interpreter based on FICL, by
79*ba11c5b5SToomas Soome.An John Sadler .
80*ba11c5b5SToomas Soome.Pp
81*ba11c5b5SToomas SoomeDuring initialization,
82*ba11c5b5SToomas Soome.Nm
83*ba11c5b5SToomas Soomewill probe for a console and set the
84*ba11c5b5SToomas Soome.Va console
85*ba11c5b5SToomas Soomevariable, or set it to serial console
86*ba11c5b5SToomas Soome.Pq Do Li ttya Dc - Dq Li ttyd
87*ba11c5b5SToomas Soomeif the previous boot stage used that.
88*ba11c5b5SToomas SoomeIf multiple consoles are selected, they will be listed separated by commas.
89*ba11c5b5SToomas SoomeThen, devices are probed,
90*ba11c5b5SToomas Soome.Va currdev
91*ba11c5b5SToomas Soomeand
92*ba11c5b5SToomas Soome.Va loaddev
93*ba11c5b5SToomas Soomeare set, and
94*ba11c5b5SToomas Soome.Va COLUMNS ,
95*ba11c5b5SToomas Soome.Va LINES ,
96*ba11c5b5SToomas Soomeand
97*ba11c5b5SToomas Soome.Va ISADIR
98*ba11c5b5SToomas Soomeare set.
99*ba11c5b5SToomas SoomeNext,
100*ba11c5b5SToomas Soome.Tn FICL
101*ba11c5b5SToomas Soomeis initialized, the builtin words are added to its vocabulary.
102*ba11c5b5SToomas SoomeThe inner interpreter
103*ba11c5b5SToomas Soome.Nm
104*ba11c5b5SToomas Soomewill use with
105*ba11c5b5SToomas Soome.Tn FICL
106*ba11c5b5SToomas Soomeis then set to
107*ba11c5b5SToomas Soome.Ic interpret ,
108*ba11c5b5SToomas Soomewhich is
109*ba11c5b5SToomas Soome.Tn FICL Ns 's
110*ba11c5b5SToomas Soomedefault.
111*ba11c5b5SToomas SoomeAfter that,
112*ba11c5b5SToomas Soome.Pa /boot/loader.rc
113*ba11c5b5SToomas Soomeis processed if available.
114*ba11c5b5SToomas SoomeThese files are processed through the
115*ba11c5b5SToomas Soome.Ic include
116*ba11c5b5SToomas Soomecommand, which reads all of them into memory before processing them,
117*ba11c5b5SToomas Soomemaking disk changes possible.
118*ba11c5b5SToomas Soome.Pp
119*ba11c5b5SToomas SoomeAt this point, if an
120*ba11c5b5SToomas Soome.Ic autoboot
121*ba11c5b5SToomas Soomehas not been tried, and if
122*ba11c5b5SToomas Soome.Va autoboot_delay
123*ba11c5b5SToomas Soomeis not set to
124*ba11c5b5SToomas Soome.Dq Li NO
125*ba11c5b5SToomas Soome(not case sensitive), then an
126*ba11c5b5SToomas Soome.Ic autoboot
127*ba11c5b5SToomas Soomewill be tried.
128*ba11c5b5SToomas SoomeIf the system gets past this point,
129*ba11c5b5SToomas Soome.Va prompt
130*ba11c5b5SToomas Soomewill be set and
131*ba11c5b5SToomas Soome.Nm
132*ba11c5b5SToomas Soomewill engage interactive mode.
133*ba11c5b5SToomas SoomePlease note that historically even when
134*ba11c5b5SToomas Soome.Va autoboot_delay
135*ba11c5b5SToomas Soomeis set to
136*ba11c5b5SToomas Soome.Dq Li 0
137*ba11c5b5SToomas Soomeuser will be able to interrupt autoboot process by pressing some key
138*ba11c5b5SToomas Soomeon the console while kernel and modules are being loaded.
139*ba11c5b5SToomas SoomeIn some
140*ba11c5b5SToomas Soomecases such behaviour may be undesirable, to prevent it set
141*ba11c5b5SToomas Soome.Va autoboot_delay
142*ba11c5b5SToomas Soometo
143*ba11c5b5SToomas Soome.Dq Li -1 ,
144*ba11c5b5SToomas Soomein this case
145*ba11c5b5SToomas Soome.Nm
146*ba11c5b5SToomas Soomewill engage interactive mode only if
147*ba11c5b5SToomas Soome.Ic autoboot
148*ba11c5b5SToomas Soomehas failed.
149*ba11c5b5SToomas Soome.Ss Builtin Commands
150*ba11c5b5SToomas SoomeIn
151*ba11c5b5SToomas Soome.Nm ,
152*ba11c5b5SToomas Soomebuiltin commands take parameters from the command line.
153*ba11c5b5SToomas SoomeIf an error condition occurs, an exception will be generated,
154*ba11c5b5SToomas Soomewhich can be intercepted using
155*ba11c5b5SToomas Soome.Tn ANS
156*ba11c5b5SToomas SoomeForth exception handling
157*ba11c5b5SToomas Soomewords.
158*ba11c5b5SToomas SoomeIf not intercepted, an error message will be displayed and
159*ba11c5b5SToomas Soomethe interpreter's state will be reset, emptying the stack and restoring
160*ba11c5b5SToomas Soomeinterpreting mode.
161*ba11c5b5SToomas Soome.Pp
162*ba11c5b5SToomas SoomeThe builtin commands available are:
163*ba11c5b5SToomas Soome.Pp
164*ba11c5b5SToomas Soome.Bl -tag -width Ds -compact
165*ba11c5b5SToomas Soome.It Ic autoboot Op Ar seconds Op Ar prompt
166*ba11c5b5SToomas SoomeProceeds to bootstrap the system after a number of seconds, if not
167*ba11c5b5SToomas Soomeinterrupted by the user.
168*ba11c5b5SToomas SoomeDisplays a countdown prompt
169*ba11c5b5SToomas Soomewarning the user the system is about to be booted,
170*ba11c5b5SToomas Soomeunless interrupted by a key press.
171*ba11c5b5SToomas SoomeThe kernel will be loaded first if necessary.
172*ba11c5b5SToomas SoomeDefaults to 10 seconds.
173*ba11c5b5SToomas Soome.Pp
174*ba11c5b5SToomas Soome.It Ic bcachestat
175*ba11c5b5SToomas SoomeDisplays statistics about disk cache usage.
176*ba11c5b5SToomas SoomeFor debugging only.
177*ba11c5b5SToomas Soome.Pp
178*ba11c5b5SToomas Soome.It Ic boot
179*ba11c5b5SToomas Soome.It Ic boot Ar kernelname Op Cm ...
180*ba11c5b5SToomas Soome.It Ic boot Fl flag Cm ...
181*ba11c5b5SToomas SoomeImmediately proceeds to bootstrap the system, loading the kernel
182*ba11c5b5SToomas Soomeif necessary.
183*ba11c5b5SToomas SoomeAny flags or arguments are passed to the kernel, but they
184*ba11c5b5SToomas Soomemust precede the kernel name, if a kernel name is provided.
185*ba11c5b5SToomas Soome.Pp
186*ba11c5b5SToomas Soome.Em WARNING :
187*ba11c5b5SToomas SoomeThe behavior of this builtin is changed if
188*ba11c5b5SToomas Soome.Xr loader.4th 5
189*ba11c5b5SToomas Soomeis loaded.
190*ba11c5b5SToomas Soome.Pp
191*ba11c5b5SToomas Soome.It Ic chain Ar device
192*ba11c5b5SToomas SoomeChain load another boot loader from the specified device. Device can be either
193*ba11c5b5SToomas Soomedisk name or partition.
194*ba11c5b5SToomas Soome.Pp
195*ba11c5b5SToomas Soome.It Ic echo Xo
196*ba11c5b5SToomas Soome.Op Fl n
197*ba11c5b5SToomas Soome.Op Aq message
198*ba11c5b5SToomas Soome.Xc
199*ba11c5b5SToomas SoomeDisplays text on the screen.
200*ba11c5b5SToomas SoomeA new line will be printed unless
201*ba11c5b5SToomas Soome.Fl n
202*ba11c5b5SToomas Soomeis specified.
203*ba11c5b5SToomas Soome.Pp
204*ba11c5b5SToomas Soome.It Ic heap
205*ba11c5b5SToomas SoomeDisplays memory usage statistics.
206*ba11c5b5SToomas SoomeFor debugging purposes only.
207*ba11c5b5SToomas Soome.Pp
208*ba11c5b5SToomas Soome.It Ic help Op topic Op subtopic
209*ba11c5b5SToomas SoomeShows help messages read from
210*ba11c5b5SToomas Soome.Pa /boot/loader.help .
211*ba11c5b5SToomas SoomeThe special topic
212*ba11c5b5SToomas Soome.Em index
213*ba11c5b5SToomas Soomewill list the topics available.
214*ba11c5b5SToomas Soome.Pp
215*ba11c5b5SToomas Soome.It Ic include Ar file Op Ar
216*ba11c5b5SToomas SoomeProcess script files.
217*ba11c5b5SToomas SoomeEach file, in turn, is completely read into memory,
218*ba11c5b5SToomas Soomeand then each of its lines is passed to the command line interpreter.
219*ba11c5b5SToomas SoomeIf any error is returned by the interpreter, the include
220*ba11c5b5SToomas Soomecommand aborts immediately, without reading any other files, and
221*ba11c5b5SToomas Soomereturns an error itself (see
222*ba11c5b5SToomas Soome.Sx ERRORS ) .
223*ba11c5b5SToomas Soome.Pp
224*ba11c5b5SToomas Soome.It Ic load Xo
225*ba11c5b5SToomas Soome.Op Fl t Ar type
226*ba11c5b5SToomas Soome.Ar file Cm ...
227*ba11c5b5SToomas Soome.Xc
228*ba11c5b5SToomas SoomeLoads a kernel or file of opaque contents tagged as being of the type
229*ba11c5b5SToomas Soome.Ar type .
230*ba11c5b5SToomas SoomeKernel and modules can be either in a.out or ELF format.
231*ba11c5b5SToomas SoomeAny arguments passed after the name of the file to be loaded
232*ba11c5b5SToomas Soomewill be passed as arguments to that file.
233*ba11c5b5SToomas Soome.Pp
234*ba11c5b5SToomas Soome.It Ic ls Xo
235*ba11c5b5SToomas Soome.Op Fl l
236*ba11c5b5SToomas Soome.Op Ar path
237*ba11c5b5SToomas Soome.Xc
238*ba11c5b5SToomas SoomeDisplays a listing of files in the directory
239*ba11c5b5SToomas Soome.Ar path ,
240*ba11c5b5SToomas Soomeor the root directory if
241*ba11c5b5SToomas Soome.Ar path
242*ba11c5b5SToomas Soomeis not specified.
243*ba11c5b5SToomas SoomeIf
244*ba11c5b5SToomas Soome.Fl l
245*ba11c5b5SToomas Soomeis specified, file sizes will be shown too.
246*ba11c5b5SToomas Soome.Pp
247*ba11c5b5SToomas Soome.It Ic lsdev Op Fl v
248*ba11c5b5SToomas SoomeLists all of the devices from which it may be possible to load modules.
249*ba11c5b5SToomas SoomeIf
250*ba11c5b5SToomas Soome.Fl v
251*ba11c5b5SToomas Soomeis specified, more details are printed.
252*ba11c5b5SToomas Soome.Pp
253*ba11c5b5SToomas Soome.It Ic lsmod Op Fl v
254*ba11c5b5SToomas SoomeDisplays loaded modules.
255*ba11c5b5SToomas SoomeIf
256*ba11c5b5SToomas Soome.Fl v
257*ba11c5b5SToomas Soomeis specified, more details are shown.
258*ba11c5b5SToomas Soome.Pp
259*ba11c5b5SToomas Soome.It Ic more Ar file Op Ar
260*ba11c5b5SToomas SoomeDisplay the files specified, with a pause at each
261*ba11c5b5SToomas Soome.Va LINES
262*ba11c5b5SToomas Soomedisplayed.
263*ba11c5b5SToomas Soome.Pp
264*ba11c5b5SToomas Soome.It Ic read Xo
265*ba11c5b5SToomas Soome.Op Fl t Ar seconds
266*ba11c5b5SToomas Soome.Op Fl p Ar prompt
267*ba11c5b5SToomas Soome.Op Va variable
268*ba11c5b5SToomas Soome.Xc
269*ba11c5b5SToomas SoomeReads a line of input from the terminal, storing it in
270*ba11c5b5SToomas Soome.Va variable
271*ba11c5b5SToomas Soomeif specified.
272*ba11c5b5SToomas SoomeA timeout can be specified with
273*ba11c5b5SToomas Soome.Fl t ,
274*ba11c5b5SToomas Soomethough it will be canceled at the first key pressed.
275*ba11c5b5SToomas SoomeA prompt may also be displayed through the
276*ba11c5b5SToomas Soome.Fl p
277*ba11c5b5SToomas Soomeflag.
278*ba11c5b5SToomas Soome.Pp
279*ba11c5b5SToomas Soome.It Ic reboot
280*ba11c5b5SToomas SoomeImmediately reboots the system.
281*ba11c5b5SToomas Soome.Pp
282*ba11c5b5SToomas Soome.It Ic set Ar variable
283*ba11c5b5SToomas Soome.It Ic set Ar variable Ns = Ns Ar value
284*ba11c5b5SToomas SoomeSet loader's environment variables.
285*ba11c5b5SToomas Soome.Pp
286*ba11c5b5SToomas Soome.It Ic show Op Va variable
287*ba11c5b5SToomas SoomeDisplays the specified variable's value, or all variables and their
288*ba11c5b5SToomas Soomevalues if
289*ba11c5b5SToomas Soome.Va variable
290*ba11c5b5SToomas Soomeis not specified.
291*ba11c5b5SToomas Soome.Pp
292*ba11c5b5SToomas Soome.It Ic unload
293*ba11c5b5SToomas SoomeRemove all modules from memory.
294*ba11c5b5SToomas Soome.Pp
295*ba11c5b5SToomas Soome.It Ic unset Va variable
296*ba11c5b5SToomas SoomeRemoves
297*ba11c5b5SToomas Soome.Va variable
298*ba11c5b5SToomas Soomefrom the environment.
299*ba11c5b5SToomas Soome.Pp
300*ba11c5b5SToomas Soome.It Ic \&?
301*ba11c5b5SToomas SoomeLists available commands.
302*ba11c5b5SToomas Soome.El
303*ba11c5b5SToomas Soome.Ss Builtin Environment Variables
304*ba11c5b5SToomas SoomeThe
305*ba11c5b5SToomas Soome.Nm
306*ba11c5b5SToomas Soomehas actually two different kinds of
307*ba11c5b5SToomas Soome.Sq environment
308*ba11c5b5SToomas Soomevariables.
309*ba11c5b5SToomas SoomeThere are ANS Forth's
310*ba11c5b5SToomas Soome.Em environmental queries ,
311*ba11c5b5SToomas Soomeand a separate space of environment variables used by builtins, which
312*ba11c5b5SToomas Soomeare not directly available to Forth words.
313*ba11c5b5SToomas SoomeIt is the latter type that this section covers.
314*ba11c5b5SToomas Soome.Pp
315*ba11c5b5SToomas SoomeEnvironment variables can be set and unset through the
316*ba11c5b5SToomas Soome.Ic set
317*ba11c5b5SToomas Soomeand
318*ba11c5b5SToomas Soome.Ic unset
319*ba11c5b5SToomas Soomebuiltins, and can have their values interactively examined through the
320*ba11c5b5SToomas Soomeuse of the
321*ba11c5b5SToomas Soome.Ic show
322*ba11c5b5SToomas Soomebuiltin.
323*ba11c5b5SToomas SoomeTheir values can also be accessed as described in
324*ba11c5b5SToomas Soome.Sx BUILTIN PARSER .
325*ba11c5b5SToomas Soome.Pp
326*ba11c5b5SToomas SoomeNotice that these environment variables are not inherited by any shell
327*ba11c5b5SToomas Soomeafter the system has been booted.
328*ba11c5b5SToomas Soome.Pp
329*ba11c5b5SToomas SoomeA few variables are set automatically by
330*ba11c5b5SToomas Soome.Nm .
331*ba11c5b5SToomas SoomeOthers can affect the behavior of either
332*ba11c5b5SToomas Soome.Nm
333*ba11c5b5SToomas Soomeor the kernel at boot.
334*ba11c5b5SToomas SoomeSome options may require a value,
335*ba11c5b5SToomas Soomewhile others define behavior just by being set.
336*ba11c5b5SToomas SoomeBoth types of builtin variables are described below.
337*ba11c5b5SToomas Soome.Bl -tag -width bootfile
338*ba11c5b5SToomas Soome.It Va autoboot_delay
339*ba11c5b5SToomas SoomeNumber of seconds
340*ba11c5b5SToomas Soome.Ic autoboot
341*ba11c5b5SToomas Soomewill wait before booting.
342*ba11c5b5SToomas SoomeIf this variable is not defined,
343*ba11c5b5SToomas Soome.Ic autoboot
344*ba11c5b5SToomas Soomewill default to 10 seconds.
345*ba11c5b5SToomas Soome.Pp
346*ba11c5b5SToomas SoomeIf set to
347*ba11c5b5SToomas Soome.Dq Li NO ,
348*ba11c5b5SToomas Soomeno
349*ba11c5b5SToomas Soome.Ic autoboot
350*ba11c5b5SToomas Soomewill be automatically attempted after processing
351*ba11c5b5SToomas Soome.Pa /boot/loader.rc ,
352*ba11c5b5SToomas Soomethough explicit
353*ba11c5b5SToomas Soome.Ic autoboot Ns 's
354*ba11c5b5SToomas Soomewill be processed normally, defaulting to 10 seconds delay.
355*ba11c5b5SToomas Soome.Pp
356*ba11c5b5SToomas SoomeIf set to
357*ba11c5b5SToomas Soome.Dq Li 0 ,
358*ba11c5b5SToomas Soomeno delay will be inserted, but user still will be able to interrupt
359*ba11c5b5SToomas Soome.Ic autoboot
360*ba11c5b5SToomas Soomeprocess and escape into the interactive mode by pressing some key
361*ba11c5b5SToomas Soomeon the console while kernel and
362*ba11c5b5SToomas Soomemodules are being loaded.
363*ba11c5b5SToomas Soome.Pp
364*ba11c5b5SToomas SoomeIf set to
365*ba11c5b5SToomas Soome.Dq Li -1 ,
366*ba11c5b5SToomas Soomeno delay will be inserted and
367*ba11c5b5SToomas Soome.Nm
368*ba11c5b5SToomas Soomewill engage interactive mode only if
369*ba11c5b5SToomas Soome.Ic autoboot
370*ba11c5b5SToomas Soomehas failed for some reason.
371*ba11c5b5SToomas Soome.It Va boot_ask
372*ba11c5b5SToomas SoomeWill set
373*ba11c5b5SToomas Soome.Xr kernel 1M
374*ba11c5b5SToomas Soome.Fl a
375*ba11c5b5SToomas Soomeoption.
376*ba11c5b5SToomas Soome.It Va boot_debug
377*ba11c5b5SToomas SoomeWill set
378*ba11c5b5SToomas Soome.Xr kernel 1M
379*ba11c5b5SToomas Soome.Fl d
380*ba11c5b5SToomas Soomeoption.
381*ba11c5b5SToomas Soome.It Va boot_kmdb
382*ba11c5b5SToomas SoomeWill set
383*ba11c5b5SToomas Soome.Xr kernel 1M
384*ba11c5b5SToomas Soome.Fl k
385*ba11c5b5SToomas Soomeoption.
386*ba11c5b5SToomas Soome.It Va boot_reconfigure
387*ba11c5b5SToomas SoomeWill set
388*ba11c5b5SToomas Soome.Xr kernel 1M
389*ba11c5b5SToomas Soome.Fl r
390*ba11c5b5SToomas Soomeoption.
391*ba11c5b5SToomas Soome.It Va boot_single
392*ba11c5b5SToomas SoomeWill set
393*ba11c5b5SToomas Soome.Xr kernel 1M
394*ba11c5b5SToomas Soome.Fl s
395*ba11c5b5SToomas Soomeoption.
396*ba11c5b5SToomas Soome.It Va boot_verbose
397*ba11c5b5SToomas SoomeWill set
398*ba11c5b5SToomas Soome.Xr kernel 1M
399*ba11c5b5SToomas Soome.Fl v
400*ba11c5b5SToomas Soomeoption.
401*ba11c5b5SToomas Soome.It Va boot-args
402*ba11c5b5SToomas SoomeWill set custom arguments for the kernel. If set in
403*ba11c5b5SToomas Soome.Nm
404*ba11c5b5SToomas Soomeconfiguration, the
405*ba11c5b5SToomas Soome.Nm
406*ba11c5b5SToomas Soomestartup will parse the
407*ba11c5b5SToomas Soome.Va boot-args
408*ba11c5b5SToomas Soomevalue to set boot prefixed variables listed above, any unrecognized options
409*ba11c5b5SToomas Soomeare added to kernel command line verbatim.
410*ba11c5b5SToomas Soome.It Va bootfile
411*ba11c5b5SToomas SoomeThe name of the kernel.
412*ba11c5b5SToomas Soome.It Va console
413*ba11c5b5SToomas SoomeDefines the current console or consoles.
414*ba11c5b5SToomas SoomeMultiple consoles may be specified.
415*ba11c5b5SToomas SoomeIn that case, the first listed console will become the default console for
416*ba11c5b5SToomas Soomethe
417*ba11c5b5SToomas Soome.Xr kernel 1M .
418*ba11c5b5SToomas Soome.It Va currdev
419*ba11c5b5SToomas SoomeSelects the default device.
420*ba11c5b5SToomas SoomeSyntax for devices is odd.
421*ba11c5b5SToomas Soome.It Va interpret
422*ba11c5b5SToomas SoomeHas the value
423*ba11c5b5SToomas Soome.Dq Li ok
424*ba11c5b5SToomas Soomeif the Forth's current state is interpreting.
425*ba11c5b5SToomas Soome.It Va LINES
426*ba11c5b5SToomas SoomeDefine the number of lines on the screen, to be used by the pager.
427*ba11c5b5SToomas Soome.It Va module_path
428*ba11c5b5SToomas SoomeSets the list of directories which will be searched for modules
429*ba11c5b5SToomas Soomenamed in a load command or implicitly required by a dependency.
430*ba11c5b5SToomas SoomeThe default value for this variable is
431*ba11c5b5SToomas Soome.Dq Li /platform/i86pc/${ISADIR}
432*ba11c5b5SToomas Soome.It Va prompt
433*ba11c5b5SToomas SoomeValue of
434*ba11c5b5SToomas Soome.Nm Ns 's
435*ba11c5b5SToomas Soomeprompt.
436*ba11c5b5SToomas SoomeDefaults to
437*ba11c5b5SToomas Soome.Dq Li "${interpret}" .
438*ba11c5b5SToomas SoomeIf variable
439*ba11c5b5SToomas Soome.Va prompt
440*ba11c5b5SToomas Soomeis unset, the default prompt is
441*ba11c5b5SToomas Soome.Ql > .
442*ba11c5b5SToomas Soome.It Va os_console
443*ba11c5b5SToomas SoomeIf set, the value is used to set
444*ba11c5b5SToomas Soome.Xr kernel 1M
445*ba11c5b5SToomas Soome.Va console
446*ba11c5b5SToomas Soomeproperty.
447*ba11c5b5SToomas Soome.El
448*ba11c5b5SToomas Soome.Pp
449*ba11c5b5SToomas SoomeOther variables are used for loader or to set kernel properties or for
450*ba11c5b5SToomas Soomeinformational purposes.
451*ba11c5b5SToomas Soome.Ss Builtin Parser
452*ba11c5b5SToomas SoomeWhen a builtin command is executed, the rest of the line is taken
453*ba11c5b5SToomas Soomeby it as arguments, and it is processed by a special parser which
454*ba11c5b5SToomas Soomeis not used for regular Forth commands.
455*ba11c5b5SToomas Soome.Pp
456*ba11c5b5SToomas SoomeThis special parser applies the following rules to the parsed text:
457*ba11c5b5SToomas Soome.Bl -enum
458*ba11c5b5SToomas Soome.It
459*ba11c5b5SToomas SoomeAll backslash characters are preprocessed.
460*ba11c5b5SToomas Soome.Bl -bullet
461*ba11c5b5SToomas Soome.It
462*ba11c5b5SToomas Soome\eb , \ef , \er , \en and \et are processed as in C.
463*ba11c5b5SToomas Soome.It
464*ba11c5b5SToomas Soome\es is converted to a space.
465*ba11c5b5SToomas Soome.It
466*ba11c5b5SToomas Soome\ev is converted to
467*ba11c5b5SToomas Soome.Tn ASCII
468*ba11c5b5SToomas Soome11.
469*ba11c5b5SToomas Soome.It
470*ba11c5b5SToomas Soome\ez is just skipped.
471*ba11c5b5SToomas SoomeUseful for things like
472*ba11c5b5SToomas Soome.Dq \e0xf\ez\e0xf .
473*ba11c5b5SToomas Soome.It
474*ba11c5b5SToomas Soome\e0xN and \e0xNN are replaced by the hex N or NN.
475*ba11c5b5SToomas Soome.It
476*ba11c5b5SToomas Soome\eNNN is replaced by the octal NNN
477*ba11c5b5SToomas Soome.Tn ASCII
478*ba11c5b5SToomas Soomecharacter.
479*ba11c5b5SToomas Soome.It
480*ba11c5b5SToomas Soome\e" , \e' and \e$ will escape these characters, preventing them from
481*ba11c5b5SToomas Soomereceiving special treatment in Step 2, described below.
482*ba11c5b5SToomas Soome.It
483*ba11c5b5SToomas Soome\e\e will be replaced with a single \e .
484*ba11c5b5SToomas Soome.It
485*ba11c5b5SToomas SoomeIn any other occurrence, backslash will just be removed.
486*ba11c5b5SToomas Soome.El
487*ba11c5b5SToomas Soome.It
488*ba11c5b5SToomas SoomeEvery string between non-escaped quotes or double-quotes will be treated
489*ba11c5b5SToomas Soomeas a single word for the purposes of the remaining steps.
490*ba11c5b5SToomas Soome.It
491*ba11c5b5SToomas SoomeReplace any
492*ba11c5b5SToomas Soome.Li $VARIABLE
493*ba11c5b5SToomas Soomeor
494*ba11c5b5SToomas Soome.Li ${VARIABLE}
495*ba11c5b5SToomas Soomewith the value of the environment variable
496*ba11c5b5SToomas Soome.Va VARIABLE .
497*ba11c5b5SToomas Soome.It
498*ba11c5b5SToomas SoomeSpace-delimited arguments are passed to the called builtin command.
499*ba11c5b5SToomas SoomeSpaces can also be escaped through the use of \e\e .
500*ba11c5b5SToomas Soome.El
501*ba11c5b5SToomas Soome.Pp
502*ba11c5b5SToomas SoomeAn exception to this parsing rule exists, and is described in
503*ba11c5b5SToomas Soome.Sx Builtins And FORTH .
504*ba11c5b5SToomas Soome.Ss Builtins And FORTH
505*ba11c5b5SToomas SoomeAll builtin words are state-smart, immediate words.
506*ba11c5b5SToomas SoomeIf interpreted, they behave exactly as described previously.
507*ba11c5b5SToomas SoomeIf they are compiled, though,
508*ba11c5b5SToomas Soomethey extract their arguments from the stack instead of the command line.
509*ba11c5b5SToomas Soome.Pp
510*ba11c5b5SToomas SoomeIf compiled, the builtin words expect to find, at execution time, the
511*ba11c5b5SToomas Soomefollowing parameters on the stack:
512*ba11c5b5SToomas Soome.D1 Ar addrN lenN ... addr2 len2 addr1 len1 N
513*ba11c5b5SToomas Soomewhere
514*ba11c5b5SToomas Soome.Ar addrX lenX
515*ba11c5b5SToomas Soomeare strings which will compose the command line that will be parsed
516*ba11c5b5SToomas Soomeinto the builtin's arguments.
517*ba11c5b5SToomas SoomeInternally, these strings are concatenated in from 1 to N,
518*ba11c5b5SToomas Soomewith a space put between each one.
519*ba11c5b5SToomas Soome.Pp
520*ba11c5b5SToomas SoomeIf no arguments are passed, a 0
521*ba11c5b5SToomas Soome.Em must
522*ba11c5b5SToomas Soomebe passed, even if the builtin accepts no arguments.
523*ba11c5b5SToomas Soome.Pp
524*ba11c5b5SToomas SoomeWhile this behavior has benefits, it has its trade-offs.
525*ba11c5b5SToomas SoomeIf the execution token of a builtin is acquired (through
526*ba11c5b5SToomas Soome.Ic '
527*ba11c5b5SToomas Soomeor
528*ba11c5b5SToomas Soome.Ic ['] ) ,
529*ba11c5b5SToomas Soomeand then passed to
530*ba11c5b5SToomas Soome.Ic catch
531*ba11c5b5SToomas Soomeor
532*ba11c5b5SToomas Soome.Ic execute ,
533*ba11c5b5SToomas Soomethe builtin behavior will depend on the system state
534*ba11c5b5SToomas Soome.Bf Em
535*ba11c5b5SToomas Soomeat the time
536*ba11c5b5SToomas Soome.Ic catch
537*ba11c5b5SToomas Soomeor
538*ba11c5b5SToomas Soome.Ic execute
539*ba11c5b5SToomas Soomeis processed!
540*ba11c5b5SToomas Soome.Ef
541*ba11c5b5SToomas SoomeThis is particularly annoying for programs that want or need to
542*ba11c5b5SToomas Soomehandle exceptions.
543*ba11c5b5SToomas SoomeIn this case, the use of a proxy is recommended.
544*ba11c5b5SToomas SoomeFor example:
545*ba11c5b5SToomas Soome.Dl : (boot) boot ;
546*ba11c5b5SToomas Soome.Ss FICL
547*ba11c5b5SToomas Soome.Tn FICL
548*ba11c5b5SToomas Soomeis a Forth interpreter written in C, in the form of a forth
549*ba11c5b5SToomas Soomevirtual machine library that can be called by C functions and vice
550*ba11c5b5SToomas Soomeversa.
551*ba11c5b5SToomas Soome.Pp
552*ba11c5b5SToomas SoomeIn
553*ba11c5b5SToomas Soome.Nm ,
554*ba11c5b5SToomas Soomeeach line read interactively is then fed to
555*ba11c5b5SToomas Soome.Tn FICL ,
556*ba11c5b5SToomas Soomewhich may call
557*ba11c5b5SToomas Soome.Nm
558*ba11c5b5SToomas Soomeback to execute the builtin words.
559*ba11c5b5SToomas SoomeThe builtin
560*ba11c5b5SToomas Soome.Ic include
561*ba11c5b5SToomas Soomewill also feed
562*ba11c5b5SToomas Soome.Tn FICL ,
563*ba11c5b5SToomas Soomeone line at a time.
564*ba11c5b5SToomas Soome.Pp
565*ba11c5b5SToomas SoomeThe words available to
566*ba11c5b5SToomas Soome.Tn FICL
567*ba11c5b5SToomas Soomecan be classified into four groups.
568*ba11c5b5SToomas SoomeThe
569*ba11c5b5SToomas Soome.Tn ANS
570*ba11c5b5SToomas SoomeForth standard words, extra
571*ba11c5b5SToomas Soome.Tn FICL
572*ba11c5b5SToomas Soomewords, extra
573*ba11c5b5SToomas Soome.Fx
574*ba11c5b5SToomas Soomewords, and the builtin commands;
575*ba11c5b5SToomas Soomethe latter were already described.
576*ba11c5b5SToomas SoomeThe
577*ba11c5b5SToomas Soome.Tn ANS
578*ba11c5b5SToomas SoomeForth standard words are listed in the
579*ba11c5b5SToomas Soome.Sx STANDARDS
580*ba11c5b5SToomas Soomesection.
581*ba11c5b5SToomas SoomeThe words falling in the two other groups are described in the
582*ba11c5b5SToomas Soomefollowing subsections.
583*ba11c5b5SToomas Soome.Ss FICL Extra Words
584*ba11c5b5SToomas Soome.Bl -tag -width wid-set-super
585*ba11c5b5SToomas Soome.It Ic .env
586*ba11c5b5SToomas Soome.It Ic .ver
587*ba11c5b5SToomas Soome.It Ic -roll
588*ba11c5b5SToomas Soome.It Ic 2constant
589*ba11c5b5SToomas Soome.It Ic >name
590*ba11c5b5SToomas Soome.It Ic body>
591*ba11c5b5SToomas Soome.It Ic compare
592*ba11c5b5SToomas SoomeThis is the STRING word set's
593*ba11c5b5SToomas Soome.Ic compare .
594*ba11c5b5SToomas Soome.It Ic compile-only
595*ba11c5b5SToomas Soome.It Ic endif
596*ba11c5b5SToomas Soome.It Ic forget-wid
597*ba11c5b5SToomas Soome.It Ic parse-word
598*ba11c5b5SToomas Soome.It Ic sliteral
599*ba11c5b5SToomas SoomeThis is the STRING word set's
600*ba11c5b5SToomas Soome.Ic sliteral .
601*ba11c5b5SToomas Soome.It Ic wid-set-super
602*ba11c5b5SToomas Soome.It Ic w@
603*ba11c5b5SToomas Soome.It Ic w!
604*ba11c5b5SToomas Soome.It Ic x.
605*ba11c5b5SToomas Soome.It Ic empty
606*ba11c5b5SToomas Soome.It Ic cell-
607*ba11c5b5SToomas Soome.It Ic -rot
608*ba11c5b5SToomas Soome.El
609*ba11c5b5SToomas Soome.Ss Loader Extra Words
610*ba11c5b5SToomas Soome.Bl -tag -width XXXXXXXX
611*ba11c5b5SToomas Soome.It Ic \&$ Pq --
612*ba11c5b5SToomas SoomeEvaluates the remainder of the input buffer, after having printed it first.
613*ba11c5b5SToomas Soome.It Ic \&% Pq --
614*ba11c5b5SToomas SoomeEvaluates the remainder of the input buffer under a
615*ba11c5b5SToomas Soome.Ic catch
616*ba11c5b5SToomas Soomeexception guard.
617*ba11c5b5SToomas Soome.It Ic .#
618*ba11c5b5SToomas SoomeWorks like
619*ba11c5b5SToomas Soome.Ic "."
620*ba11c5b5SToomas Soomebut without outputting a trailing space.
621*ba11c5b5SToomas Soome.It Ic fclose Pq Ar fd --
622*ba11c5b5SToomas SoomeCloses a file.
623*ba11c5b5SToomas Soome.It Ic fkey Pq Ar fd -- char
624*ba11c5b5SToomas SoomeReads a single character from a file.
625*ba11c5b5SToomas Soome.It Ic fload Pq Ar fd --
626*ba11c5b5SToomas SoomeProcesses a file
627*ba11c5b5SToomas Soome.Em fd .
628*ba11c5b5SToomas Soome.It Ic fopen Pq Ar addr len mode Li -- Ar fd
629*ba11c5b5SToomas SoomeOpens a file.
630*ba11c5b5SToomas SoomeReturns a file descriptor, or \-1 in case of failure.
631*ba11c5b5SToomas SoomeThe
632*ba11c5b5SToomas Soome.Ar mode
633*ba11c5b5SToomas Soomeparameter selects whether the file is to be opened for read access, write
634*ba11c5b5SToomas Soomeaccess, or both.
635*ba11c5b5SToomas SoomeThe constants
636*ba11c5b5SToomas Soome.Dv O_RDONLY , O_WRONLY ,
637*ba11c5b5SToomas Soomeand
638*ba11c5b5SToomas Soome.Dv O_RDWR
639*ba11c5b5SToomas Soomeare defined in
640*ba11c5b5SToomas Soome.Pa /boot/forth/support.4th ,
641*ba11c5b5SToomas Soomeindicating read only, write only, and read-write access, respectively.
642*ba11c5b5SToomas Soome.It Xo
643*ba11c5b5SToomas Soome.Ic fread
644*ba11c5b5SToomas Soome.Pq Ar fd addr len -- len'
645*ba11c5b5SToomas Soome.Xc
646*ba11c5b5SToomas SoomeTries to read
647*ba11c5b5SToomas Soome.Em len
648*ba11c5b5SToomas Soomebytes from file
649*ba11c5b5SToomas Soome.Em fd
650*ba11c5b5SToomas Soomeinto buffer
651*ba11c5b5SToomas Soome.Em addr .
652*ba11c5b5SToomas SoomeReturns the actual number of bytes read, or -1 in case of error or end of
653*ba11c5b5SToomas Soomefile.
654*ba11c5b5SToomas Soome.It Ic heap? Pq -- Ar cells
655*ba11c5b5SToomas SoomeReturn the space remaining in the dictionary heap, in cells.
656*ba11c5b5SToomas SoomeThis is not related to the heap used by dynamic memory allocation words.
657*ba11c5b5SToomas Soome.It Ic inb Pq Ar port -- char
658*ba11c5b5SToomas SoomeReads a byte from a port.
659*ba11c5b5SToomas Soome.It Ic key Pq -- Ar char
660*ba11c5b5SToomas SoomeReads a single character from the console.
661*ba11c5b5SToomas Soome.It Ic key? Pq -- Ar flag
662*ba11c5b5SToomas SoomeReturns
663*ba11c5b5SToomas Soome.Ic true
664*ba11c5b5SToomas Soomeif there is a character available to be read from the console.
665*ba11c5b5SToomas Soome.It Ic ms Pq Ar u --
666*ba11c5b5SToomas SoomeWaits
667*ba11c5b5SToomas Soome.Em u
668*ba11c5b5SToomas Soomemicroseconds.
669*ba11c5b5SToomas Soome.It Ic outb Pq Ar port char --
670*ba11c5b5SToomas SoomeWrites a byte to a port.
671*ba11c5b5SToomas Soome.It Ic seconds Pq -- Ar u
672*ba11c5b5SToomas SoomeReturns the number of seconds since midnight.
673*ba11c5b5SToomas Soome.It Ic tib> Pq -- Ar addr len
674*ba11c5b5SToomas SoomeReturns the remainder of the input buffer as a string on the stack.
675*ba11c5b5SToomas Soome.El
676*ba11c5b5SToomas Soome.Ss Loader Defined Environmental Queries
677*ba11c5b5SToomas Soome.Bl -tag -width Ds
678*ba11c5b5SToomas Soome.It arch-i386
679*ba11c5b5SToomas Soome.Ic TRUE
680*ba11c5b5SToomas Soomeif the architecture is IA32.
681*ba11c5b5SToomas Soome.It loader_version
682*ba11c5b5SToomas Soome.Nm
683*ba11c5b5SToomas Soomeversion.
684*ba11c5b5SToomas Soome.El
685*ba11c5b5SToomas Soome.Ss Errors
686*ba11c5b5SToomas SoomeThe following values are thrown by
687*ba11c5b5SToomas Soome.Nm :
688*ba11c5b5SToomas Soome.Bl -tag -width XXXXX -offset indent
689*ba11c5b5SToomas Soome.It 100
690*ba11c5b5SToomas SoomeAny type of error in the processing of a builtin.
691*ba11c5b5SToomas Soome.It -1
692*ba11c5b5SToomas Soome.Ic Abort
693*ba11c5b5SToomas Soomeexecuted.
694*ba11c5b5SToomas Soome.It -2
695*ba11c5b5SToomas Soome.Ic Abort"
696*ba11c5b5SToomas Soomeexecuted.
697*ba11c5b5SToomas Soome.It -56
698*ba11c5b5SToomas Soome.Ic Quit
699*ba11c5b5SToomas Soomeexecuted.
700*ba11c5b5SToomas Soome.It -256
701*ba11c5b5SToomas SoomeOut of interpreting text.
702*ba11c5b5SToomas Soome.It -257
703*ba11c5b5SToomas SoomeNeed more text to succeed -- will finish on next run.
704*ba11c5b5SToomas Soome.It -258
705*ba11c5b5SToomas Soome.Ic Bye
706*ba11c5b5SToomas Soomeexecuted.
707*ba11c5b5SToomas Soome.It -259
708*ba11c5b5SToomas SoomeUnspecified error.
709*ba11c5b5SToomas Soome.El
710*ba11c5b5SToomas Soome.Sh FILES
711*ba11c5b5SToomas Soome.Bl -tag -width /boot/defaults/loader.conf -compact
712*ba11c5b5SToomas Soome.It Pa /boot/defaults/loader.conf
713*ba11c5b5SToomas Soome.It Pa /boot/conf.d/*
714*ba11c5b5SToomas Soome.It Pa /boot/loader.conf
715*ba11c5b5SToomas Soome.It Pa /boot/loader.conf.local
716*ba11c5b5SToomas Soome.Nm
717*ba11c5b5SToomas Soomeconfiguration files, as described in
718*ba11c5b5SToomas Soome.Xr loader.conf 5 .
719*ba11c5b5SToomas Soome.It Pa /boot/loader.help
720*ba11c5b5SToomas SoomeLoaded by
721*ba11c5b5SToomas Soome.Ic help .
722*ba11c5b5SToomas SoomeContains the help messages.
723*ba11c5b5SToomas Soome.It Pa /boot/loader.rc
724*ba11c5b5SToomas Soome.Nm
725*ba11c5b5SToomas Soomebootstrapping script.
726*ba11c5b5SToomas Soome.It Pa /boot/forth/loader.4th
727*ba11c5b5SToomas SoomeExtra builtin-like words.
728*ba11c5b5SToomas Soome.It Pa /boot/forth/support.4th
729*ba11c5b5SToomas Soome.Pa loader.conf
730*ba11c5b5SToomas Soomeprocessing words.
731*ba11c5b5SToomas Soome.It Pa /boot/zfsloader
732*ba11c5b5SToomas Soome.Nm
733*ba11c5b5SToomas Soomeitself.
734*ba11c5b5SToomas Soome.El
735*ba11c5b5SToomas Soome.Sh EXAMPLES
736*ba11c5b5SToomas SoomeBoot in single user mode:
737*ba11c5b5SToomas Soome.Pp
738*ba11c5b5SToomas Soome.Dl boot -s
739*ba11c5b5SToomas Soome.Pp
740*ba11c5b5SToomas SoomeLoad the kernel, a boot_archive, and then autoboot in five seconds.
741*ba11c5b5SToomas SoomeNotice that a kernel must be loaded before any other
742*ba11c5b5SToomas Soome.Ic load
743*ba11c5b5SToomas Soomecommand is attempted.
744*ba11c5b5SToomas Soome.Bd -literal -offset indent
745*ba11c5b5SToomas Soomeload /platform/i86pc/kernel/amd64/unix
746*ba11c5b5SToomas Soomeload -t rootfs /platform/i86pc/amd64/boot_archive
747*ba11c5b5SToomas Soomeautoboot 5
748*ba11c5b5SToomas Soome.Ed
749*ba11c5b5SToomas Soome.Sh SEE ALSO
750*ba11c5b5SToomas Soome.Xr boot 1M ,
751*ba11c5b5SToomas Soome.Xr btxld 1onbld ,
752*ba11c5b5SToomas Soome.Xr loader.conf 5
753*ba11c5b5SToomas Soome.Sh STANDARDS
754*ba11c5b5SToomas SoomeFor the purposes of ANS Forth compliance, loader is an
755*ba11c5b5SToomas Soome.Bf Em
756*ba11c5b5SToomas SoomeANS Forth System with Environmental Restrictions, Providing
757*ba11c5b5SToomas Soome.Ef
758*ba11c5b5SToomas Soome.Bf Li
759*ba11c5b5SToomas Soome.No .( ,
760*ba11c5b5SToomas Soome.No :noname ,
761*ba11c5b5SToomas Soome.No ?do ,
762*ba11c5b5SToomas Soomeparse, pick, roll, refill, to, value, \e, false, true,
763*ba11c5b5SToomas Soome.No <> ,
764*ba11c5b5SToomas Soome.No 0<> ,
765*ba11c5b5SToomas Soomecompile\&, , erase, nip, tuck
766*ba11c5b5SToomas Soome.Ef
767*ba11c5b5SToomas Soome.Em and
768*ba11c5b5SToomas Soome.Li marker
769*ba11c5b5SToomas Soome.Bf Em
770*ba11c5b5SToomas Soomefrom the Core Extensions word set, Providing the Exception Extensions
771*ba11c5b5SToomas Soomeword set, Providing the Locals Extensions word set, Providing the
772*ba11c5b5SToomas SoomeMemory-Allocation Extensions word set, Providing
773*ba11c5b5SToomas Soome.Ef
774*ba11c5b5SToomas Soome.Bf Li
775*ba11c5b5SToomas Soome\&.s,
776*ba11c5b5SToomas Soomebye, forget, see, words,
777*ba11c5b5SToomas Soome\&[if],
778*ba11c5b5SToomas Soome\&[else]
779*ba11c5b5SToomas Soome.Ef
780*ba11c5b5SToomas Soome.Em and
781*ba11c5b5SToomas Soome.Li [then]
782*ba11c5b5SToomas Soome.Bf Em
783*ba11c5b5SToomas Soomefrom the Programming-Tools extension word set, Providing the
784*ba11c5b5SToomas SoomeSearch-Order extensions word set.
785*ba11c5b5SToomas Soome.Ef
786