LOADER(8)

명칭
loader - 커널 부트 스트랩의 최종 단계

해설
loader (으)로 불리는 프로그램은, FreeBSD 의 커널 부트 스트랩에 있어서의, 최종단입니다. IA32 (i386) 아키텍쳐에서는, 이것은 BTX 클라이언트입니다. libstand(3) 에 정적으로 링크 되어 통상은 디렉토리 /boot 에 놓여집니다.

또, 작업 자동화, 사전 설정, 회복 처리의 보조에 사용 가능한, 스크립트 언어를 제공합니다. 이 스크립트 언어는 대략적으로 2 개(살)의 주된 부분으로 분류됩니다. 작은 (분)편은, 통상의 유저가 직접 사용하도록(듯이) 디자인된 명령의 집합으로, 역사적인 사정에 의해 「편입 명령」라고 불립니다. 이러한 명령을 제공한 배경에는, 주로 유저의 쓰기를 개선하는 목적이 있습니다. 큰 부품은 ANS Forth 호환의 Forth 인터프리터이며, John Sadler 의 ficl 를 베이스로 하고 있습니다.

초기화에 대해, loader (은)는 콘솔을 검출해 console 변수를 설정합니다. 직전의 부트 스테이지에 시리얼 콘솔을 사용했을 경우에는, 이 변수를 시리얼 콘솔 (“comconsole”) (으)로 설정합니다. 그 후, 디바이스를 프로브 해, currdev (와)과 loaddev (을)를 설정해, LINES (을)를 24 로 설정합니다. 다음에 FICL 하지만 초기화되어 편입어가 어휘에 추가되어 존재하는 경우에는 /boot/boot. 4th 하지만 처리됩니다. 이 파일이 읽힐 때까지, 디스크의 교환은 할 수 없습니다. loader 하지만 FICL (와)과 함께 사용하는 내부 인터프리터는 interpret (으)로 설정됩니다. 이것은 FICL 의 디폴트입니다. 이 후, 사용 가능한 경우 /boot/loader.rc 하지만 처리되어 그렇지 않은 경우에는 역사적인 이유로 /boot/boot.conf 하지만 읽힙니다. 이러한 파일은 include 명령을 개입시켜 처리됩니다. 이 명령은, 처리전에 파일 내용 모든 것을 메모리에 읽어들이기 때문에, 디스크 교환이 가능해집니다.

이 시점에서, autoboot 하지만 시험 받지 않은 경우로 한편 autoboot_delay 하지만 “NO” (대문자 소문자는 구별하지 않습니다)(으)로 설정되어 있지 않은 경우, autoboot 하지만 시험 받습니다. 시스템이 이 시점까지 도달했을 경우, prompt 하지만 설정되어 loader (은)는 대화 모드가 됩니다.

편입 명령
loader 의 편입 명령은, 파라미터를 커멘드 라인으로부터 받습니다. 현재, 스크립트로부터의 호출 방법은, 캐릭터 라인상에서 evaluate (을)를 사용하는 것 뿐입니다. 에러 상태가 발생하면(자), ANS Forth 예외 조작어로 인타세프트 가능한 예외가 생성됩니다. 인타세프트 되지 않는 경우, 에러 메세지가 표시되어 인터프리터 상태가 리셋트 됩니다. 이것에 의해, 스택이 비워 인터프리터의 모드가 원래대로 돌아갑니다.

사용 가능한 편입 명령은 다음과 같습니다:

acpi_load
    ACPI 모듈의 자동 로드를 무효로 하려면 , 이것을 안 세트 합니다. device.hints(5) 의 hint.acpi. 0.disabled 도 참조해 주세요.
autoboot [seconds]
    유저가 끼어들지 않는 경우에는, 지정한 초수의 뒤에 시스템의 bootstrap에 진행됩니다. 키가 밀려 끼어들어질 때까지, 카운트다운 prompt를 표시해, 유저에 대해서 시스템이 부트 하는 (곳)중에 있는 것을 경고합니다. 필요하면, 최초로 커널이 로드 됩니다. 디폴트는 10 초입니다.

