7.4. 설정 파일

설정 파일의 일반적인 형식은 매우 간단합니다. 각 줄은 하나의 키워드와 하나 이상의 인수로 구성되어 있습니다. 단순하게 하기 위해서 대부분의 경우에는 한 줄에 하나의 인수만이 존재합니다. #의 뒤에 따라오는 모든 것은 주석으로 처리되어 무시됩니다. 이 절에서는 각각의 키워드를 GENERIC에 등록되어 있는 일반적인 순서대로 설명합니다. 그렇지만, 연관되어 있는 키워드들(네트워킹과 같은)은 실제로는 GENERIC 파일 안에 흩어져 있어라도 한 그룹으로 묶어서 기술하겠습니다. 모든 옵션과 장치에 대한 상세한 사항들은 LINT설정 파일에 기술되어 있습니다. 이는 GENERIC과 같은 디렉토리 내에 존재합니다. 만약 어떤 줄에 대한 목적이나 필요성에 대해 궁금하다면 LINT을 먼저 참조하십시오.

숫자에 따옴표 붙이기.: 3.X대를 포함한 FreeBSD의 이전 버전에서는, config(8)을 수행하기 위해서는 구성 파일 내에서 텍스트로 인식하는 숫자를 사용하기 위해서는 그 숫자를 큰따옴표( 더블 쿼테이션 마크 - " )로 감싸여 했습니다.

이 책에서 설명하고 있는 4.X대에 들어와서는 이렇게 할 필요가 없어졌습니다. 만약 여러분이 4.X 대 이전 버전을 사용하고 있다면 /usr/src/sys/i386/conf/LINT나 /usr/src/sys/i386/conf/GENERIC파일을 참조하세요.

다음에 나오는 것은 GENERIC커널 구성 파일에 몇몇 주석을 추가한 예시입니다. 이 예는 여러분이 가지고 있는 /usr/src/sys/i386/conf/GENERIC파일과 거의 비슷하게 매치되어야 합니다. 가능한 모든 커널 옵션에 대해서는 /usr/src/sys/i386/conf/LINT을 참조하시기 바랍니다.

    #
    # GENERIC -- Generic kernel configuration file for FreeBSD/i386
    #
    # For more information on this file, please read the handbook section on
    # Kernel Configuration Files:
    #
    #    http://www.freebsd.org/handbook/kernelconfig-config.html
    #
    # The handbook is also available locally in /usr/share/doc/handbook
    # if you've installed the doc distribution, otherwise always see the
    # FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
    # latest information.
    #
    # An exhaustive list of options and more detailed explanations of the
    # device lines is also present in the ./LINT configuration file. If you are
    # in doubt as to the purpose or necessity of a line, check first in LINT.
    #
    # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp $

다음에 나오는 것은 모든커널에서 기본적으로 필요한 키워드입니다.

    machine		i386

이는 사용할 기계의 아키텍처를 의미합니다. 이는 반드시 i386, alpha, pc98중 하나여야 합니다.

    cpu          I386_CPU
    cpu          I486_CPU
    cpu          I586_CPU
    cpu          I686_CPU

위에서 지정한 것은 여러분의 시스템에 장착되어 있는 CPU를 의미합니다. 여러 개의 CPU 가 지정될 수도 있습니다. ( 만약 I586_CPU을 쓰는지, I686_CPU을 쓰는지 명확하지 않은 경우라면요. ) 하지만, 맞춤 커널의 경우에는 여러분이 가지고 있는 정확한 CPU를 하나만 선택하는 것이 좋습니다. 만약 어떤 CPU를 사용하는지 확실치 않다면 dmesg명령을 사용하세요. 그러면 부팅 시의 메세지를 볼 수 있습니다. 이를 보고 확인하세요.

알파 기반의 서버는 다른 CPU유형을 지정하는데, 이는 다음과 같습니다.

    cpu          EV4
    cpu          EV5

알파 서버를 사용하는 경우에는 위와 같은 CPU 를 지정해 주어야 합니다.

    ident          GENERIC

이는 이 커널의 식별자(ID)입니다. 각각의 경우 마음에 드는 이름으로 지정하면 됩니다. 이전의 예에서는 MYKERNEL이라고 지정했습니다. ident 뒤에 입력한 문자열은 부팅시에 화면에 표시되기 때문에 일반적으로 사용하는 커널과 현재 커널을 구분하여야 할 때 (예를 들어서 실험용의 커널을 반들고자 할 때) 편리합니다.

    maxusers          32

이 maxusers옵션은 몇몇 주요 시스템 테이블의 크기를 지정합니다. 이 숫자는 머신에서 동시에 처리하고자 하는 사용자의 수를 대충 계산한 것입니다. 그렇지만, 일반적인 환경에서는 maxusers를 적어도 4로 잡아주는 것이 좋습니다. 특히 X Window 시스템이나 컴파일 작업을 수행해야 하는 경우라면요. 그 이유는 maxusers에 의해서 지정되는 가장 중요한 테이블이 프로세스의 최대 갯수이기 때분입니다. 이는 20 + 16 * maxusers 과 같이 지정됩니다. 그렇기 때문에, 만약 maxusers가 1로 지정되면 동시에 36개의 프로세스밖에 띄울 수 없게 됩니다. 여기에는 시스템이 부팅할 때 뜨는 18개 정도의 프로세스와 X window 시스템을 띄울 때 필요한 15개 정도의 프로세스도 포함됩니다. 비록 man 페이지를 읽는 간단한 작업일지라도 거기에는 필터, 압축 풀기, 화면에 보이기 등의 9개의 프로세스가 사용됩니다. maxusers를 64로 잡으면 동시에 1044개의 프로세스를 동시에 수행시킬 수 있습니다. 이는 거의 대부분의 경우에 충분한 값입니다. 그렇지만, 프로그램을 수행시키다가 또는 동시에 많은 사용자들이 사용하는 서버(ftp.freeBSD.org와 같은)를 운영하다가 proc table full이라는 에러가 발생하면 언제라도 이 숫자를 늘인 다음에 커널을 새로 컴파일하면 됩니다.

Note: maxusers는 서버에 로긴하는 사람들의 수를 제한하지는 않습니다. 이 옵션은 최대 동시 사용자 수에 따라서 시스템에서 발생할 수 있는 프로세스의 최대 수를 고려해서 다양한 테이블들의 크기를 단순히 지정하는 것입니다. 실제로 동시 접속 사용자 수를 제한하는 것은 pseudo-device pty 16입니다.

다음에 나오는 것들은 대강은 선택적인 것들입니다. 더욱 상세한 정보는 옵션의 하단 또는 바로 옆에 있는 주를 참조하십시오.

    #makeoptions     DEBUG=-g          #Build kernel with gdb(1) debug symbols
    options          MATH_EMULATE      #Support for x87 emulation

이 옵션은 컴퓨터에 수학용 보조 프로세서가 장착되어 있지 않은 경우( 386또는 486SX 와 같은 경우 )에 그러한 보조 프로세서를 흉내내는 옵션입니다. 486DX나 따로 387, 487 칩이 장착된 386이나 486SX, 또는 그보다 높은 칩(펜티업이나 펜티엄 2 등과 같은)을 가지고 있을 때에는 이 옵션을 주석 처리하십시오.

Note: 역주: 여기서 주석 처리한다는 것은 해당 옵션 행의 맨 앞부분에 # 문자를 넣으라는 의미입니다.

Note: FreeBSD에서 제공하고 있는 보통의 수학 보조 프로세서 에뮬레이션(흉내) 루틴은 그렇게 정확하지는 않습니다. 만약 수학 보조 프로세서를 가지고 있지 않지만 정확한 계산을 해야 한다면 GPL_MATH_EMULATION을 사용해서 GNU math support(수학 지원) 기능을 사용하십시오. 이 옵션은 라이센스 문제로 기본값이로 지정되어 있지는 않습니다.

    options          INET          #InterNETworking

네트웍 기능 지원입니다. 네트웍을 딱이 사용할 일이 없더라도 이 기능은 그대로 두십시오. 대부분의 프로그램은 최소한 루프백 네트웍 기능(PC 한 대 내부적으로 네트웍을 구성하는 기능)을 필요로 하기 때문입니다. 그렇기 때문에 이 부분은 실제로는 필수적인 옵션입니다.

    options          INET6          #IPv6 communications protocols

이 옵션을 써서 IPV6 통신 프로토콜을 지원합니다.

    options          FFS          #Berkeley Fast Filesystem
    options          FFS_ROOT     #FFS usable as root device [keep this!]

이것은 기본적인 하드 디스크 파일 시스템입니다. 만약 하드디스크로부터 부팅하여야 한다면 이 부분은 그대로 두십시오.

    options          MFS          #Memory Filesystem
    options          MD_ROOT      #MD is a potential root device

에것은 메모리에 매핑되는 파일 시스템입니다. 기본적으로는 임시적으로 생성되는 파일들을 빠르게 저장하기 위한 RAM 디스크라고 할 수 있습니다. 이는 사용하고자 하는 스왑 공간이 많을 때 유용합니다. 이 MFS를 사용하기(마운트하기) 가장 적합한 곳은 /tmp입니다. 많은 프로그램들이 자신의 임시 파일을 그곳에 저장하기 때문입니다. MFS RAM 디스크를 /tmp에 마운트하려면 다음과 같은 문장을 /etc/fstab에 추가하면 됩니다.

    /dev/ad1s2b	/tmp mfs rw 0 0

이제는 단순히 재부팅하거나 mount /tmp 와 같이 쳐주면 됩니다.

    options          NFS          #Network Filesystem
    options          NFS_ROOT     #NFS usable as root device, NFS required

네트웍 파일시스템을 위한 옵션입니다. TCP/IP 상에 있는 UNIX 파일 서버에 마운트할 계획이 없다면 이 부분은 주석 처리하십시오.

    options          MSDOSFS      #MSDOS Filesystem

MS-DOS 파일시스템입니다. 부팅할 때 DOS 로 포맷된 하드 디스크 파티션을 마운트할 계획이 없다면 안전하게 이 부분을 주석 처리하십시오. 위에서 언급한 대로 DOS 파티션을 마운트할 때 이 부분은 자동으로 로드될 것입니다. 또한, mtools이라는 훌륭한 소프트웨어를 사용하면(포트 모음에 있습니다.) 마운트 작업을 수행하지 않고도 DOS 형태로 포맷된 플로피 디스크에 접근할 수 있습니다. (또한 MSDOSFS 옵션을 필요로 하지도 압습니다.)

    options          CD9660       #ISO 9660 Filesystem
    options          CD9660_ROOT  #CD-ROM usable as root, CD9660 required

CDROM을 사용하기 위한 ISO9660 파일시스템에 대한 옵션입니다. CDROM을 사용하지 않거나 가끔 사용하는 정도라면(데이터 CD를 처음으로 사용할 때 이 부분이 동적으로 시스템에 올라옵니다.) 이 부분을 주석 처리하십시오. 오디오 CD를 사용하는 경우라면 이 파일시스템을 필요로 하지 않습니다.

    options          PROCFS       #Process filesystem

프로세스 파일시스템을 사용하기 위한 옵션입니다. 이는 실제적인 파일시스템은 아닙니다. 이는 ps(1)과 같이 동작중인 프로세스에 관련된 정보를 제공합니다.

    options          COMPAT_43    #Compatible with BSD 4.3 [KEEP THIS!]

4.3BSD와의 호환성을 위한 옵션. 이 옵션은 그대로 두십시오. 그렇지 않으면 어떤 프로그램들은 이상하게 동작할 수도 있습니다.

    options          SCSI_DELAY=15000    #Delay (in ms) before probing SCSI

이 옵션은 커널로 하여금 시스템 내에 있는 각 SCSI 장치들을 감지하는 데 15초간 대기하도록 하는 것입니다. 만약 IDE 하드 디스크만을 사용한다면 이 옵션은 무시하거나 5초 정도로 줄여서 부팅 속도를 높이세요. 물론 그렇게 하였을 때 FreeBSD는 SCSI 장치들을 검색하는 데 문제를 일으킬 수도 있습니다. 그런 경우에는 다시 숫자를 올려 주세요.

    options          UCONSOLE            #Allow users to grab the console

사용자들이 콘솔을 잡을 수 있도록 하는 옵션입니다. 이 옵션은 X 사용자들에게 유용합니다. 예를 들어서 콘솔 xterm 을 xterm -C을 쳐서 생성하였을 때 이 콘솔에는 write, talk와 같은 프로그램에 의한 모든 메세지가 출력됩니다. 또한, 커널에 의해서 보내진 메세지도 출력됩니다.

    options          USERCONFIG          #boot -c editor

이 옵션을 사용하면 부트 메뉴에서 부트 설정 에디터를 시작할 수 있습니다. This option allows you to boot the configuration editor from the boot menu.

    options          VISUAL_USERCONFIG   #visual boot -c editor

이 옵션을 사용하면 부트 메뉴에서 비주얼한 설정 에디터로 됩니다. This option allows you to boot the visual configuration editor from the boot menu.

    options          KTRACE              #ktrace(1) support

디버깅 시 편리한 옵션으로 커널 프로세스를 추적할 수 있게 하는 옵션입니다.

    options          SYSVSHM             #SYSV-style shared memory

System V 공유 메모리를 사용하는 옵션입니다. X 내의 XSHM 확장에 가장 일반적으로 사용되는데, 이는 많은 그래픽을 사용하는 프로그램으로 하여금 자동적으로 빠른 속도를 내게 한다는 잇점이 있습니다. X 윈도우를 사용한다면 이 옵션은 반드시 넣어야 합니다.

    options          SYSVSEM             #SYSV-style semaphores

System V 세마포어를 제공하는 옵션입니다. 비교적 많이 사용되지는 않지만, 커널 크기도 구백 바이트정도만 늘어납니다.

    options          SYSVMSG             #SYSV-style message queues

System V 메세지 기능을 제공하는 옵션입니다. 마찬가지로 이 옵션도 커널 크기가 몇백 바이트 정도밖에 늘어나지 않습니다.

Note: ipcs(1) 명령을 이용하면 이러한 System V 기능을 사용하는 프로세스를 볼 수 있습니다.

    options 	P1003_1B		#Posix P1003_1B real-time extentions
    options 	_KPOSIX_PRIORITY_SCHEDULING

1993 POSIX 에 추가된 리얼 타임 확장 옵션입니다. 포트 콜렉션 내에 있는 몇몇 애플리케이션들(Star Office 와 같은)이 이 기능을 사용합니다.

    options		ICMP_BANDLIM		#Rate limit bad replies

이 옵션을 사용하면 ICMP 에러 응답 속도를 제한할 수 있습니다. 이 기능을 이용하면 DOS(Denial Of Service)공격으로부터 시스템을 보호할 수 있습니다.

    # To make an SMP kernel, the next two are needed
    #options        SMP                     # Symmetric MultiProcessor Kernel
    #options        APIC_IO                 # Symmetric (APIC) I/O

이 두개의 옵션은 SMP 기능을 사용하기 위해서는 둘 다 필요합니다.

    # Optionally these may need tweaked, (defaults shown):
    #options        NCPU=2                  # number of CPUs
    #options        NBUS=4                  # number of busses
    #options        NAPIC=1                 # number of IO APICs
    #options        NINTR=24                # number of INTs

이들은 추가적인 SMP 설정사항들입니다.

Note: 역주 : 이 4개의 옵션들은 FreeBSD 4.2 버전 이후로는 없어진 상태이며, 커널에서 자동적으로 설정해 줍니다.

    device          isa

FreeBSD에서 지원하는 모든 PC는 이들 중 하나를 가지고 있습니다. 그렇지만 IBM PS/2(Micro Channel Architecture)는 아직 FreeBSD에서 지원하지 않고 있습니다. (이에 대한 지원은 현재 작업중에 있습니다.) All PCs supported by FreeBSD have one of these. If you have an IBM PS/2 (Micro Channel Architecture), you cannot run FreeBSD at this time (support is being worked on).

    device          eisa

EISA 마더보드를 사용한다면 이 옵션을 포함시키세요. 이것은 EISA 버스상에 있는 모든 장치들을 자동으로 검출하고 설정하는 기능을 제공합니다.

    device          pci

PCI 마더보드인 경우에는 이 옵션을 사용하세요. 이 옵션을 사용하면 PCI 카드와 PCI에서 ISA 버스로 거쳐가는 장치들에 대한 자동 검출 기능을 사용할 수 있습니다. Include this if you have a PCI motherboard. This enables auto-detection of PCI cards and gatewaying from the PCI to ISA bus.

    # Floppy drives
    device          fdc0        at isa? port IO_FD1 irq 6 drq 2
    device          fd0         at fdc0 drive 0
    device          fd1         at fdc0 drive 1

플로피 드라이버 컨트롤러입니다. fd0는 A: 플로피 드라이브, fd1은 B:을 의미합니다.

    device          ata

이 드라이버는 모든 ATA / ATAPI 장치들을 지원합니다. 최근의 장비들에 있는 모든 PCI ATA/ATAPI 장치들을 커널이 인식할 수 있도록 하려면 device ata 한 줄만을 구성 파일에 넣어주면 됩니다.

    device          atadisk                 # ATA disk drives

ATAPI디스크 드라이브를 사용하려면 device ata와 함께 이 옵션을 사용하여야 합니다.

    
    device          atapicd                 # ATAPI CDROM drives

ATAPI CDROM 드라이브를 사용하려면 device ata와 함께 이 옵션을 사용하여야 합니다.

    device          atapifd                 # ATAPI floppy drives

ATAPI 플로피 드라이브를 사용하려면 device ata와 함께 이 옵션을 사용하여야 합니다.

    device          atapist                 # ATAPI tape drives

ATAPI 테잎 드라이브를 사용하려면 device ata와 함께 이 옵션을 사용하여야 합니다.

    options         ATA_STATIC_ID           #Static device numbering

이 옵션을 사용하면 컨트롤러 번호가 정적으로 됩니다.(구식의 드라이버처럼) 사용하지 않으면 장치 번호는 동적으로 할당됩니다.

    #options        ATA_ENABLE_ATAPI_DMA    #Enable DMA on ATAPI devices

이 옵션을 사용하면 ATAPI 장치에서 DMA를 사용할 수 있습니다. 많은 수의 ATAPI 장치들이 DMA지원을 요청하지만, 실제로 동작하지는 않기 때문에 이 옵션은 기본적으로는 사용하지 않습니다.

    # ATA and ATAPI devices
    device          ata0        at isa? port IO_WD1 irq 14
    device          ata1        at isa? port IO_WD2 irq 15

구식의 비 PCI 시스템을 사용하는 경우에는 위의 옵션을 사용하십시오.

    # SCSI Controllers
    device          ahb        # EISA AHA1742 family
    device          ahc        # AHA2940 and onboard AIC7xxx devices
    device          amd        # AMD 53C974 (Teckram DC-390(T))
    device          dpt        # DPT Smartcache - See LINT for options!
    device          isp        # Qlogic family
    device          ncr        # NCR/Symbios Logic
    device          sym        # NCR/Symbios Logic (newer chipsets)
    
    device          adv0       at isa?
    device          adw
    device          bt0        at isa?
    device          aha0       at isa?
    device          aic0       at isa?

SCSI 컨트롤러들입니다. 해당 시스템에서 사용하고 있지 않은 장비는 주석 처리하십시오. 만약 IDE 만이 있다면 이 모든 것을 한꺼번에 주석 처리하십시오.

    # SCSI peripherals
    device          scbus      # SCSI bus (required)
    device          da         # Direct Access (disks)
    device          sa         # Sequential Access (tape etc)
    device          cd         # CD
    device          pass       # Passthrough device (direct SCSI
    access)

