diff --git a/documentation/content/en/books/faq/_index.adoc b/documentation/content/en/books/faq/_index.adoc --- a/documentation/content/en/books/faq/_index.adoc +++ b/documentation/content/en/books/faq/_index.adoc @@ -74,8 +74,7 @@ FreeBSD is a modern operating system for desktops, laptops, servers, and embedded systems with support for a large number of https://www.FreeBSD.org/platforms/[platforms]. It is based on U.C. Berkeley's "4.4BSD-Lite" release, with some "4.4BSD-Lite2" enhancements. -It is also based indirectly on William Jolitz's port of U.C. Berkeley's "Net/2" to the i386(TM), known as "386BSD", -though very little of the 386BSD code remains. +It is also based indirectly on William Jolitz's port of U.C. Berkeley's "Net/2" to the i386(TM), known as "386BSD", though very little of the 386BSD code remains. FreeBSD is used by companies, Internet Service Providers, researchers, computer professionals, students and home users all over the world in their work, education and recreation. @@ -97,8 +96,7 @@ * Do not sue us if it breaks. * Do not remove or modify the license. -Many of us have a significant investment in the project and would certainly not mind a little financial compensation now and then, -but we definitely do not insist on it. +Many of us have a significant investment in the project and would certainly not mind a little financial compensation now and then, but we definitely do not insist on it. We believe that our first and foremost "mission" is to provide code to any and all comers, and for whatever purpose, so that the code gets the widest possible use and provides the widest possible benefit. This, we believe, is one of the most fundamental goals of Free Software and one that we enthusiastically support. @@ -141,8 +139,7 @@ [[differences-to-other-bsds]] === What are the differences between FreeBSD and NetBSD, OpenBSD, and other open source BSD operating systems? -James Howard wrote a good explanation of the history and differences between the various projects, -called https://jameshoward.us/archive/bsd-family-tree/[The BSD Family Tree] which goes a fair way to answering this question. +James Howard wrote a good explanation of the history and differences between the various projects, called https://jameshoward.us/archive/bsd-family-tree/[The BSD Family Tree] which goes a fair way to answering this question. Some of the information is out of date, but the history portion in particular remains accurate. Most of the BSDs share patches and code, even today. @@ -178,7 +175,7 @@ See the extref:{handbook}cutting-edge/[relevant section, current] in the extref:{handbook}[Handbook] for details on running _-CURRENT_. Users not familiar with FreeBSD should not use FreeBSD-CURRENT. -This branch sometimes evolves quite quickly and due to mistake can be un-buildable at times. +This branch sometimes evolves quite quickly and due to mistakes can be un-buildable at times. People that use FreeBSD-CURRENT are expected to be able to analyze, debug, and report problems. [[stable]] @@ -186,13 +183,11 @@ _FreeBSD-STABLE_ is the development branch from which major releases are made. Changes go into this branch at a slower pace and with the general assumption that they have first been tested in FreeBSD-CURRENT. -However, at any given time, the sources for FreeBSD-STABLE may or may not be suitable for general use, -as it may uncover bugs and corner cases that were not yet found in FreeBSD-CURRENT. +However, at any given time, the sources for FreeBSD-STABLE may or may not be suitable for general use, as it may uncover bugs and corner cases that were not yet found in FreeBSD-CURRENT. Users who do not have the resources to perform testing should instead run the most recent release of FreeBSD. _FreeBSD-CURRENT_, on the other hand, has been one unbroken line since 2.0 was released. -For more detailed information on branches see "extref:{releng}[FreeBSD Release Engineering: Creating the Release Branch, rel-branch]", -the status of the branches and the upcoming release schedule can be found on the https://www.FreeBSD.org/releng[Release Engineering Information] page. +For more detailed information on branches see "extref:{releng}[FreeBSD Release Engineering: Creating the Release Branch, rel-branch]", the status of the branches and the upcoming release schedule can be found on the https://www.FreeBSD.org/releng[Release Engineering Information] page. Version {u-rel123-announce}[{rel123-current}] is the latest release from the {rel2-stable} branch; it was released on {rel123-current-date}. Version {u-rel131-announce}[{rel131-current}] is the latest release from the {rel-stable} branch; it was released on {rel131-current-date}. @@ -231,12 +226,10 @@ [[responsible]] === Who is responsible for FreeBSD? -The key decisions concerning the FreeBSD project, such as the overall direction of the project and who is allowed to add code to the source tree, -are made by a link:https://www.FreeBSD.org/administration#t-core[core team] of 9 people. +The key decisions concerning the FreeBSD project, such as the overall direction of the project and who is allowed to add code to the source tree, are made by a link:https://www.FreeBSD.org/administration#t-core[core team] of 9 people. There is a much larger team of more than 350 extref:{contributors}[committers, staff-committers] who are authorized to make changes directly to the FreeBSD source tree. -However, most non-trivial changes are discussed in advance in the <>, -and there are no restrictions on who may take part in the discussion. +However, most non-trivial changes are discussed in advance in the <>, and there are no restrictions on who may take part in the discussion. [[where-get]] === Where can I get FreeBSD? @@ -382,8 +375,7 @@ % tar xvf faq_en.tar.gz .... -If the file is compressed, tar will automatically detect the appropriate format and decompress it correctly, -resulting in a collection of files. +If the file is compressed, tar will automatically detect the appropriate format and decompress it correctly, resulting in a collection of files. The main one is called [.filename]#index.html#, which will contain the whole document, starting with the table of contents linking to the other parts of the document. [[mailing]] @@ -407,9 +399,7 @@ [[training]] === Where can I get commercial FreeBSD training and support? -http://www.ixsystems.com[iXsystems, Inc.], parent company of the http://www.freebsdmall.com/[FreeBSD Mall], -provides commercial FreeBSD and TrueOS software http://www.ixsystems.com/support[support], -in addition to FreeBSD development and tuning solutions. +http://www.ixsystems.com[iXsystems, Inc.], parent company of the http://www.freebsdmall.com/[FreeBSD Mall], provides commercial FreeBSD and TrueOS software http://www.ixsystems.com/support[support], in addition to FreeBSD development and tuning solutions. BSD Certification Group, Inc. provides system administration certifications for DragonFly BSD, FreeBSD, NetBSD, and OpenBSD. Refer to http://www.BSDCertification.org[their site] for more information. @@ -519,10 +509,8 @@ Usually not. The supplied `GENERIC` kernel contains the drivers an ordinary computer will need. -man:freebsd-update[8], the FreeBSD binary upgrade tool, cannot upgrade custom kernels, -another reason to stick with the `GENERIC` kernel when possible. -For computers with very limited RAM, such as embedded systems, -it may be worthwhile to build a smaller custom kernel containing just the required drivers. +man:freebsd-update[8], the FreeBSD binary upgrade tool, cannot upgrade custom kernels, another reason to stick with the `GENERIC` kernel when possible. +For computers with very limited RAM, such as embedded systems, it may be worthwhile to build a smaller custom kernel containing just the required drivers. [[password-encryption]] === Should I use DES, Blowfish, or MD5 passwords and how do I specify which form my users receive? @@ -530,8 +518,7 @@ FreeBSD uses _SHA512_ by default. DES passwords are still available for backwards compatibility with operating systems that still use the less secure password format. FreeBSD also supports the Blowfish and MD5 password formats. -Which password format to use for new passwords is controlled by the `passwd_format` login capability in [.filename]#/etc/login.conf#, -which takes values of `des`, `blf` (if these are available) or `md5`. +Which password format to use for new passwords is controlled by the `passwd_format` login capability in [.filename]#/etc/login.conf#, which takes values of `des`, `blf` (if these are available) or `md5`. See the man:login.conf[5] manual page for more information about login capabilities. [[ffs-limits]] @@ -576,35 +563,30 @@ Read through the Hardware Notes for FreeBSD link:{u-rel123-hardware}[{rel123-current}] or link:{u-rel131-hardware}[{rel131-current}] and search the https://www.FreeBSD.org/search/#mailinglists[mailing list archives] before asking about the latest and greatest hardware. Chances are a discussion about that type of hardware took place just last week. -Before purchasing a laptop, check the archives for {freebsd-questions}, -or possibly a specific mailing list for a particular hardware type. +Before purchasing a laptop, check the archives for {freebsd-questions}, or possibly a specific mailing list for a particular hardware type. [[memory-upper-limitation]] ==== What are the limits for memory? FreeBSD as an operating system generally supports as much physical memory (RAM) as the platform it is running on does. -Keep in mind that different platforms have different limits for memory; -for example i386(TM) without PAE supports at most 4 GB of memory (and usually less than that because of PCI address space) and i386(TM) with PAE supports at most 64 GB memory. +Keep in mind that different platforms have different limits for memory; for example i386(TM) without PAE supports at most 4 GB of memory (and usually less than that because of PCI address space) and i386(TM) with PAE supports at most 64 GB memory. As of FreeBSD 10, AMD64 platforms support up to 4 TB of physical memory. [[memory-i386-over-4gb]] ==== Why does FreeBSD report less than 4 GB memory when installed on an i386(TM) machine? The total address space on i386(TM) machines is 32-bit, meaning that at most 4 GB of memory is addressable (can be accessed). -Furthermore, some addresses in this range are reserved by hardware for different purposes, -for example for using and controlling PCI devices, for accessing video memory, and so on. +Furthermore, some addresses in this range are reserved by hardware for different purposes, for example for using and controlling PCI devices, for accessing video memory, and so on. Therefore, the total amount of memory usable by the operating system for its kernel and applications is limited to significantly less than 4 GB. Usually, 3.2 GB to 3.7 GB is the maximum usable physical memory in this configuration. -To access more than 3.2 GB to 3.7 GB of installed memory (meaning up to 4 GB but also more than 4 GB), -a special tweak called PAE must be used. +To access more than 3.2 GB to 3.7 GB of installed memory (meaning up to 4 GB but also more than 4 GB), a special tweak called PAE must be used. PAE stands for Physical Address Extension and is a way for 32-bit x86 CPUs to address more than 4 GB of memory. It remaps the memory that would otherwise be overlaid by address reservations for hardware devices above the 4 GB range and uses it as additional physical memory (see man:pae[4]). Using PAE has some drawbacks; this mode of memory access is a little bit slower than the normal (without PAE) mode and loadable modules (see man:kld[4]) are not supported. This means all drivers must be compiled into the kernel. -The most common way to enable PAE is to build a new kernel with the special ready-provided kernel configuration file called [.filename]#PAE#, -which is already configured to build a safe kernel. +The most common way to enable PAE is to build a new kernel with the special ready-provided kernel configuration file called [.filename]#PAE#, which is already configured to build a safe kernel. Note that some entries in this kernel configuration file are too conservative and some drivers marked as unready to be used with PAE are actually usable. A rule of thumb is that if the driver is usable on 64-bit architectures (like AMD64), it is also usable with PAE. When creating a custom kernel configuration file, PAE can be enabled by adding the following line: @@ -695,8 +677,7 @@ It is not possible to remove data using the mouse. However, it is possible to copy and paste. -Once the mouse daemon is running as described in the <>, -hold down button 1 (left button) and move the mouse to select a region of text. +Once the mouse daemon is running as described in the <>, hold down button 1 (left button) and move the mouse to select a region of text. Then, press button 2 (middle button) to paste it at the text cursor. Pressing button 3 (right button) will "extend" the selected region of text. @@ -869,8 +850,7 @@ Run `stty -a` to check what the kernel thinks the terminal dimensions are. If they are incorrect, they can be changed by running `stty rows _RR_ cols _CC_`. -Alternatively, if the client machine has package:x11/xterm[] installed, -then running `resize` will query the terminal for the correct dimensions and set them. +Alternatively, if the client machine has package:x11/xterm[] installed, then running `resize` will query the terminal for the correct dimensions and set them. [[connection-delay]] === Why does it take so long to connect to my computer via ssh or telnet? @@ -878,8 +858,7 @@ The symptom: there is a long delay between the time the TCP connection is established and the time when the client software asks for a password (or, in man:telnet[1]'s case, when a login prompt appears). The problem: more likely than not, the delay is caused by the server software trying to resolve the client's IP address into a hostname. -Many servers, including the Telnet and SSH servers that come with FreeBSD, -do this to store the hostname in a log file for future reference by the administrator. +Many servers, including the Telnet and SSH servers that come with FreeBSD, do this to store the hostname in a log file for future reference by the administrator. The remedy: if the problem occurs whenever connecting the client computer to any server, the problem is with the client. If the problem only occurs when someone connects to the server computer, the problem is with the server. @@ -937,8 +916,7 @@ debug.acpi.disabled="timer" .... -Or the BIOS may modify the TSC clock-perhaps to change the speed of the processor when running from batteries, -or going into a power saving mode, but FreeBSD is unaware of these adjustments, and appears to gain or lose time. +Or the BIOS may modify the TSC clock-perhaps to change the speed of the processor when running from batteries, or going into a power saving mode, but FreeBSD is unaware of these adjustments, and appears to gain or lose time. In this example, the `i8254` clock is also available, and can be selected by writing its name to the `kern.timecounter.hardware` man:sysctl[3]. @@ -969,18 +947,14 @@ === What is a lock order reversal? The FreeBSD kernel uses a number of resource locks to arbitrate contention for certain resources. -When multiple kernel threads try to obtain multiple resource locks, there's always the potential for a deadlock, -where two threads have each obtained one of the locks and blocks forever waiting for the other thread to release one of the other locks. +When multiple kernel threads try to obtain multiple resource locks, there's always the potential for a deadlock, where two threads have each obtained one of the locks and blocks forever waiting for the other thread to release one of the other locks. This sort of locking problem can be avoided if all threads obtain the locks in the same order. -A run-time lock diagnostic system called man:witness[4], enabled in FreeBSD-CURRENT and disabled by default for stable branches and releases, -detects the potential for deadlocks due to locking errors, including errors caused by obtaining multiple resource locks with a different order from different parts of the kernel. -The man:witness[4] framework tries to detect this problem as it happens, -and reports it by printing a message to the system console about a `lock order reversal` (often referred to also as LOR). +A run-time lock diagnostic system called man:witness[4], enabled in FreeBSD-CURRENT and disabled by default for stable branches and releases, detects the potential for deadlocks due to locking errors, including errors caused by obtaining multiple resource locks with a different order from different parts of the kernel. +The man:witness[4] framework tries to detect this problem as it happens, and reports it by printing a message to the system console about a `lock order reversal` (often referred to also as LOR). It is possible to get false positives, as man:witness[4] is conservative. -A true positive report _does not_ mean that a system is dead-locked; -instead it should be understood as a warning that a deadlock could have happened here. +A true positive report _does not_ mean that a system is dead-locked; instead it should be understood as a warning that a deadlock could have happened here. [NOTE] ==== @@ -992,16 +966,14 @@ This means that a function that may sleep was called while a mutex (or other unsleepable) lock was held. -The reason this is an error is because mutexes are not intended to be held for long periods of time; -they are supposed to only be held to maintain short periods of synchronization. +The reason this is an error is because mutexes are not intended to be held for long periods of time; they are supposed to only be held to maintain short periods of synchronization. This programming contract allows device drivers to use mutexes to synchronize with the rest of the kernel during interrupts. Interrupts (under FreeBSD) may not sleep. Hence it is imperative that no subsystem in the kernel block for an extended period while holding a mutex. To catch such errors, assertions may be added to the kernel that interact with the man:witness[4] subsystem to emit a warning or fatal error (depending on the system configuration) when a potentially blocking call is made while holding a mutex. -In summary, such warnings are non-fatal, -however with unfortunate timing they could cause undesirable effects ranging from a minor blip in the system's responsiveness to a complete system lockup. +In summary, such warnings are non-fatal, however with unfortunate timing they could cause undesirable effects ranging from a minor blip in the system's responsiveness to a complete system lockup. For additional information about locking in FreeBSD see man:locking[9]. @@ -1058,8 +1030,7 @@ === Do I need to recompile every port each time I perform a major version update? Yes! -While a recent system will run with software compiled under an older release, -things will randomly crash and fail to work once other ports are installed or updated. +While a recent system will run with software compiled under an older release, things will randomly crash and fail to work once other ports are installed or updated. When the system is upgraded, various shared libraries, loadable modules, and other parts of the system will be replaced with newer versions. Applications linked against the older versions may fail to start or, in other cases, fail to function properly. @@ -1097,8 +1068,7 @@ [NOTE] ==== -The new [.filename]#kernel# will be installed to the [.filename]#/boot/kernel# directory along with its modules, -while the old kernel and its modules will be moved to the [.filename]#/boot/kernel.old# directory. +The new [.filename]#kernel# will be installed to the [.filename]#/boot/kernel# directory along with its modules, while the old kernel and its modules will be moved to the [.filename]#/boot/kernel.old# directory. If a mistake is made in the configuration, simply boot the previous version of the kernel. ==== @@ -1300,8 +1270,7 @@ UFS:: UFS CD-ROMs can be mounted directly on FreeBSD. -Mounting disk partitions from Digital UNIX and other systems that support UFS may be more complex, -depending on the details of the disk partitioning for the operating system in question. +Mounting disk partitions from Digital UNIX and other systems that support UFS may be more complex, depending on the details of the disk partitioning for the operating system in question. ext2/ext3:: FreeBSD supports `ext2fs`, `ext3fs`, and `ext4fs` partitions. @@ -1343,8 +1312,7 @@ [[grub-loader]] === How do I boot FreeBSD and Linux(R) using GRUB? -To boot FreeBSD using GRUB, add the following to either [.filename]#/boot/grub/menu.lst# or [.filename]#/boot/grub/grub.conf#, -depending upon which is used by the Linux(R) distribution. +To boot FreeBSD using GRUB, add the following to either [.filename]#/boot/grub/menu.lst# or [.filename]#/boot/grub/grub.conf#, depending upon which is used by the Linux(R) distribution. [.programlisting] .... @@ -1595,8 +1563,7 @@ Generally speaking, no. Deduplication takes up a significant amount of RAM and may slow down read and write disk access times. -Unless one is storing data that is very heavily duplicated, such as virtual machine images or user backups, -it is possible that deduplication will do more harm than good. +Unless one is storing data that is very heavily duplicated, such as virtual machine images or user backups, it is possible that deduplication will do more harm than good. Another consideration is the inability to revert deduplication status. If data is written when deduplication is enabled, disabling dedup will not cause those blocks which were deduplicated to be replicated until they are next modified. @@ -1643,7 +1610,8 @@ The primary configuration file is [.filename]#/etc/defaults/rc.conf# which is described in man:rc.conf[5]. System startup scripts such as [.filename]#/etc/rc# and [.filename]#/etc/rc.d#, which are described in man:rc[8], include this file. -_Do not edit this file!_ Instead, to edit an entry in [.filename]#/etc/defaults/rc.conf#, copy the line into [.filename]#/etc/rc.conf# and change it there. +_Do not edit this file!_ +Instead, to edit an entry in [.filename]#/etc/defaults/rc.conf#, copy the line into [.filename]#/etc/rc.conf# and change it there. For example, to start man:sshd[8], the included OpenSSH daemon: @@ -1707,11 +1675,9 @@ Restart the system using `boot -s` at the loader prompt to enter single-user mode. When prompted for a shell pathname, press kbd:[Enter] and run `mount -urw /` to re-mount the root file system in read/write mode. You may also need to run `mount -a -t ufs` to mount the file system where your favorite editor is defined. -If that editor is on a network file system, either configure the network manually before mounting the network file systems, -or use an editor which resides on a local file system, such as man:ed[1]. +If that editor is on a network file system, either configure the network manually before mounting the network file systems, or use an editor which resides on a local file system, such as man:ed[1]. -In order to use a full screen editor such as man:vi[1] or man:emacs[1], -run `export TERM=xterm` so that these editors can load the correct data from the man:termcap[5] database. +In order to use a full screen editor such as man:vi[1] or man:emacs[1], run `export TERM=xterm` so that these editors can load the correct data from the man:termcap[5] database. After performing these steps, edit [.filename]#/etc/rc.conf# to fix the syntax error. The error message displayed immediately after the kernel boot messages should indicate the number of the line in the file which is at fault. @@ -1724,8 +1690,7 @@ [[keyboard-mappings]] === How can I correct the keyboard mappings for my system? -Refer to the Handbook section on extref:{handbook}l10n/[using localization, using-localization], -specifically the section on extref:{handbook}l10n/[console setup, setting-console]. +Refer to the Handbook section on extref:{handbook}l10n/[using localization, using-localization], specifically the section on extref:{handbook}l10n/[console setup, setting-console]. [[user-quotas]] === Why can I not get user quotas to work properly? @@ -1762,8 +1727,7 @@ === Does FreeBSD support System V IPC primitives? Yes, FreeBSD supports System V-style IPC, including shared memory, messages and semaphores, in the [.filename]#GENERIC# kernel. -With a custom kernel, support may be loaded with the [.filename]#sysvshm.ko#, [.filename]#sysvsem.ko# and [.filename]#sysvmsg.ko# kernel modules, -or enabled in the custom kernel by adding the following lines to the kernel configuration file: +With a custom kernel, support may be loaded with the [.filename]#sysvshm.ko#, [.filename]#sysvsem.ko# and [.filename]#sysvmsg.ko# kernel modules, or enabled in the custom kernel by adding the following lines to the kernel configuration file: [.programlisting] .... @@ -1800,8 +1764,7 @@ [NOTE] ==== -If the root partition cannot be mounted from single-user mode, -it is possible that the partitions are encrypted and it is impossible to mount them without the access keys. +If the root partition cannot be mounted from single-user mode, it is possible that the partitions are encrypted and it is impossible to mount them without the access keys. For more information see the section about encrypted disks in the FreeBSD extref:{handbook}disks/[Handbook, disks-encrypting]. ==== @@ -1920,8 +1883,7 @@ For convenience, `rpc.statd` maps a large amount of memory into its address space. There is nothing terribly wrong with this from a technical standpoint; it just throws off things like man:top[1] and man:ps[1]. -man:rpc.statd[8] maps its status file ([.filename]#/var/db/statd.status#) into its address space; -to save worrying about remapping the status file later when it needs to grow, it maps the status file with a generous size. +man:rpc.statd[8] maps its status file ([.filename]#/var/db/statd.status#) into its address space; to save worrying about remapping the status file later when it needs to grow, it maps the status file with a generous size. [[unsetting-schg]] === Why can I not unset the schg file flag? @@ -1946,12 +1908,9 @@ * `Wired`: pages that are fixed into memory, usually for kernel purposes, but also sometimes for special use in processes. Pages are most often written to disk (sort of a VM sync) when they are in the laundry state, but active or inactive pages can also be synced. -This depends upon the CPU tracking of the modified bit being available, -and in certain situations there can be an advantage for a block of VM pages to be synced, regardless of the queue they belong to. +This depends upon the CPU tracking of the modified bit being available, and in certain situations there can be an advantage for a block of VM pages to be synced, regardless of the queue they belong to. In most common cases, it is best to think of the laundry queue as a queue of relatively unused pages that might or might not be in the process of being written to disk. -The inactive queue contains a mix of clean and dirty pages; -clean pages near the head of the queue are reclaimed immediately to alleviate a free page shortage, -and dirty pages are moved to the laundry queue for deferred processing. +The inactive queue contains a mix of clean and dirty pages; clean pages near the head of the queue are reclaimed immediately to alleviate a free page shortage, and dirty pages are moved to the laundry queue for deferred processing. There are some other flags (e.g., busy flag or busy count) that might modify some of the described rules. @@ -1962,10 +1921,8 @@ The most common is the amount of memory immediately available without reclaiming memory already in use. That is the size of the free pages queue plus some other reserved pages. This amount is exported by the `vm.stats.vm.v_free_count` man:sysctl[8], shown, for instance, by man:top[1]. -Another kind of "free memory" is the total amount of virtual memory available to userland processes, -which depends on the sum of swap space and usable memory. -Other kinds of "free memory" descriptions are also possible, but it is relatively useless to define these, -but rather it is important to make sure that the paging rate is kept low, and to avoid running out of swap space. +Another kind of "free memory" is the total amount of virtual memory available to userland processes, which depends on the sum of swap space and usable memory. +Other kinds of "free memory" descriptions are also possible, but it is relatively useless to define these, but rather it is important to make sure that the paging rate is kept low, and to avoid running out of swap space. [[var-empty]] === What is [.filename]#/var/empty#? @@ -2026,8 +1983,7 @@ It is not possible to start X at a raised `securelevel` because X requires write access to man:io[4]. For more information, see at the man:init[8] manual page. -There are two solutions to the problem: -set the `securelevel` back down to zero or run man:xdm[8] (or an alternative display manager) at boot time before the `securelevel` is raised. +There are two solutions to the problem: set the `securelevel` back down to zero or run man:xdm[8] (or an alternative display manager) at boot time before the `securelevel` is raised. See <> for more information about running man:xdm[8] at boot time. @@ -2125,7 +2081,7 @@ EndSection .... -And be sure to add the following into the "ServerLayout" section: +Add the following into the "ServerLayout" section: [.programlisting] .... @@ -2199,9 +2155,7 @@ Once at a text console, use kbd:[Alt+Fn] to move between them. To return to the X session, switch to the virtual console running X. -If X was started from the command line using `startx`, -the X session will attach to the next unused virtual console, -not the text console from which it was invoked. +If X was started from the command line using `startx`, the X session will attach to the next unused virtual console, not the text console from which it was invoked. For eight active virtual terminals, X will run on the ninth, so use kbd:[Alt+F9]. [[xdm-boot]] @@ -2279,10 +2233,7 @@ # xmodmap -e "keycode 115 = comma" .... -To have the kbd:[Windows] key-mappings enabled automatically every time X is started, -either put the `xmodmap` commands in [.filename]#~/.xinitrc# or, preferably, -create a [.filename]#~/.xmodmaprc# and include the `xmodmap` options, -one per line, then add the following line to [.filename]#~/.xinitrc#: +To have the kbd:[Windows] key-mappings enabled automatically every time X is started, either put the `xmodmap` commands in [.filename]#~/.xinitrc# or, preferably, create a [.filename]#~/.xmodmaprc# and include the `xmodmap` options, one per line, then add the following line to [.filename]#~/.xinitrc#: [.programlisting] .... @@ -2301,11 +2252,7 @@ keycode 117 = F15 .... -For the package:x11-wm/fvwm2[] desktop manager, -one could map the keys so that kbd:[F13] iconifies or de-iconifies the window the cursor is in, -kbd:[F14] brings the window the cursor is in to the front or, if it is already at the front, pushes it to the back, -and kbd:[F15] pops up the main Workplace menu even if the cursor is not on the desktop, -which is useful when no part of the desktop is visible. +For the package:x11-wm/fvwm2[] desktop manager, one could map the keys so that kbd:[F13] iconifies or de-iconifies the window the cursor is in, kbd:[F14] brings the window the cursor is in to the front or, if it is already at the front, pushes it to the back, and kbd:[F15] pops up the main Workplace menu even if the cursor is not on the desktop, which is useful when no part of the desktop is visible. The following entries in [.filename]#~/.fvwmrc# implement the aforementioned setup: @@ -2392,8 +2339,7 @@ === Why does mountd keep telling me it can't change attributes and that I have a bad exports list on my FreeBSD NFS server? The most frequent problem is not understanding the correct format of [.filename]#/etc/exports#. -Review man:exports[5] and the extref:{handbook}network-servers/[NFS, network-nfs] entry in the Handbook, -especially the section on extref:{handbook}[configuring NFS, configuring-nfs]. +Review man:exports[5] and the extref:{handbook}network-servers/[NFS, network-nfs] entry in the Handbook, especially the section on extref:{handbook}[configuring NFS, configuring-nfs]. [[ip-multicast]] === How do I enable IP multicast support? @@ -2408,8 +2354,7 @@ [[network-permission-denied]] === Why do I get an error, Permission denied, for all networking operations? -If the kernel is compiled with the `IPFIREWALL` option, -be aware that the default policy is to deny all packets that are not explicitly allowed. +If the kernel is compiled with the `IPFIREWALL` option, be aware that the default policy is to deny all packets that are not explicitly allowed. If the firewall is unintentionally misconfigured, restore network operability by typing the following as `root`: @@ -2434,15 +2379,13 @@ 01000 fwd 10.0.0.1 from any to foo 21 .... -When a packet with a destination address of _foo_ arrives at the machine with this rule, -the packet is forwarded to _10.0.0.1_, but it still has the destination address of _foo_. +When a packet with a destination address of _foo_ arrives at the machine with this rule, the packet is forwarded to _10.0.0.1_, but it still has the destination address of _foo_. The destination address of the packet is not changed to _10.0.0.1_. Most machines would probably drop a packet that they receive with a destination address that is not their own. Therefore, using a "fwd" rule does not often work the way the user expects. This behavior is a feature and not a bug. -See the <>, the man:natd[8] manual, -or one of the several port redirecting utilities in the link:https://www.FreeBSD.org/ports/[Ports Collection] for a correct way to do this. +See the <>, the man:natd[8] manual, or one of the several port redirecting utilities in the link:https://www.FreeBSD.org/ports/[Ports Collection] for a correct way to do this. [[service-redirect]] === How can I redirect service requests from one machine to another? @@ -2553,8 +2496,7 @@ * A process which is placed inside a set of virtual walls that are designed to prevent someone who breaks into the process from being able to break into the wider system. + The process is only able to run inside the walls. -Since nothing the process does in regards to executing code is supposed to be able to breach the walls, -a detailed audit of its code is not needed in order to be able to say certain things about its security. +Since nothing the process does in regards to executing code is supposed to be able to breach the walls, a detailed audit of its code is not needed in order to be able to say certain things about its security. + The walls might be a user ID, for example. This is the definition used in the man:security[7] and man:named[8] man pages. @@ -2607,8 +2549,7 @@ If it is greater than 0, at least some of the securelevel's protections are enabled. The securelevel of a running system cannot be lowered as this would defeat its purpose. -If a task requires that the securelevel be non-positive, -change the `kern_securelevel` and `kern_securelevel_enable` variables in [.filename]#/etc/rc.conf# and reboot. +If a task requires that the securelevel be non-positive, change the `kern_securelevel` and `kern_securelevel_enable` variables in [.filename]#/etc/rc.conf# and reboot. For more information on securelevel and the specific things all the levels do, consult man:init[8]. @@ -2619,8 +2560,7 @@ One of its biggest problems is that in order for it to be at all effective, all files used in the boot process up until the securelevel is set must be protected. If an attacker can get the system to execute their code prior to the securelevel being set (which happens quite late in the boot process since some things the system must do at start-up cannot be done at an elevated securelevel), its protections are invalidated. -While this task of protecting all files used in the boot process is not technically impossible, if it is achieved, -system maintenance will become a nightmare since one would have to take the system down, at least to single-user mode, to modify a configuration file. +While this task of protecting all files used in the boot process is not technically impossible, if it is achieved, system maintenance will become a nightmare since one would have to take the system down, at least to single-user mode, to modify a configuration file. This point and others are often discussed on the mailing lists, particularly the {freebsd-security}. Search the archives link:https://www.FreeBSD.org/search/[here] for an extensive discussion. @@ -2634,13 +2574,10 @@ `toor` is an "alternative" superuser account, where toor is root spelled backwards. It is intended to be used with a non-standard shell so the default shell for `root` does not need to change. This is important as shells which are not part of the base distribution, but are instead installed from ports or packages, are installed in [.filename]#/usr/local/bin# which, by default, resides on a different file system. -If ``root``'s shell is located in [.filename]#/usr/local/bin# and the file system containing [.filename]#/usr/local/bin#) is not mounted, -`root` will not be able to log in to fix a problem and will have to reboot into single-user mode in order to enter the path to a shell. +If ``root``'s shell is located in [.filename]#/usr/local/bin# and the file system containing [.filename]#/usr/local/bin#) is not mounted, `root` will not be able to log in to fix a problem and will have to reboot into single-user mode in order to enter the path to a shell. -Some people use `toor` for day-to-day `root` tasks with a non-standard shell, leaving `root`, -with a standard shell, for single-user mode or emergencies. -By default, a user cannot log in using `toor` as it does not have a password, -so log in as `root` and set a password for `toor` before using it to login. +Some people use `toor` for day-to-day `root` tasks with a non-standard shell, leaving `root`, with a standard shell, for single-user mode or emergencies. +By default, a user cannot log in using `toor` as it does not have a password, so log in as `root` and set a password for `toor` before using it to login. [[serial]] == Serial Communications @@ -2884,7 +2821,7 @@ The appropriate portions of that message are quoted below. **** -“What is it about this bike shed?” Some of you have asked me. +“What is it about this bike shed?” some of you have asked me. It is a long story, or rather it is an old story, but it is quite short actually. C. Northcote Parkinson wrote a book in the early 1960s, called “Parkinson's Law”, @@ -2905,7 +2842,8 @@ somebody will seize the chance to show that he is doing his job, that he is paying attention, that he is here. In Denmark we call it “setting your fingerprint”. -It is about personal pride and prestige, it is about being able to point somewhere and say “There! I did that.”. +It is about personal pride and prestige, it is about being able to point somewhere and say “There! +I did that.”. It is a strong trait in politicians, but present in most people given the chance. Just think about footsteps in wet cement. @@ -2918,7 +2856,8 @@ [[very-very-cool]] === How cool is FreeBSD? -_Q._ Has anyone done any temperature testing while running FreeBSD? I know Linux(R) runs cooler than DOS, but have never seen a mention of FreeBSD. +_Q._ Has anyone done any temperature testing while running FreeBSD? +I know Linux(R) runs cooler than DOS, but have never seen a mention of FreeBSD. It seems to run really hot. _A._ No, but we have done numerous taste tests on blindfolded volunteers who have also had 250 micrograms of LSD-25 administered beforehand. @@ -2934,7 +2873,8 @@ [[letmeoutofhere]] === Who is scratching in my memory banks?? -_Q._ Is there anything "odd" that FreeBSD does when compiling the kernel which would cause the memory to make a scratchy sound? When compiling (and for a brief moment after recognizing the floppy drive upon startup, as well), a strange scratchy sound emanates from what appears to be the memory banks. +_Q._ Is there anything "odd" that FreeBSD does when compiling the kernel which would cause the memory to make a scratchy sound? +When compiling (and for a brief moment after recognizing the floppy drive upon startup, as well), a strange scratchy sound emanates from what appears to be the memory banks. _A._ Yes! You will see frequent references to "daemons" in the BSD documentation, and what most people do not know is that this refers to genuine, non-corporeal entities that now possess your computer. @@ -3098,8 +3038,7 @@ This message is not enough. While the instruction pointer value is important, it is also configuration dependent as it varies depending on the kernel image. -If it is a [.filename]#GENERIC# kernel image from one of the snapshots, -it is possible for somebody else to track down the offending function, but for a custom kernel, only you can tell us where the fault occurred. +If it is a [.filename]#GENERIC# kernel image from one of the snapshots, it is possible for somebody else to track down the offending function, but for a custom kernel, only you can tell us where the fault occurred. To proceed: @@ -3173,13 +3112,13 @@ ==== The man:make[1] process will have built two kernels. -[.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel# and [.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel.debug#. [.filename]#kernel# was installed as [.filename]#/boot/kernel/kernel#, while [.filename]#kernel.debug# can be used as the source of debugging symbols for man:kgdb[1]. +[.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel# and [.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel.debug#. +[.filename]#kernel# was installed as [.filename]#/boot/kernel/kernel#, while [.filename]#kernel.debug# can be used as the source of debugging symbols for man:kgdb[1]. To capture a crash dump, edit [.filename]#/etc/rc.conf# and set `dumpdev` to point to either the swap partition or `AUTO`. This will cause the man:rc[8] scripts to use the man:dumpon[8] command to enable crash dumps. This command can also be run manually. -After a panic, the crash dump can be recovered using man:savecore[8]; if `dumpdev` is set in [.filename]#/etc/rc.conf#, -the man:rc[8] scripts will run man:savecore[8] automatically and put the crash dump in [.filename]#/var/crash#. +After a panic, the crash dump can be recovered using man:savecore[8]; if `dumpdev` is set in [.filename]#/etc/rc.conf#, the man:rc[8] scripts will run man:savecore[8] automatically and put the crash dump in [.filename]#/var/crash#. [NOTE] ==== @@ -3206,8 +3145,7 @@ [TIP] ==== -If a second computer is available, man:kgdb[1] can be configured to do remote debugging, -including setting breakpoints and single-stepping through the kernel code. +If a second computer is available, man:kgdb[1] can be configured to do remote debugging, including setting breakpoints and single-stepping through the kernel code. ==== [NOTE]