bcachestat
    디스크 캐쉬 프로그램의 사용 상황을 표시합니다. 디버그 (을) 위해서만 있습니다.

boot
boot kernelname [...]
boot -flag ...
    시스템의 bootstrap에 곧바로 진행되어, 필요하면 커널을 로드합니다. 모든 플래그 또는 인수는 커널에게 건네집니다만, 커널명이 지정되었을 경우, 이것들은 커넬명의 뒤에 있을 필요가 있습니다.

    경고: 이 편입 명령의 동작은, loader.(4th) 8 하지만 로드 되면(자), 변합니다

echo
    [-n] [<message>] 화면에 텍스트를 표시합니다. -n (을)를 지정하지 않는 경우, 개행이 표시됩니다.

heap
    메모리 사용 상황이 표시됩니다. 디버그 목적 (을) 위해서만 있습니다.

help [topic [subtopic]]
    헬프 메세지를 /boot/loader.help (으)로부터 읽어들여 표시합니다. 특수 토픽 index (은)는, 사용 가능한 토픽을 표시합니다.

include file [file ...]
    스크립트 파일을 처리합니다. 각 파일은, 차례가 돌아 왔더니 완전하게 메모리에 읽혀 각 행이 명령행 인터프리터에게 건네집니다. 인터프리터가 에러를 돌려주면(자), 다른 파일은 읽어들이지 않고 include 명령은 즉시에 이상종료(ABEND) 해, 자신에게 에러를 돌려줍니다 ( 에러 참조).

load
    [-t type] file ... 커널, 커넬 loadable module (kld), 내용을 불문하고 type (와)과 태그 붙이고 되고 있는 파일의 어느쪽이든을 로드합니다. 커널과 모듈은, a.out 또는 elf 의 어느 쪽의 형식이어도 괜찮습니다. 로드 되는 파일의 다음에 건네받는 인수는, 그 파일에 대한 인수로서 건네받습니다. 현재로서는, 이것은 커널에 대해서는 동작하지 않는 것에 주의해 주세요.

ls  [-l] [path] 디렉토리 path , 또는 path (을)를 지정하지 않았던 경우에는 루트 디렉토리의 파일 일람을 표시합니다. -l (을)를 지정하면(자), 파일의 크기도 표시합니다.

lsdev [-v]
    모듈의 로드원이 될 수 있는 디바이스를 모두 표시합니다. -v (을)를 지정하면(자), 한층 더 상세를 표시합니다.

lsmod [-v]
    로드제의 모듈을 표시합니다. -v (을)를 지정하면(자), 한층 더 상세를 표시합니다.

more file [file ...]
    LINES 행을 표시할 때 마다 정지하면서, 지정한 파일을 표시합니다.

pnpscan [-v]
    플러그 앤 플레이 디바이스를 스캔 합니다. 현재로서는 동작하지 않습니다.

read
    [-t seconds] [-p prompt] [variable] 입력행을 단말로부터 읽어들여, variable 하지만 지정되었을 경우에는 이것에 읽어들여 결과를 격납합니다. 타임 아웃은 -t 그리고 지정 가능합니다만, 이것은 최초로 밀리는 키에 의해 지워집니다. prompt도 또 -p 플래그에 의해 표시 가능합니다.

reboot
    즉시에 시스템을 리부트합니다.

set variable
set variable=value
    로더의 환경 변수를 설정합니다.

show [variable]
    지정한 변수의 값을 표시합니다. variable (을)를 지정하지 않으면 모든 변수와 그 값을 표시합니다.

unload
    전모듈을 메모리로부터 없앱니다.

unset variable
    variable (을)를 환경으로부터 없앱니다.

?   “help index” (와)과 같습니다.

  편입의 환경 변수