SCSI 주변기기들입니다. 마찬가지로 가지고 있지 않은 부분은 주석 처리하십시오. 만약 IDE만이 있다면 오나전히 다 빼 버리십시오.

    # RAID controllers
    device          ida        # Compaq Smart RAID
    device          amr        # AMI MegaRAID
    device          mlx        # Mylex DAC960 family

지원되는 RAID 컨트롤러들입니다. 만약 시스템에 어느 것도 장착되어 있지 않다면 빼버리거나 주석 처리하십시오.

    # atkbdc0 controls both the keyboard and the PS/2 mouse
    device          atkbdc0    at isa? port IO_KBD

키보드 컨트롤러(atkbdc)는 AT 방식의 키보드와 PS/2 방식의 포인팅 디바이스(역주:마우스나 타블렛 같은 장비)에 대한 I/O 서비스를 제공합니다. 이 컨트롤러는 키보드 드라이버(atkbd)와 PS/2방식의 포인팅 디바이스 드라이버(psm)를 사용하기 위해서 필요합니다.

    device          atkbd0     at atkbdc? irq 1

atkbd드라이버입니다. 이는 atkbdc 컨트롤러와 함께 AT 키보드 컨트롤러에 연결되어 있는 AT 84 키보드나 여러 변형 키보드를 지원합니다.

    device          psm0       at atkbdc? irq 12

