From owner-svn-doc-all@FreeBSD.ORG Sun Feb 17 17:41:06 2013 Return-Path: Delivered-To: svn-doc-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 4CFB2949; Sun, 17 Feb 2013 17:41:06 +0000 (UTC) (envelope-from dru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3DCF2CA; Sun, 17 Feb 2013 17:41:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r1HHf6ps013973; Sun, 17 Feb 2013 17:41:06 GMT (envelope-from dru@svn.freebsd.org) Received: (from dru@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r1HHf6UX013972; Sun, 17 Feb 2013 17:41:06 GMT (envelope-from dru@svn.freebsd.org) Message-Id: <201302171741.r1HHf6UX013972@svn.freebsd.org> From: Dru Lavigne Date: Sun, 17 Feb 2013 17:41:06 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r40999 - head/en_US.ISO8859-1/books/handbook/kernelconfig X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Feb 2013 17:41:06 -0000 Author: dru Date: Sun Feb 17 17:41:05 2013 New Revision: 40999 URL: http://svnweb.freebsd.org/changeset/doc/40999 Log: Initial content fix. This patch addresses the following: - fixes you - fixes xref and directory tags - general tightening - csup changed to svn Approved by: gjb (mentor) Modified: head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml Modified: head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml Sun Feb 17 17:28:26 2013 (r40998) +++ head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml Sun Feb 17 17:41:05 2013 (r40999) @@ -37,21 +37,19 @@ The kernel is the core of the &os; operating system. It is responsible for managing memory, enforcing security controls, - networking, disk access, and much more. While more and more - of &os; becomes dynamically configurable it is still - occasionally necessary to reconfigure and recompile your - kernel. + networking, disk access, and much more. While much of &os; is + dynamically configurable, it is still occasionally necessary to + configure and compile a custom kernel. After reading this chapter, you will know: - Why you might need to build a custom kernel. + When to build a custom kernel. - How to write a kernel configuration file, or alter an - existing configuration file. + How to customize a kernel configuration file. @@ -68,50 +66,46 @@ - All of the commands listed within this chapter by way of - example should be executed as root in - order to succeed. + All of the commands listed in the examples in this chapter + should be executed as root. Why Build a Custom Kernel? - Traditionally, &os; has had what is called a - monolithic kernel. This means that the kernel - was one large program, supported a fixed list of devices, and - if you wanted to change the kernel's behavior then you had to - compile a new kernel, and then reboot your computer with the - new kernel. - - Today, &os; is rapidly moving to a model where much of the - kernel's functionality is contained in modules which can be - dynamically loaded and unloaded from the kernel as necessary. - This allows the kernel to adapt to new hardware suddenly - becoming available (such as PCMCIA cards in a laptop), or for - new functionality to be brought into the kernel that was not - necessary when the kernel was originally compiled. This is - known as a modular kernel. - - Despite this, it is still necessary to carry out some - static kernel configuration. In some cases this is because - the functionality is so tied to the kernel that it can not be - made dynamically loadable. In others it may simply be because - no one has yet taken the time to write a dynamic loadable kernel - module for that functionality. - - Building a custom kernel is one of the most important rites - of passage for advanced BSD users. This process, while - time consuming, will provide many benefits to your &os; system. - Unlike the GENERIC kernel, which must - support a wide range of hardware, a custom kernel only contains - support for your PC's hardware. This has - a number of benefits, such as: + Traditionally, &os; used a monolithic kernel. + The kernel was one large program, supported a fixed list of + devices, and in order to change the kernel's behavior, one had + to compile a new kernel, and then reboot into the new + kernel. + + Today, most of the functionality in the &os; kernel is + contained in modules which can be dynamically loaded and + unloaded from the kernel as necessary. This allows the + running kernel to adapt immediately to new hardware or for new + functionality to be brought into the kernel. This is known as + a modular kernel. + + Occasionally, it is still necessary to perform static kernel + configuration. This may be because the functionality is so tied + to the kernel that it can not be made dynamically loadable. + Some security environments prevent the loading and unloading of + kernel modules, and require that only needed functionality is + statically compiled into the kernel. + + Building a custom kernel is often a rite of passage for + advanced BSD users. This process, while time consuming, can + provide benefits to the &os; system. Unlike the + GENERIC kernel, which must support a wide + range of hardware, a custom kernel can be stripped down to only + provide support for that computer's hardware. This has a number + of benefits, such as: - Faster boot time. Since the kernel will only probe - the hardware you have on your system, the time it takes - your system to boot can decrease dramatically. + Faster boot time. Since the kernel will only probe the + hardware on the system, the time it takes the system to boot + can decrease. @@ -121,15 +115,14 @@ important because the kernel code remains resident in physical memory at all times, preventing that memory from being used by applications. For this reason, a custom - kernel is especially useful on a system with a small amount - of RAM. + kernel is useful on a system with a small amount of + RAM. - Additional hardware support. A custom kernel allows - you to add in support for devices which are not present - in the GENERIC kernel, such as - sound cards. + Additional hardware support. A custom kernel can add in + support for devices which are not present in the + GENERIC kernel. @@ -149,12 +142,10 @@ Before venturing into kernel configuration, it would be wise to get an inventory of the machine's hardware. In cases where &os; is not the primary operating system, the inventory - list may easily be created by viewing the current operating - system configuration. For example, µsoft;'s - Device Manager normally contains - important information about installed devices. The - Device Manager is located in the - control panel. + list can be created by viewing the current operating system + configuration. For example, µsoft;'s + Device Manager contains information + about installed devices. Some versions of µsoft.windows; have a @@ -165,12 +156,11 @@ If another operating system does not exist on the machine, the administrator must find this information out manually. One - method is using the &man.dmesg.8; utility and the &man.man.1; - commands. Most device drivers on &os; have a manual page, - listing supported hardware, and during the boot probe, found - hardware will be listed. For example, the following lines - indicate that the psm driver found - a mouse: + method is using &man.dmesg.8; and &man.man.1;. Most device + drivers on &os; have a manual page, listing supported hardware. + During the boot probe, found hardware will be listed. For + example, the following lines indicate that the &man.psm.4; + driver found a mouse: psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] @@ -182,12 +172,12 @@ psm0: model Generic PS/2 mouse, device I On occasion, the data from dmesg will only show system messages instead of the boot probe output. In - these situations, the output may be obtained by viewing the - /var/run/dmesg.boot file. + these situations, the output may be obtained by reading + /var/run/dmesg.boot. - Another method of finding hardware is by using the - &man.pciconf.8; utility which provides more verbose output. - For example: + Another method for finding hardware is to use + &man.pciconf.8; which provides more verbose output. For + example: ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' @@ -195,22 +185,20 @@ psm0: model Generic PS/2 mouse, device I class = network subclass = ethernet - This bit of output, obtained using - pciconf shows that the + This output, obtained by using + pciconf , shows that the ath driver located a wireless Ethernet - device. Using - man ath will - return the &man.ath.4; manual page. + device. Type man + ath to read + &man.ath.4;. The flag, when passed to &man.man.1; - can also be used to provide useful information. From the - above, one can issue: + can be used to provide useful information. For example, to + display a list of manual pages which contain the specified + word:: &prompt.root; man -k Atheros - To get a list of manual pages which contain that particular - word: - ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL) @@ -226,45 +214,37 @@ ath_hal(4) - Atheros Hardw drivers / modules / subsystems - Before building a custom kernel, consider the reasons for + Before building a custom kernel, consider the reason for doing so. If there is a need for specific hardware support, it may already exist as a module. - Kernel modules exist in the - /boot/kernel directory - and may be dynamically loaded into the running kernel using + Kernel modules exist in /boot/kernel and may be + dynamically loaded into the running kernel using &man.kldload.8;. Most, if not all kernel drivers have a - specific module and manual page. For example, the last section - noted the ath wireless Ethernet driver. - This device has the following information in its manual - page: + loadable module and manual page. For example, the &man.ath.4; + wireless Ethernet driver has the following information in its + manual page: Alternatively, to load the driver as a module at boot time, place the following line in &man.loader.conf.5;: if_ath_load="YES" - As instructed, adding the - if_ath_load="YES" line to the - /boot/loader.conf file will - enable loading this module dynamically at boot time. - - In some cases; however, there is no associated module. - This is mostly true for certain subsystems and very important - drivers, for instance, the fast file system - (FFS) is a required option in the kernel. - As is network support (INET). Unfortunately the only way to - tell if a driver is required is to check for the module - itself. + Adding if_ath_load="YES" to + /boot/loader.conf will enable loading this + module dynamically at boot time. + + In some cases, there is no associated module. This is + mostly true for certain subsystems. One way to tell if a driver + is available is to check for the module itself. - It is easy to remove support for a - device or option and end up with a broken kernel. For - example, if the &man.ata.4; driver is removed from the kernel - configuration file, a system using ATA - disk drivers may not boot without the module added to - loader.conf. When in doubt, check for - the module and then just leave support in the kernel. + It is easy to remove support for a device or option and + end up with a broken kernel. For example, if the &man.ata.4; + driver is removed from the kernel configuration file, a system + using ATA disk drivers may not boot. When + in doubt, just leave support in the kernel. @@ -281,78 +261,66 @@ following line in &man.loader.conf.5;: to build the kernel. - First, let us take a quick tour of the kernel build - directory. All directories mentioned will be relative to the - main /usr/src/sys directory, which is - also accessible through the path name /sys. - There are a number of subdirectories here representing different - parts of the kernel, but the most important for our purposes - are arch/conf, - where you will edit your custom kernel configuration, and - compile, which is the staging area where - your kernel will be built. arch - represents one of i386, - amd64, ia64, - powerpc, sparc64, - or pc98 (an alternative development branch - of PC hardware, popular in Japan). Everything inside a + The kernel build is located at /usr/src/sys. It contains a + number of subdirectories representing different parts of the + kernel. These include arch/conf, + which contains the kernel configuration file, and + compile, which is the + staging area where the kernel will be built. + arch contains subdirectories for each + supported architecture: i386, amd64, ia64, powerpc, sparc64, and pc98. Everything inside a particular architecture's directory deals with that architecture - only; the rest of the code is machine independent code common - to all platforms to which &os; could potentially be ported. - Notice the logical organization of the directory structure, - with each supported device, file system, and option in its - own subdirectory. - - The examples in this chapter assume that you are using - the i386 architecture. If your system has a different - architecture you need to change the path names - accordingly. + only and the rest of the code is machine independent code common + to all platforms. Notice the logical organization of the + directory structure, with each supported device, file system, + and option in its own subdirectory. + + The examples in this chapter assume the i386 architecture. + If the system has a different architecture, change the path + names accordingly. - If the directory /usr/src/ does not - exist on your system (or if it is empty), then the sources - have not been installed. The easiest way to install the full - source is to use &man.csup.1; as described in . You should also create a symlink to + If /usr/src/ does + not exist or it is empty, source has not been installed. The + easiest way to install source is to use + svn as described in . One should also create a symlink to /usr/src/sys/: &prompt.root; ln -s /usr/src/sys /sys - Next, change to the - arch/conf - directory and copy the GENERIC - configuration file to the name you want to give your kernel. - For example: + Next, cd to arch/conf + and copy the GENERIC configuration file to + the name of the custom kernel. For example: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MYKERNEL - Traditionally, this name is in all capital letters and, - if you are maintaining multiple &os; machines with different - hardware, it is a good idea to name it after your machine's - hostname. We will call it - MYKERNEL for - the purpose of this example. + Traditionally, this name is in all capital letters. When + maintaining multiple &os; machines with different hardware, it + is a good idea to name it after the machine's hostname. This + example uses + MYKERNEL. - Storing your kernel configuration file directly under - /usr/src can be a bad idea. If you are - experiencing problems it can be tempting to just delete - /usr/src and start again. After doing - this, it usually only takes a few seconds for - you to realize that you have deleted your custom kernel - configuration file. Also, do not edit - GENERIC directly, as it may get - overwritten the next time you - update your source - tree, - and your kernel modifications will be lost. - - You might want to keep your kernel configuration file - elsewhere, and then create a symbolic link to the file in - the i386 - directory. + When finished customizing the kernel configuration file, + save a backup copy to a location outside of /usr/src. Do not edit + GENERIC directly. + + Alternately, keep the kernel configuration file elsewhere + and create a symbolic link to the file in i386. For example: @@ -362,43 +330,36 @@ following line in &man.loader.conf.5;: &prompt.root; ln -s /root/kernels/MYKERNEL - Now, edit + Edit MYKERNEL - with your favorite text editor. If you are just starting out, - the only editor available will probably be - vi, which is too complex to explain - here, but is covered well in many books in the bibliography. However, &os; - does offer an easier editor called ee - which, if you are a beginner, should be your editor of choice. - Feel free to change the comment lines at the top to reflect - your configuration or the changes you have made to differentiate + with a text editor. The default editor is + vi, whose usage is covered well in + many books in the bibliography. An easier editor + for beginners, called ee, is also + available. Feel free to change the comment lines at the top to + reflect the configuration or the changes made to differentiate it from GENERIC. - SunOS - If you have built a kernel under &sunos; or some other BSD - operating system, much of this file will be very familiar to - you. If you are coming from some other operating system such - as DOS, on the other hand, the GENERIC - configuration file might seem overwhelming to you, so follow - the descriptions in the - Configuration File + If the GENERIC configuration file seems + overwhelming, follow the descriptions in the Configuration File section slowly and carefully. - If you sync your source tree - with the latest sources of the &os; project, be sure to always - check the file /usr/src/UPDATING before - you perform any update steps. This file describes any + After syncing the source tree + with the latest sources, always read + /usr/src/UPDATING + before performing any update steps. This file describes any important issues or areas requiring special attention within the updated source code. /usr/src/UPDATING always matches - your version of the &os; source, and is therefore more up - to date with new information than this handbook. + the version of the &os; source and contains more up-to-date + information than this Handbook. - You must now compile the source code for the kernel. + After saving the edits, compile the source code for the + kernel. Building a Kernel @@ -409,14 +370,15 @@ following line in &man.loader.conf.5;: - Change to the /usr/src directory: + cd to /usr/src: &prompt.root; cd /usr/src - Compile the kernel: + Compile the new kernel by specifying the name of the + custom kernel configuration file: &prompt.root; make buildkernel KERNCONF=MYKERNEL @@ -429,52 +391,49 @@ following line in &man.loader.conf.5;: - By default, when you build a custom kernel, - all kernel modules will be rebuilt as - well. If you want to update a kernel faster or to build only - custom modules, you should edit - /etc/make.conf before starting to build - the kernel: + By default, when a custom kernel is compiled, + all kernel modules are rebuilt as well. + To update a kernel faster or to build only custom modules, + edit /etc/make.conf before starting to + build the kernel: MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs - This variable sets up a list of modules to build instead - of all of them. + This variable specifies the list of modules to build + instead the default of building of all of them. WITHOUT_MODULES = linux acpi sound ntfs This variable sets up a list of top level modules to - exclude from the build process. For other variables which - you may find useful in the process of building kernel, refer - to &man.make.conf.5; manual page. + exclude from the build process. For other available + variables, refer to &man.make.conf.5;. - /boot/kernel.old + /boot/kernel.old - The new kernel will be copied to the /boot/kernel directory as + The new kernel will be copied to /boot/kernel as /boot/kernel/kernel and the old kernel will be moved to /boot/kernel.old/kernel. - Now, shutdown the system and reboot to use your new kernel. - If something goes wrong, there are some troubleshooting - instructions at the end of this chapter that you may find - useful. Be sure to read the section which explains how to - recover in case your new kernel does not boot. Other files relating to the boot process, such as the boot - &man.loader.8; and configuration are stored in - /boot. Third party or custom modules - can be placed in /boot/kernel, - although users should be aware that keeping modules in sync - with the compiled kernel is very important. Modules not - intended to run with the compiled kernel may result in - instability or incorrectness. + &man.loader.8; and configuration, are stored in /boot. Third party or + custom modules can be placed in /boot/kernel, although users + should be aware that keeping modules in sync with the compiled + kernel is very important. Modules not intended to run with + the compiled kernel may result in instability. @@ -506,22 +465,19 @@ following line in &man.loader.conf.5;: following a # is considered a comment and ignored. The following sections describe each keyword, in the order they are listed in GENERIC. - For an exhaustive list of - architecture dependent options and devices, see the - NOTES file in the same directory as the - GENERIC file. For architecture independent - options, see + For an exhaustive list of architecture dependent options and + devices, refer to NOTES in the same + directory as GENERIC for that architecture. + For architecture independent options, refer to /usr/src/sys/conf/NOTES. - An include directive is - available for use in configuration files. This allows another - configuration file to be logically included in the current - one, making it easy to maintain small changes relative to an - existing file. For example, if you require a - GENERIC kernel with only a small number - of additional options or drivers, this allows you to maintain - only a delta with respect to GENERIC: + An include directive is available for use + in configuration files. This allows another configuration file + to be included in the current one, making it easy to maintain + small changes relative to an existing file. For example, if + only a small number of additional options or drivers are + required, this allows a delta to be maintained with respect + to GENERIC: include GENERIC ident MYKERNEL @@ -531,13 +487,11 @@ options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT - Many administrators will find that this model offers - significant benefits over the historic writing of configuration - files from scratch: the local configuration file will express - only local differences from a GENERIC - kernel and as upgrades are performed, new features added to - GENERIC will be added to the local kernel - unless specifically prevented using + Using this method, the local configuration file expresses + local differences from a GENERIC + kernel. As upgrades are performed, new features added to + GENERIC will be also be added to the local + kernel unless they are specifically prevented using nooptions or nodevice. The remainder of this chapter addresses the contents of a typical configuration file and the role various options and @@ -545,8 +499,7 @@ options IPDIVERT To build a file which contains all available options, - as normally done for testing purposes, run the following - command as root: + run the following command as root: &prompt.root; cd /usr/src/sys/i386/conf && make LINT @@ -559,7 +512,7 @@ options IPDIVERTThe following is an example of the GENERIC kernel configuration file with various additional comments where needed for clarity. This - example should match your copy in + example should match the copy in /usr/src/sys/i386/conf/GENERIC fairly closely. @@ -571,9 +524,9 @@ options IPDIVERTmachine i386 This is the machine architecture. It must be either - amd64, - i386, ia64, - pc98, powerpc, or + amd64, i386, + ia64, pc98, + powerpc, or sparc64. @@ -584,14 +537,11 @@ options IPDIVERT - The above option specifies the type of CPU you have in your - system. You may have multiple instances of the CPU line (if, - for example, you are not sure whether you should use - I586_CPU or I686_CPU), - but for a custom kernel it is best to specify only the CPU - you have. If you are unsure of your CPU type, you can check - the /var/run/dmesg.boot file to view your - boot messages. + This option specifies the type of CPU. It is fine to have + multiple instances of the CPU entries, but for a custom kernel + it is best to specify the CPU. To determine the CPU type, + review the boot messages in + /var/run/dmesg.boot. kernel options @@ -600,37 +550,29 @@ cpu I686_CPU ident GENERIC - This is the identification of the kernel. You should change - this to whatever you named your kernel, - i.e., MYKERNEL - if you have followed the instructions of the previous examples. - The value you put in the ident string will - print when you boot up the kernel, so it is useful to give the - new kernel a different name if you want to keep it separate - from your usual kernel (e.g., you want to build an experimental - kernel). + This is the identification of the kernel. Change + this to the new kernel name, such as + MYKERNEL. + The value in the ident string will + print when the kernel boots. #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. - The &man.device.hints.5; is - used to configure options of the device drivers. The default - location that &man.loader.8; will check at boot time is - /boot/device.hints. Using the - hints option you can compile these hints - statically into your kernel. Then there is no need to create a - device.hints file in - /boot. + &man.device.hints.5; is used to configure options for device + drivers. The default location is + /boot/device.hints. The + hints option compiles these hints statically + into the kernel so that there is no need to create + /boot/device.hints. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols - The normal build process of &os; includes - debugging information when building the kernel with the - option, which enables debugging - information when passed to &man.gcc.1;. + This option enables debugging information when passed to + &man.gcc.1;. options SCHED_ULE # ULE scheduler @@ -638,17 +580,14 @@ cpu I686_CPU options PREEMPTION # Enable kernel thread preemption - Allows threads that are in the kernel to be preempted - by higher priority threads. It helps with interactivity and - allows interrupt threads to run sooner rather than - waiting. + Allows kernel threads to be preempted by higher priority + threads. This helps with interactivity and allows interrupt + threads to run sooner rather than waiting. options INET # InterNETworking - Networking support. Leave this in, even if you do not - plan to be connected to a network. Most programs require at - least loopback networking (i.e., making network connections - within your PC), so this is essentially mandatory. + Networking support. This is mandatory as most programs + require at least loopback networking. options INET6 # IPv6 communications protocols @@ -657,40 +596,38 @@ cpu I686_CPU options FFS # Berkeley Fast Filesystem This is the basic hard drive file system. Leave it in if - you boot from the hard disk. + the system boots from the hard disk. options SOFTUPDATES # Enable FFS Soft Updates support - This option enables Soft Updates in the kernel, this will - help speed up write access on the disks. Even when this + This option enables Soft Updates in the kernel which helps + to speed up write access on the disks. Even when this functionality is provided by the kernel, it must be turned on - for specific disks. Review the output from &man.mount.8; to - see if Soft Updates is enabled for your system disks. If you - do not see the soft-updates option then you - will need to activate it using the &man.tunefs.8; (for existing - file systems) or &man.newfs.8; (for new file systems) - commands. + for specific disks. Review the output so &man.mount.8; to + determine if Soft Updates is enabled. If the + soft-updates option is not in the output, it + can be activated using &man.tunefs.8; for existing file systems + or &man.newfs.8; for new file systems. options UFS_ACL # Support for access control lists - This option enables kernel support - for access control lists. This relies on the use of extended + This option enables kernel support for access control lists + (ACLs). This relies on the use of extended attributes and UFS2, and the feature is - described in detail in . - ACLs are enabled by default and should not - be disabled in the kernel if they have been used previously - on a file system, as this will remove the access control lists, - changing the way files are protected in unpredictable - ways. + described in detail in . + ACLs are enabled by default and should not be + disabled in the kernel if they have been used previously on a + file system, as this will remove the ACLs, changing the way + files are protected in unpredictable ways. options UFS_DIRHASH # Improve performance on big directories This option includes functionality to speed up disk operations on large directories, at the expense of using - additional memory. You would normally keep this for a large - server, or interactive workstation, and remove it if you are - using &os; on a smaller system where memory is at a premium and - disk access speed is less important, such as a firewall. + additional memory. Keep this for a large server or interactive + workstation, and remove it from smaller systems where memory is + at a premium and disk access speed is less important, such as a + firewall. options MD_ROOT # MD is a potential root device @@ -709,9 +646,10 @@ cpu I686_CPU options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT - The network file system. Unless you plan to mount - partitions from a &unix; file server over TCP/IP, you can - comment these out. + The network file system (NFS). These + lines can be commented unless the system needs to mount + partitions from a NFS file server over + TCP/IP. kernel options @@ -719,34 +657,32 @@ options NFS_ROOT # NFS options MSDOSFS # MSDOS Filesystem - The &ms-dos; file system. Unless you plan to mount a DOS - formatted hard drive partition at boot time, you can safely - comment this out. It will be automatically loaded the first - time you mount a DOS partition, as described above. Also, - the excellent - emulators/mtools software - allows you to access DOS floppies without having to mount and - unmount them (and does not require MSDOSFS at - all). + The &ms-dos; file system. Unless the system needs to mount + a DOS formatted hard drive partition at boot time, comment this + out. It will be automatically loaded the first time a DOS + partition is mounted. The emulators/mtools package allows + access to DOS floppies without having to mount and unmount + them and does not require MSDOSFS. options CD9660 # ISO 9660 Filesystem - The ISO 9660 file system for CDROMs. Comment it out if - you do not have a CDROM drive or only mount data CDs - occasionally (since it will be dynamically loaded the first - time you mount a data CD). Audio CDs do not need this file + The ISO 9660 file system for CDROMs. Comment it out if the + system does not have a CDROM drive or only mounts data CDs + occasionally since it will be dynamically loaded the first + time a data CD is mounted. Audio CDs do not need this file system. options PROCFS # Process filesystem (requires PSEUDOFS) The process file system. This is a pretend - file system mounted on /proc which allows - programs like &man.ps.1; to give you more information on what - processes are running. Use of PROCFS - is not required under most circumstances, as most - debugging and monitoring tools have been adapted to run without - PROCFS: installs will not mount this file - system by default. + file system mounted on /proc which allows some programs + to provide more information on what processes are running. Use + of PROCFS is not required under most + circumstances, as most debugging and monitoring tools have been + adapted to run without PROCFS. The default + installation will not mount this file system by default. options PSEUDOFS # Pseudo-filesystem framework @@ -757,51 +693,49 @@ options NFS_ROOT # NFS Adds support for GUID - Partition Tables. GPT provides the ability to have a - large number of partitions per disk, 128 in the standard - configuration. + Partition Tables (GPT. GPT + provides the ability to have a large number of partitions per + disk, 128 in the standard configuration. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] - Compatibility with 4.3BSD. Leave this in; some programs - will act strangely if you comment this out. + Compatibility with 4.3BSD. Leave this in as some programs + will act strangely if this is commented out. options COMPAT_FREEBSD4 # Compatible with &os;4 - This option is required - to support applications compiled on older versions of &os; - that use older system call interfaces. It is recommended that - this option be used on all &i386; systems that may - run older applications; platforms that gained support only in - 5.X, such as ia64 and &sparc64;, do not require this - option. + This option is required to support applications compiled on + older versions of &os; that use older system call interfaces. + It is recommended that this option be used on all &i386; systems + that may run older applications. Platforms that gained support + after &os; 4.X, such as ia64 and &sparc64;, do not require + this option. options COMPAT_FREEBSD5 # Compatible with &os;5 - This option is required to - support applications compiled on &os; 5.X versions that - use &os; 5.X system call interfaces. + This option is required to support applications compiled on + &os; 5.X versions that use &os; 5.X system call + interfaces. options COMPAT_FREEBSD6 # Compatible with &os;6 - This option is required to - support applications compiled on &os; 6.X versions that - use &os; 6.X system call interfaces. + This option is required to support applications compiled on + &os; 6.X versions that use &os; 6.X system call + interfaces. options COMPAT_FREEBSD7 # Compatible with &os;7 - This option is required on &os; 8 and above to - support applications compiled on &os; 7.X versions that - use &os; 7.X system call interfaces. + This option is required on &os; 8 and above to support + applications compiled on &os; 7.X versions that use + &os; 7.X system call interfaces. options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI This causes the kernel to pause for 5 seconds before probing - each SCSI device in your system. If you only have IDE hard - drives, you can ignore this, otherwise you can try to lower - this number, to speed up booting. Of course, if you do this - and &os; has trouble recognizing your SCSI devices, you will - have to raise it again. + each SCSI device in the system. If the system only has IDE hard + drives, ignore this or lower the number to speed up booting. + However, if &os; has trouble recognizing the SCSI devices, the + number will have to be raised again. options KTRACE # ktrace(1) support @@ -810,11 +744,11 @@ options NFS_ROOT # NFS options SYSVSHM # SYSV-style shared memory - This option provides for System V shared memory. - The most common use of this is the XSHM extension in X, which - many graphics-intensive programs will automatically take - advantage of for extra speed. If you use X, you will definitely - want to include this. + This option provides for System V shared memory. The + most common use of this is the XSHM extension in X, which many + graphics-intensive programs will automatically take advantage of + for extra speed. If Xorg is + installed, include this. options SYSVMSG # SYSV-style message queues @@ -823,47 +757,44 @@ options NFS_ROOT # NFS options SYSVSEM # SYSV-style semaphores - Support for System V semaphores. Less commonly used + Support for System V semaphores. Less commonly used, but only adds a few hundred bytes to the kernel. - The option of the &man.ipcs.1; - command will list any processes using each of these - System V facilities. + Using with &man.ipcs.1; will list any + processes using each of these System V facilities. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions Real-time extensions added in the 1993 &posix;. Certain - applications in the Ports Collection use these - (such as &staroffice;). + applications in the Ports Collection use these. options KBD_INSTALL_CDEV # install a CDEV entry in /dev This option is required to allow the creation of keyboard - device nodes in /dev. + device nodes in /dev. options ADAPTIVE_GIANT # Giant mutex is adaptive. - Giant is the name of a mutual exclusion mechanism (a - sleep mutex)that protects a large set of kernel resources. + Giant is the name of a mutual exclusion mechanism, a *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***