loader (은)는 실제의 곳, 다른 2 종류의 ‘환경’ 변수를 가집니다. 그것은, ANS Forth 의 환경 문의 라고 다른 공간이며 편입 명령이 사용하는 환경 변수입니다. 후자는 Forth 의 말로서는 직접 사용할 수 없습니다. 이 마디로 설명하는 것은, 후자입니다.

환경 변수의 설정 및 설정 해제는, set (와)과 unset 의 편입 명령을 개입시켜 실시합니다. 이러한 값은, show 편입 명령을 사용해 대화적으로 검사할 수 있습니다. 이러한 값은, 편입 파서 그리고 설명하는 방법에서도 또 액세스 가능합니다.

이 환경 변수는, 시스템 부트 후에 쉘에 계승되지 않는 것에 주의해 주세요.

몇 개의 변수가 loader 에 의해 자동적으로 설정됩니다. 다른 변수는, loader 또는 부트시의 커널 동작에 영향을 줄 수 있습니다. 이러한 집치를 요구하는 것이 있는 한편, 설정되는 것만으로 동작을 정의하는 것도 있습니다. 이것들을 이하에 나타냅니다.

autoboot_delay
    autoboot 하지만 부트전에 기다리는 초수입니다. 이 변수가 정의되어 있지 않은 경우, autoboot (은)는 디폴트의 10 초가 됩니다.

    “NO” (으)로 설정하면(자), /boot/loader.rc 의 처리의 뒤에 autoboot (을)를 자동적으로는 시도하지 않게 됩니다. 그러나, 명시적으로 autoboot (을)를 지정하면(자), 디폴트의 10 초의 지연의 뒤에 통상 대로 처리됩니다.

boot_askname
    커널 부트시에 루트 디바이스명을 유저에게 묻도록(듯이), 커널에 지시합니다.

boot_ddb
    부트시에 초기화하러 진행되는 것이 아니라 DDB 디버거를 개시하도록(듯이), 커널에 지시합니다.

boot_gdb
    gdb 리모트 모드를, 커널 디버거의 디폴트로서 선택합니다.

boot_single
    커널이 multiuser 스타트 업을 개시하는 것을 막아, 커널이 디바이스 프로브를 완료했을 때에는 싱글 유저 모드가 됩니다.

boot_userconfig
    커널 부트시에 커널의 대화적인 디바이스 설정 프로그램을 실행하도록(듯이) 요구합니다.

boot_verbose
    이 변수를 설정하면(자), 부트 국면중에 추가의 디버그 정보를 커널이 표시합니다.

bootfile
    세미콜론으로 단락지은 검색 패스의 리스트이며, 여기로부터 부트 가능한 커널을 찾습니다. 디폴트는 ““kernel;kernel.old”” 입니다.

console
    현재의 콘솔을 정의합니다.

currdev
    디폴트 디바이스를 선택합니다. 디바이스의 문법은 기묘한 것입니다.

init_path
    커널이 초기 프로세스로서 실행하려고 해야 할 바이너리의 리스트를 지정합니다. 디폴트는 “/sbin/init:/sbin/oinit:/sbin/init.bak:/stand/sysinstall” 입니다.

interpret
    Forth 의 현재 상태가 인터프리터의 경우, “ok” 그렇다고 하는 값을 가집니다.

LINES
    화면상의 행수를 정의합니다. 페이쟈가 사용합니다.

module_path
    모듈을 검색하는 디렉토리의 리스트를 설정합니다. 모듈명은, load 명령 또는 의존관계(dependencies)에 의해 암묵적으로 지정됩니다. 이 변수의 기본값은 “/;/boot;/modules” 입니다.

num_ide_disks
    IDE 디스크의 수를 설정합니다. 이것은, 부트시에 루트 디스크를 찾아내는 것에 관한 문제에의 대처입니다. root_disk_unit 에 의해 가치가 저하하고 있습니다.

prompt
    loader 의 prompt의 값입니다. 디폴트는 “${currdev}>” 입니다.