마우스가 PS/2 포트에 연결되어 있다면 이 옵션을 사용하십시오.

    device          vga0        at isa?

비디오 카드 드라이버입니다.

    # splash screen/screen saver
    pseudo-device          splash

시작할 때 뜨는 스플래시 스크린입니다. 스크린 세이버 기능을 사용하기 위해서도 필요합니다.

    # syscons is the default console driver, resembling an SCO console
    device          sc0          at isa?

sc0는 기본 콘솔 드라이버이며, SCO콘솔과 비슷합니다. 대부분의 전화면 프로그램들이 termcap과 같은 터미널 데이터베이스 라이브러리를 통해서 콘솔에 접근하기 때문에 이것을 사용하든, vt0나 VT220를 사용하든 상관 없습니다. 만약 전화면 콘솔 애플리케이션이 문제를 일으킨다면 로긴시 TERM환경 변수를 scoansi로 바꾸어 주세요.

    # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
    #device          vt0     at isa?
    #options         XSERVER          # support for X server on a vt console
    #options         FAT_CURSOR       # start with block cursor
    # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
    #options         PCVT_SCANSET=2   # IBM keyboards are non-std

이것은 VT100/102에 대한 이전 호환성을 제공하는 VT220 호환의 콘솔 드라이버입니다. sc0에 호환되지 않는 몇몇 랩탑 컴퓨터응 위한 옵션입니다. 이것 역시 로그인할 때 TERM환경 변수를 vt100, vt220 등으로 지정하세요. 또한 이 드라이버는 네트웍을 통해 많은 다양한 머신에 접속할 때, 각각의 머신들이 sc0에 대한 termcap이나 terminfo을 제공하지 않는 경우에 유용합니다. -- vt100은 가상의 어떤 머신에서도 지원하는 것입니다.

    # Floating point support - do not disable.
    device          npx0     at nexus? port IO_NPX irq 13