root_disk_unit
    루트 디스크의 디스크 유니트 번호를 검출하는 코드가 혼란하는 경우, 이 변수를 설정하는 것으로 유니트 번호를 강제 가능합니다. 혼란하는 것은, 예를 들면 SCSI 와 IDE 의 디스크를 양쪽 모두 가지는 경우나, IDE 디스크의 및 틈새가 있는 경우 (프라이머리 슬레이브가 없는 경우 등)입니다.

rootdev
    디폴트에서는, 커널 부트시에 루트 파일 시스템의 설정에는 currdev 하지만 사용됩니다. 이것은 rootdev (을)를 명시적으로 설정하는 것으로써 오바라이드 가능합니다.

dumpdev
    패닉시에 커널이 크래쉬 덤프를 보존 가능한 디바이스의 이름입니다. 이것은, 자동적으로 kern.dumpdev sysctl(3) MIB 변수를 설정합니다.

다른 변수를 사용하는 것으로써, 커널의 조정 가능한 파라미터를 오바라이드 가능합니다. 다음의 조정 가능한 변수가 사용 가능합니다:

hw.physmem
    시스템이 사용하는 물리 메모리량을 제한합니다. 디폴트에서는 크기는 바이트로 지정합니다만, k, K, m, M, g, G 의 사픽스를 사용해, 각각 킬로바이트, 메가바이트, 기가바이트로 지정 가능합니다. 무효인 사픽스를 사용하면(자), 커널은 이 변수를 무시해 버립니다.

kern.maxusers
    많은 정적으로 할당할 수 있는 시스템 테이블의 크기를 설정합니다. 이 츄나불에 대해서 적절한 값을 어떻게 선택할까에 대해서는, tuning(7) (을)를 참조해 주세요. 이 츄나불이 설정되어 있는 경우, 커널이 컴파일 되었을 때의 설정 파일로 선언된 값은, 옮겨놓을 수 있습니다.

kern.ipc.nmbclusters
    할당할 수 있는 mbuf 클러스터수를 설정합니다. 커널 컴파일시로 결정된 기본값보다 작지는, 설정할 수 없습니다. NMBCLUSTERS (을)를 변경합니다.

kern.vm.kmem.size
    카네르메모리의 크기 (바이트)를 설정합니다. 커널 컴파일시로 결정된 값에, 완전하게 우선합니다. VM_KMEM_SIZE (을)를 변경합니다.

kern.maxswzone
    스왑메타 정보를 보관 유지하기 위한 KVM 량을 제한합니다. 이것은, 시스템이 서포트 가능한 스왑량에 직접 영향을 줍니다. 이 값은, KVA 공간의 바이트수로 지정되어 디폴트는 약 70MB 입니다. 이 값을 너무 줄여, 실제로 구성되는 스왑이 커널이 서포트하는 스왑의 것 1/2 을 넘어 버리지 않도록, 주의해 주세요. 디폴트의 70MB 는, 커널이 최대 ( 약) 14 GB 의 스왑을 구성 가능으로 합니다. 버퍼 캐쉬나 NMBCLUSTERS 그렇다고 했다 다른 자원용의 KVM 예약을 큰폭으로 늘리는 경우만, 본파라미터를 조정해 보세요. VM_SWZONE_SIZE_MAX (을)를 변경합니다.

kern.maxbcache
    버퍼 캐쉬용으로 예약되는 KVM 의 양을 제한합니다. 바이트수로 지정합니다. 디폴트의 최대치는 200 MB 입니다. 이 파라미터는, 대규모 구성에 대해, 버퍼 캐쉬가 많은 KVM 를 소비해 버리는 것을 피하기 위해서(때문에) 사용합니다. 스왑 존이나 NMBCLUSTERS 그렇다고 했다 다른 자원용의 KVM 예약을 큰폭으로 늘리는 경우만, 본파라미터를 조정해 보세요. NBUF 파라미터가 이 제한으로 우선하는 것에 주의해 주세요. VM_BCACHE_SIZE_MAX (을)를 변경합니다.

machdep.pccard.pcic_irq
    통상시에 PCCARD 콘트롤러에 할당할 수 있는 IRQ 를 오바라이드 합니다. 전형적으로는, 최초로 이용 가능한 세치기를 할당할 수 있어 버려, 다른 하드웨어와 충돌해 버릴지도 모릅니다. 이 값을 0 으로 설정하면(자), 세치기는 할당할 수 있는 두, 콘트롤러는 폴링 모드만으로 동작합니다.

net.inet.tcp.tcbhashsize
    TCBHASHSIZE 의 컴파일시의 설정치를 오바라이드 하는지, 디폴트의 512 에 pre-set 합니다. 2 말하고 나무승일 필요가 있습니다.

  편입 파서
편입 명령이 실행될 때, 행의 나머지는 명령이 인수로서 받아, 통상의 Forth 명령에는 사용되지 않는 특별한 파서가 커멘드를 처리합니다.

이 특별한 파서는, 해석한 텍스트에 대해서 다음의 룰을 적용합니다:

1.  모든 backslash 캐릭터는 사전 처리 됩니다.

    •   \b , \f , \r , \n, \t 는 C 그리고 다루어지도록(듯이) 처리됩니다.

    •   \s 는 공백 캐릭터에 변환됩니다.

    •   \v 는 ASCII 의 11 에 변환됩니다.

    •   \z 는 단지 스킵 됩니다. “\0xf\z\0xf” (와)과 같이 사용하면(자) 편리합니다.

    •   \0xN 와 \0xNN 는 16 진수의 N 와 NN 에 변환됩니다.

    •   \NNN 는 8 진수 NNN 의 ASCII 캐릭터에 변환됩니다.

    •   \" , \' , \$ 는, 이러한 캐릭터를 이스케이프 해, 후술 하는 스텝 2 에 있어서의 특수한 의미가 주어지지 않게 합니다.

    •   \\ 는 단일의 \ 에 변환됩니다.

    •   다른 경우, backslash는 단지 제거됩니다.

2.  이스케이프되어 있지 않은 쿼트 또는 더블 쿼트의 사이의 모든 캐릭터 라인은, 후속 하는 스텝에 대해 단일의 말로서 다루어집니다.

3.  $VARIABLE 또는 ${VARIABLE} (은)는, 환경 변수 VARIABLE 의 값에 변환됩니다.

4.  공백에서 단락지어진 복수의 인수를, 호출한 편입 명령에 건네줍니다. 공백은 \\ 를 사용하는 것으로써 이스케이프 가능합니다.

해석 룰에는 예외가 있어, 이것은 편입어와 FORTH 그리고 설명합니다.

  편입어와 FORTH
모든 편입어는, 상태를 의식하는 즉시 실행어입니다. 인타프리트 되면(자), 이것들은 상술한 대로에 행동합니다. 한편 컴파일 되면(자), 인수를 명령행으로부터는 아니게 스택으로부터 꺼냅니다.

컴파일 되면(자), 실행시에 짜넣어 말은, 스택상에서 다음의 파라미터를 찾아낼 수 있다고 기대합니다:
    addrN lenN ... addr2 len2 addr1 len1 N
여기서 addrX lenX (은)는 캐릭터 라인이며, 편입어의 인수로서 해석되는 명령행을 구성합니다. 내부적으로는, 각각의 사이에 공백을 협 그리고, 이러한 캐릭터 라인은 1 으로부터 N 까지 결합됩니다.

인수가 건네받지 않는 경우, 편입어가 인수를 받아들이지 않는 경우여도, 단일의 0 을 건네준다 필요 (이)가 있습니다.

이 동작에는 이점이 있습니다만, 그것 자신에게는 트레이드 오프가 있습니다. 편입어의 실행 토큰이 ( ' 또는 ['] (을)를 통해) 얻을 수 있어, catch 또는 execute 에게 건네졌을 경우, 편입어의 동작은 catch 또는 execute 하지만 실행될 때의 시스템 상태에 의존합니다 ! 이것은, 예외를 취급하고 싶은 또는 취급할 필요가 있는 프로그램에 있어서는, 특히 괴로운 것입니다. 이 경우, 대리 (proxy)를 사용하는 것을 추천합니다. 예를 들면 다음과 같이 합니다:
    : (boot) boot;