npx0는 FreeBSD내의 부동소수점 수학 유닛에 대한 인터페이스입니다. 그러한 부동소숫점 수학 유닛은 하드웨어 보조 프로세스일 수도 있고 소프트웨어 에뮬레이터가 될 수도 있습니다. 이것은 선택사항이 아닙니다.

    # Power management support (see LINT for more options)
    device          apm0     at nexus? disable flags 0x20  # Advanced Power Management

향상된 전원 관리 기능을 제공삽니다. 노트북, 랩탑 등에 유용합니다.

    # PCCARD (PCMCIA) support
    device          card
    device          pcic0    at isa? irq 10 port 0x3e0 iomem 0xd0000
    device          pcic1    at isa? irq 11 port 0x3e2 iomem 0xd4000 disable

PCMCIA 지원 기능입니다. 노트북에 설치할 때 이 옵션을 사용하십시오.

    # Serial (COM) ports
    device          sio0     at isa? port IO_COM1 flags 0x10 irq 4
    device          sio1     at isa? port IO_COM2 irq 3
    device          sio2     at isa? disable port IO_COM3 irq 5
    device          sio3     at isa? disable port IO_COM4 irq 9

MS-DOS/Windows 세계에서 이 옵션은 COM1부터 COM4 까지로 표현되는 네개의 시리얼 포트를 의미합니다.