FICL
FICL (은)는 C 로 기술된 Forth 인터프리터이며, C 의 함수등으로 해서 호출해 가능한 forth 가상 머신 프로그램 라이브러리의 형식입니다.

loader 그럼, 대화적으로 읽힌 각 행은 FICL 에게 줄 수 있습니다. FICL (은)는, 편입어를 실행하기 위해서 loader (을)를 귀환시킵니다. 편입의 include 도 또한, 1 번에 1 행씩을 FICL 에 줍니다.

FICL 에 사용 가능한 말은 4 그룹에 분류 가능합니다. 그것은, ANS Forth 표준어, 추가의 FICL 말, 추가의 FreeBSD 말, 그리고 짜넣어 명령입니다. 마지막 것은 이미 설명했습니다. ANS Forth 표준어는, 표준 시에에 열거하고 있습니다. 다른 2 그룹의 말에 대해서는, 이후의 소절에 대해 설명합니다.

  FICL 추가어

.env

.ver

-roll

2constant

>name

body>

compare
    This is the STRING word set's compare.

compile-only

endif

forget-wid

parse-word

sliteral
    This is the STRING word set's sliteral.

wid-set-super

w@

w!

x.

empty

cell-

-rot

  FREEBSD 추가어

$ (--)
    최초로 입력 버퍼를 표시한 후, 입력 버퍼의 나머지를 평가합니다.

% (--)
    catch 예외 가이드하의, 입력 버퍼의 나머지를 평가합니다.

. # . (와)과 같게 동작합니다만, 후속의 공백을 표시하지 않습니다.

fopen (addr len mode -- fd)
    파일을 오픈합니다. 파일 기술자를 돌려줍니다. 실패시에는 -1 을 돌려줍니다. mode 파라미터는, 파일 오픈의 목적이 읽어들여 용, 기입용, 양용의 머지않아인지를 선택합니다. 정수 O_RDONLY, O_WRONLY, O_RDWR 하지만 /boot/support. 4th 그리고 정의되어 각각 읽어들여 전용, 기입 전용, 읽고 쓰기를 나타냅니다.

fclose (fd --)
    파일을 클로우즈 합니다.

fkey (fd -- char)
    파일로부터 1 훈독 붐빕니다.

fload (fd --)
    파일 fd (을)를 처리합니다.