Note: 만약 내장 모뎀을 COM4에 장착하고 COM2에 시리얼 포트를 연결하는 경우에는 모뎀의 IRQ를 2로 바꾸어야 합니다.( 지나가버린 기술적인 이유로, IRQ2 = IRQ9입니다.) 만약 멀티포트 시리얼 카드를 사용하는 경우라면 sio(4)매뉴얼 페이지를 참조하서 이 라인에 들어갈 적절한 값을 찾으십시오. 어떤 비디오 카드들(특히 S3칩 기반의 카드들)은 0x*2e8의 형태로 IO 주소를 사용합니다. 그리고 값싼 시리얼 카드들은 16비트 IO 주소를 전체적으로 디코드할 수 없기 때문에 이런 비디오 카드들과 충돌을 일으켜서 COM4 포트를 사용할 수 없게 합니다.

각각의 시리얼 포트는 유일한 IRQ를 요구합니다.(그렇지 않다면 공유 인터럽트 기능을 제공하는 멀티포트 카드를 사용하고 있는 것입니다.) 그렇기 때문에 COM3, COM4의 기본 IRQ는 사용할 수 없습니다.

    # Parallel port
    device          ppc0    at isa? irq 7

이것은 ISA버스 기반의 병렬 포트(역주:프린터 포트) 인터페이스입니다.

    device          ppbus      # Parallel port bus (required)