fopen (addr len -- fd)
    파일을 오픈합니다. 파일 기술자를 돌려주는지, 실패시에는 -1 을 돌려줍니다.

    fread (fd addr len -- len') 파일 fd (으)로부터 len 바이트를, 버퍼 addr 에 읽어들이려고 합니다. 실제로 읽어들인 바이트수를 돌려줍니다. 에러시 또는 파일의 종료의 경우에는 -1 을 돌려줍니다.

heap
    디렉토리 heap중에 남겨진 공간을, 셀수의 단위로 돌려줍니다. 이것은, 동적인 메모리 할당의 의미로 사용되는 heap와는 무관계합니다.

inb (port -- char)
    포트로부터 바이트를 읽어들입니다.

key (-- char)
    콘솔로부터 1 훈독 붐빕니다.

key? (-- flag)
    콘솔로부터 읽어들여 가능한 캐릭터가 있는 경우, 진 (을)를 돌려줍니다.

ms (u --)
    u 마이크로 세컨드 기다립니다.

outb (port char --)
    포트에 바이트를 기입합니다.

seconds (-- u)
    심야 0 시부터의 초수를 돌려줍니다.

tib> (-- addr len)
    입력 버퍼의 나머지를, 스택상의 캐릭터 라인으로서 돌려줍니다.

trace! (flag --)
    트레이스를 유효 또는 무효로 합니다. catch (와)과 함께는 동작하지 않습니다.

  FREEBSD 로 정의되는 환경 문의

arch-i386
    아키텍쳐가 IA32 의 경우 진 입니다.

arch-alpha
    아키텍쳐가 AXP 의 경우 진 입니다.

FreeBSD_version
    컴파일시의 FreeBSD 버젼입니다.

loader_version
    loader 의 버젼입니다.

  시스템 문서

관련 파일
/boot/loader
    loader 자신.
/boot/boot. 4th
    추가의 FICL 의 초기화.
/boot/boot.conf
    loader 의 bootstrap 스크립트. 가치가 저하하고 있습니다.
/boot/defaults/loader.conf
/boot/loader.conf
/boot/loader.conf.local
    loader 설정 파일. loader.conf(5) 그리고 해설되고 있습니다.
/boot/loader.rc
    loader 의 bootstrap 스크립트.
/boot/loader.help
    help 하지만 로드합니다. 헬프 메세지를 포함합니다.

사용예
싱글 유저 모드로 부트 합니다:

    boot -s

커널의 유저 설정 파일을 로드합니다. 다른 load 명령을 시도하기 전에 커널을 로드할 필요가 있는 것에 주의해 주세요.

    load kernel
    load -t userconfig_script /boot/kernel.conf

커널과 기동 화면을 로드해, 5 초 이내에 자동 부트 합니다.

    load kernel
    load splash_bmp
    load -t splash_image_data /boot/chuckrulez.bmp
    autoboot 5

루트 디바이스의 디스크 유니트를 2 로 설정해, 부트 합니다. IDE 디스크가 2 대의 시스템으로, 2 대째의 IDE 가 wd1 는 아니고 wd2 에 고정되고 있는 시스템에 대해, 필요하겠지요.

    set root_disk_unit=2
    boot /kernel

다음을 참조해 주세요:

/boot/loader. 4th
    추가의 짜넣어적인 말에 대해.

/boot/support. 4th
    loader.conf 하지만 처리하는 말에 대해.

/usr/share/examples/bootforth/
    분류된 사용예.

에러
다음의 값을 loader (은)는 돌려줍니다:

100 편입 명령 처리에 대해 임의의 타입의 에러가 발생했습니다.

-1  Abort 하지만 실행되었습니다.

-2  Abort" 하지만 실행되었습니다.

-56 Quit 하지만 실행되었습니다.

-256
    인타프리트 하는 텍스트가 없습니다.

-257
    성공하기 위해서(때문에)는 한층 더 텍스트가 필요합니다 -- 다음의 실행으로 종료합니다.

-258
    Bye 하지만 실행되었습니다.

-259
    미정도리 에러.

관련 항목
libstand(3), loader.conf(5), tuning(7), boot(8), btxld(8)

표준
ANS Forth 호환성의 관점에서는, loader 는 환경에 제한이 있는 ANS Forth System 입니다. Core Extensions 어 집합으로부터는,. (, :noname,? do, parse, pick, roll, refill, to, value, \, false, true, <>, 0<>, compile, , erase, nip, tuck, maker (을)를 제공하고 있습니다. Exception Extensions 어 집합을 제공하고 있습니다. Locals Extensions 어 집합을 제공하고 있습니다. Memory-Allocation Extensions 어 집합을 제공하고 있습니다. Programming-Tools 확장어 집합으로부터는 . s, bye, forget, see, words, [if], [else], [then] (을)를 제공하고 있습니다. Search-Order 확장어 집합을 제공하고 있습니다.

역사
loader 하지만 최초로 등장한 것은 FreeBSD 3.1 입니다.

저자
-nosplit loader 하 Michael Smith <msmith@FreeBSD.org> 하지만 기술했습니다.

FICL 하 John Sadler <john_sadler@alum.mit.edu> 하지만 기술했습니다.

버그
expect (와)과 accept 의 말은, 콘솔로부터는 아니게 입력 버퍼로부터 읽어들입니다. 후자에 대해서는 수정됩니다만, 전자는 수정되지 않습니다.