병렬 포트 버스를 지원합니다.

    device          lpt        # Printer

병렬 포트 프린터를 지원합니다.

Note: 병렬 포트 프린터를 사용하기 위해서는 위에 언급된 세가지 모두를 사용해 주어야 합니다.

    device          plip       # TCP/IP over parallel

이는 병렬 포트 기반의 네트웍 인터페이스입니다.

    device          ppi        # Parallel port interface device

일반적인 목적의 I/O 입니다. ("geek port" + IEEE1284 I/O.

    #device         vpo        # Requires scbus and da

이 옵션은 Iomega의 집 드라이버 옵션입니다. 이 옵션을 사용하려면 scbus와 da 지원을 필요로 합니다. EPP 1.9 모드를 사용하였을 때 최고의 성능을 어등ㄹ 수 있습니다.

    # PCI Ethernet NICs.
    device          de         # DEC/Intel DC21x4x ("Tulip")
    device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
    device          tx         # SMC 9432TX (83c170 "EPIC")
    device          vx         # 3Com 3c590, 3c595 ("Vortex")
    device          wx         # Intel Gigabit Ethernet Card ("Wiseman")

다양한 PCI 네트웍 카드 드라이버들입니다. 시스템에서 사용하지 않는 것들은 주석 처리하십시오.

    # PCI Ethernet NICs that use the common MII bus controller code.
    device          miibus     # MII bus support

몇몇 PCI 10/100 이더넷 카드에는 MII 버스 지원 기능이 필요합니다. 즉 MII-compliant 트랜시버를 사용하거나 MII 와 같이 작동하는 트랜시버 컨트롤 인터페이스를 구축하는 카드들을 의미합니다. device miibus를 커널 설정에 추가하면 일반적인 miibus API 지원 기능과 딱이 개별적인 드라이버에 의해 제어되지는 않는 PHY들을 위한 일반적인 PHY 드라이버를 포함한 모든 PHY드라이버들에 대한 지원 기능이 추가됩니다.

    device          dc         # DEC/Intel 21143 and various workalikes
    device          rl         # RealTek 8129/8139
    device          sf         # Adaptec AIC-6915 ("Starfire")
    device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
    device          ste        # Sundance ST201 (D-Link DFE-550TX)
    device          tl         # Texas Instruments ThunderLAN
    device          vr         # VIA Rhine, Rhine II
    device          wb         # Winbond W89C840F
    device          xl         # 3Com 3c90x ("Boomerang", "Cyclone")

MII 버스 컨트롤러 기능을 사용하는 네트웍 드리어버들입니다.

    # ISA Ethernet NICs.
    device          ed0    at isa? port 0x280 irq 10 iomem 0xd8000
    device          ex
    device          ep
    # WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
    # exists only as a PCMCIA device, so there is no ISA attachment needed
    # and resources will always be dynamically assigned by the pccard code.
    device          wi
    # Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
    # work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
    # mode (the factory default). If you set the switches on your ISA
    # card for a manually chosen I/O address and IRQ, you must specify
    # those parameters here.
    device          an
    # The probe order of these is presently determined by i386/isa/isa_compat.c.
    device          ie0    at isa? port 0x300 irq 10 iomem 0xd0000
    device          fe0    at isa? port 0x300
    device          le0    at isa? port 0x300 irq 5 iomem 0xd0000
    device          lnc0   at isa? port 0x280 irq 10 drq 0
    device          cs0    at isa? port 0x300
    device          sn0    at isa? port 0x300 irq 10
    # requires PCCARD (PCMCIA) support to be activated
    #device         xe0    at isa?

ISA 이더넷 드라이버들입니다. 어떤 드라이버가 어떤 장치를 지원하는지에 대해서는 /usr/src/sys/i386/conf/LINT을 참조하세요.

    # Pseudo devices - the number indicates how many units to allocated.
    pseudo-device   loop          # Network loopback

이것은 일반적인 TCP/IP 루프백 장치입니다. localhost (즉 127.0.0.1) 로 ftp나 텔넷을 통해 들어가면 이 의사 장치를 통해서 되돌아오게 됩니다. 이것은 필수 항목입니다.

    pseudo-device   ether         # Ethernet support

ether는 이더넷 카드를 가지고 있을 때만 필요한 옵션입니다. 일반적인 이더넷 프로토콜에 대한 코드를 제공합니다.

    pseudo-device   sl      1     # Kernel SLIP

sl은 SLIP 을 지원하는 옵션입니다. 이는 거의 전적으로 PPP에 의해 대체되었습니다. PPP는 더욱 설치하기 쉽고, 모뎀간의 통신에 매우 적합하며 보다 강력합니다. sl뒤에 있는 숫자는 동시에 얼마나 많은 SLIP 세션을 지원할지를 결정하는 것입니다.

    pseudo-device   ppp     1     # Kernel PPP

이 옵션은 다이얼 업 연결을 위한 커널 PPP 지원 옵션입니다. 이것 외에도 tun을 사용하는 사용자 애플리케이션 ppp도 있습니다. 이 프로그램은 보다 유연하고 주문형 다이얼링과 같은 기능이 있습니다. ppp 다음에 나오는 숫자는 동시에 얼마나 많은 ppp 연결을 지원할 것인지 지정하는 것입니다.

    pseudo-device   tun           # Packet tunnel.

이 옵션은 사용자 애플리케이션으로써의 ppp에 의해 사용되는 것입니다. tun뒤에 나오는 숫자는 동시에 지원할 수 있는 PPP 세션의 수를 의미합니다. 더 상세한 정보는 이 책의 PPP절을 참조하세요.

    
    pseudo-device   pty           # Pseudo-ttys (telnet etc)

이것은 "가상 터미널(pseudo-terminal)"이나 가상의 로긴 포트를 의미합니다. 이 옵션은 telnet과 rlogin세션, xterm또는 emacs과 같은 몇몇 애플리케이션에 의해 사용됩니다. 뒤에 오는 숫자는 몇개의 pty를 생성할지를 나타냅니다. 기본적으로는 16개의 xterm이나 원격 로긴을 수행할 수 있도록 되어 있습니다만, 이 숫자는 최대 256까지 늘일 수 있습니다.

    pseudo-device   md            # Memory "disks"

메모리 디스크 가상 장치입니다.

    pseudo-device   gif     4     # IPv6 and IPv4 tunneling

이 옵션은 IPV4 터널링 상에서 IPV6 를, IPv6 터널링 상에서 IPv4를, IPv4 터널링 상에서 IPv4를, IPv6 터널링 상에서 IPv6 를 구현하는 데 사용되는 옵션입니다.

    pseudo-device   faith   1     # IPv6-to-IPv4 relaying (translation)

이 가상 장치는 자신에게 보내지는 패킷을 잡아서 IPv4/IPv6 전환 데몬으로 그 패킷을 보냅니다.

    # The `bpf' pseudo-device enables the Berkeley Packet Filter.
    # Be aware of the administrative consequences of enabling this!
    pseudo-device   bpf           # Berkeley packet filter

버클리 패킷 필터입니다. 이 가상 장치는 네트웍 인터페이스가 전체 처리 모드(promiscuous mode:난잡하다는 의미)에서 작동해서 광역(broadcast) 네트웍(예:이더넷)에 있는 모든 패킷을 캡춰할 수 있도록 합니다. 이러한 패킷들은 디스크에 저장될 수 있으며, 후에 tcpdump(1) 프로그램으로 분석할 수 있습니다.

Note: 역주 : 이 가상 장치는 프로토콜에 독립적인 방식을 취하기 위해서 데이터 레이어에 원천적인 인터페이스를 제공합니다. 이 필터를 이용하면 네트웍 상의 다른 머신으로 이동하는 패킷들도 모두 잡아낼 수 있습니다. promiscuous 라는 의미는 뒤죽박죽되어있다, 분류되어있지 않다는 의미인데, 이는 네트웍 상의 모든 패킷을 필터링한다는 의미입니다.

    # USB support
    #device         uhci          # UHCI PCI->USB interface
    #device         ohci          # OHCI PCI->USB interface
    #device         usb           # USB Bus (required)
    #device         ugen          # Generic
    #device         uhid          # "Human Interface Devices"
    #device         ukbd          # Keyboard
    #device         ulpt          # Printer
    #device         umass         # Disks/Mass storage - Requires scbus and da
    #device         ums           # Mouse
    # USB Ethernet, requires mii
    #device         aue           # ADMtek USB ethernet
    #device         cue           # CATC USB ethernet
    #device         kue           # Kawasaki LSI USB ethernet

다양한 USB 드라이버들에 대한 지원입니다.

FreeBSD에서 지원하는 추가적인 장치들에 대한 보다 상세한 정보는 /usr/src/sys/i386/conf/LINT을 참조하세요.