books/: Address more instances of sentences beginning with 'Because...'

As was the case with the previous commit, the intention is to avoid
sentence fragments as well as sentences that can be mistaken for them,
since the handbook isn't written in a style that makes use of
subordinate conjunctions.

While touching the relevant files, I also fixed a few issues pointed
out by PauAmma, and reflowed a sentence as a result.

PR:             252519
Submitted by:   ceri@
Reviewed by:    PauAmma
This commit is contained in:
Ceri Davies 2021-01-12 18:57:32 +01:00 committed by Daniel Ebdrup Jensen
parent a266a60bd2
commit eab1c5d1f6
18 changed files with 43 additions and 43 deletions
en_US.ISO8859-1/books
arch-handbook
developers-handbook
faq
fdp-primer
manpages
po-translations
xml-primer
handbook

View file

@ -1585,7 +1585,7 @@ init.3: lea 0x8(%di),%di # Next entry
if multitasking facilities are used or different privilege if multitasking facilities are used or different privilege
levels are defined. Since the <filename>boot2</filename> levels are defined. Since the <filename>boot2</filename>
client is executed in privilege level 3, but the client is executed in privilege level 3, but the
<acronym>BTX</acronym> server does in privilege level 0, a <acronym>BTX</acronym> server runs in privilege level 0, a
<acronym>TSS</acronym> must be defined:</para> <acronym>TSS</acronym> must be defined:</para>
<figure xml:id="btx-tss"> <figure xml:id="btx-tss">

View file

@ -1634,9 +1634,9 @@
routine (or the other way around, the poll routine may be doing routine (or the other way around, the poll routine may be doing
the real action and the interrupt routine would just call the the real action and the interrupt routine would just call the
poll routine). Why bother about a separate function then? poll routine). Why bother about a separate function then?
Due to different calling conventions. The This has to do with different calling conventions. The
<function>xxx_poll</function> routine gets the struct cam_sim <function>xxx_poll</function> routine gets the struct cam_sim
pointer as its argument when the PCI interrupt routine by common pointer as its argument while the PCI interrupt routine by common
convention gets pointer to the struct convention gets pointer to the struct
<varname remap="structname">xxx_softc</varname> and the ISA interrupt routine <varname remap="structname">xxx_softc</varname> and the ISA interrupt routine
gets just the device unit number. So the poll routine would gets just the device unit number. So the poll routine would

View file

@ -822,16 +822,16 @@ fe80:2::%ep0/64 link#2 UC ep0</screen>
packet processing code in the way BSD IPv4 code is packet processing code in the way BSD IPv4 code is
implemented, kernel stack may overflow due to long function implemented, kernel stack may overflow due to long function
call chain. sys/netinet6 code is carefully designed to call chain. sys/netinet6 code is carefully designed to
avoid kernel stack overflow. Because of this, sys/netinet6 avoid kernel stack overflow, so sys/netinet6
code defines its own protocol switch structure, as "struct code defines its own protocol switch structure, as "struct
ip6protosw" (see ip6protosw" (see
<filename>netinet6/ip6protosw.h</filename>). There is no <filename>netinet6/ip6protosw.h</filename>). There is no
such update to IPv4 part (sys/netinet) for compatibility, such update to IPv4 part (sys/netinet) for compatibility,
but small change is added to its pr_input() prototype. So but small change is added to its pr_input() prototype. So
"struct ipprotosw" is also defined. Because of this, if you "struct ipprotosw" is also defined. As a result, if you
receive IPsec-over-IPv4 packet with massive number of IPsec receive IPsec-over-IPv4 packet with massive number of IPsec
headers, kernel stack may blow up. IPsec-over-IPv6 is okay. headers, kernel stack may blow up. IPsec-over-IPv6 is okay.
(Off-course, for those all IPsec headers to be processed, (Of-course, for those all IPsec headers to be processed,
each such IPsec header must pass each IPsec check. So an each such IPsec header must pass each IPsec check. So an
anonymous attacker will not be able to do such an anonymous attacker will not be able to do such an
attack.)</para> attack.)</para>

View file

@ -679,7 +679,7 @@ options DIAGNOSTIC</programlisting>
&man.dcons.4; provides similar functionality as a serial &man.dcons.4; provides similar functionality as a serial
console. It emulates two serial ports, one for the console console. It emulates two serial ports, one for the console
and <acronym>DDB</acronym>, the other for and <acronym>DDB</acronym>, the other for
<acronym>GDB</acronym>. Because remote memory access is fully <acronym>GDB</acronym>. Since remote memory access is fully
handled by the hardware, the &man.dcons.4; buffer is handled by the hardware, the &man.dcons.4; buffer is
accessible even when the system crashes.</para> accessible even when the system crashes.</para>

View file

@ -310,7 +310,7 @@ int main() {
<indexterm><primary>seteuid</primary></indexterm> <indexterm><primary>seteuid</primary></indexterm>
<para>There are at least 6 different IDs associated with any <para>There are at least 6 different IDs associated with any
given process. Because of this you have to be very careful with given process, and you must therefore be very careful with
the access that your process has at any given time. In the access that your process has at any given time. In
particular, all seteuid applications should give up their particular, all seteuid applications should give up their
privileges as soon as it is no longer required.</para> privileges as soon as it is no longer required.</para>

View file

@ -101,7 +101,7 @@
computer at speeds approaching the speed of light, it often computer at speeds approaching the speed of light, it often
travels considerably slower between two computers.</para> travels considerably slower between two computers.</para>
<para>Because the languages used in data communications are so <para>As the languages used in data communications are so
terse, we usually refer to them as terse, we usually refer to them as
<emphasis>protocols</emphasis> rather than languages.</para> <emphasis>protocols</emphasis> rather than languages.</para>
@ -337,7 +337,7 @@
extract the <emphasis><acronym>PNG</acronym> file</emphasis> extract the <emphasis><acronym>PNG</acronym> file</emphasis>
from it.</para> from it.</para>
<para>Because of the complexity of internetworking, we cannot just <para>Due to the complexity of internetworking, we cannot just
use the <function role="syscall">open</function> system call, or use the <function role="syscall">open</function> system call, or
the <function>open()</function> C function. Instead, we need to the <function>open()</function> C function. Instead, we need to
take several steps to <quote>opening</quote> a socket.</para> take several steps to <quote>opening</quote> a socket.</para>
@ -1381,7 +1381,7 @@ int main() {
<para>Not all protocols are that simple. Many receive a <para>Not all protocols are that simple. Many receive a
request from the client, reply to it, then receive another request from the client, reply to it, then receive another
request from the same client. Because of that, they do request from the same client. As a result, they do
not know in advance how long they will be serving the not know in advance how long they will be serving the
client. Such servers usually start a new process for each client. Such servers usually start a new process for each
client. While the new process is serving its client, the client. While the new process is serving its client, the

View file

@ -2404,7 +2404,7 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
(&man.make.1;, &man.system.3;, &man.popen.3;, and (&man.make.1;, &man.system.3;, &man.popen.3;, and
analogues in higher-level scripting languages like Perl analogues in higher-level scripting languages like Perl
and Tcl) are specified to use the Bourne shell to and Tcl) are specified to use the Bourne shell to
interpret commands. Because the Bourne shell is so often interpret commands. As the Bourne shell is so often
and widely used, it is important for it to be quick to and widely used, it is important for it to be quick to
start, be deterministic in its behavior, and have a small start, be deterministic in its behavior, and have a small
memory footprint.</para> memory footprint.</para>
@ -5037,7 +5037,7 @@ Key F15 A A Menu Workplace Nop</programlisting>
</question> </question>
<answer> <answer>
<para>Because a packet is coming from outside the network <para>A packet is coming from outside the network
unexpectedly. To disable them, set unexpectedly. To disable them, set
<varname>net.link.ether.inet.log_arp_wrong_iface</varname> <varname>net.link.ether.inet.log_arp_wrong_iface</varname>
to <literal>0</literal>.</para> to <literal>0</literal>.</para>

View file

@ -289,7 +289,7 @@ information.</programlisting>
</callout> </callout>
<callout arearefs="co-manpages-macro-example-ls-8"> <callout arearefs="co-manpages-macro-example-ls-8">
<para>A final optional argument is defined. Because no name <para>A final optional argument is defined. Since no name
is specified for the argument, the default of is specified for the argument, the default of
<literal>file ...</literal> is used.</para> <literal>file ...</literal> is used.</para>
</callout> </callout>

View file

@ -472,7 +472,7 @@ A pgpkeys</screen>
A Makefile</screen> A Makefile</screen>
<para>Check the contents of the <para>Check the contents of the
<filename>Makefile</filename>. Because this is a simple <filename>Makefile</filename>. As this is a simple
article, in this case the <filename>Makefile</filename> article, in this case the <filename>Makefile</filename>
can be used unchanged. The <literal>$&os;...$</literal> can be used unchanged. The <literal>$&os;...$</literal>
version string on the second line will be replaced by the version string on the second line will be replaced by the
@ -744,7 +744,7 @@ DOC_PREFIX?= ${.CURDIR}/../../..
<procedure> <procedure>
<step> <step>
<para>Build the translated document. Because the original <para>Build the translated document. As the original
is a book, the generated document is is a book, the generated document is
<filename>book.xml</filename>.</para> <filename>book.xml</filename>.</para>
@ -892,8 +892,8 @@ property 'svn:keywords' set on 'ko_KR.po'</screen>
<step> <step>
<para>Set the <acronym>MIME</acronym> types of the files. <para>Set the <acronym>MIME</acronym> types of the files.
Because these files use the <acronym>UTF-8</acronym> These files use the <acronym>UTF-8</acronym>
character set, that is also specified. To prevent the character set, so that is also specified. To prevent the
version control system from mistaking these files for version control system from mistaking these files for
binary data, the <literal>fbsd:notbinary</literal> binary data, the <literal>fbsd:notbinary</literal>
property is also set:</para> property is also set:</para>

View file

@ -214,7 +214,7 @@
<para>A tag is used to identify where a particular element starts, <para>A tag is used to identify where a particular element starts,
and where the element ends. <emphasis>The tag is not part of and where the element ends. <emphasis>The tag is not part of
the element itself</emphasis>. Because each grammar was the element itself</emphasis>. As each grammar was
normally written to mark up specific types of information, each normally written to mark up specific types of information, each
one will recognize different elements, and will therefore have one will recognize different elements, and will therefore have
different names for the tags.</para> different names for the tags.</para>
@ -596,9 +596,9 @@ example.xml:5: element head: validity error : Element head content does not foll
council delegated this to the American National council delegated this to the American National
Standards Institute (<acronym>ANSI</acronym>).</para> Standards Institute (<acronym>ANSI</acronym>).</para>
<para>Because the &os; Project has not been registered, <para>Since the &os; Project has not been registered,
the owner string is <literal>-//&os;</literal>. As seen the owner string is <literal>-//&os;</literal>. As seen
in the example, the <acronym>W3C</acronym> are not a in the example, the <acronym>W3C</acronym> is not a
registered owner either.</para> registered owner either.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View file

@ -2867,7 +2867,7 @@ Swap: 2048M Total, 2048M Free
</step> </step>
<step> <step>
<para>Use &man.kill.1; to send the signal. Because <para>Use &man.kill.1; to send the signal. As
&man.inetd.8; is owned by &man.inetd.8; is owned by
<systemitem class="username">root</systemitem>, use <systemitem class="username">root</systemitem>, use
&man.su.1; to become &man.su.1; to become
@ -3218,8 +3218,8 @@ Swap: 2048M Total, 2048M Free
<primary>editors</primary> <primary>editors</primary>
</indexterm> </indexterm>
<para>Most &os; configuration is done by editing text files. <para>Most &os; configuration is done by editing text files, so
Because of this, it is a good idea to become familiar with a it is a good idea to become familiar with a
text editor. &os; comes with a few as part of the base system, text editor. &os; comes with a few as part of the base system,
and many more are available in the Ports Collection.</para> and many more are available in the Ports Collection.</para>

View file

@ -217,7 +217,7 @@ Default: F2</screen>
<title>Stage One and Stage Two</title> <title>Stage One and Stage Two</title>
<para>Conceptually, the first and second stages are part of the <para>Conceptually, the first and second stages are part of the
same program on the same area of the disk. Because of space same program on the same area of the disk. Due to space
constraints, they have been split into two, but are always constraints, they have been split into two, but are always
installed together. They are copied from the combined installed together. They are copied from the combined
<filename>/boot/boot</filename> by the &os; installer or <filename>/boot/boot</filename> by the &os; installer or

View file

@ -748,7 +748,7 @@ linuxemu/chapter.xml -->
Network Driver Interface Specification Network Driver Interface Specification
(<acronym>NDIS</acronym>). It includes &man.ndisgen.8; (<acronym>NDIS</acronym>). It includes &man.ndisgen.8;
which can be used to convert a &windowsxp; driver into a which can be used to convert a &windowsxp; driver into a
format that can be used on &os;. Because the &man.ndis.4; format that can be used on &os;. As the &man.ndis.4;
driver uses a &windowsxp; binary, it only runs on &i386; driver uses a &windowsxp; binary, it only runs on &i386;
and amd64 systems. <acronym>PCI</acronym>, CardBus, and amd64 systems. <acronym>PCI</acronym>, CardBus,
<acronym>PCMCIA</acronym>, and <acronym>USB</acronym> <acronym>PCMCIA</acronym>, and <acronym>USB</acronym>
@ -2344,7 +2344,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
referred to as <emphasis>journaling</emphasis>. referred to as <emphasis>journaling</emphasis>.
Meta-data updates are still written synchronously, but only Meta-data updates are still written synchronously, but only
into a small region of the disk. Later on, they are moved into a small region of the disk. Later on, they are moved
to their proper location. Because the logging area is a to their proper location. Since the logging area is a
small, contiguous region on the disk, there are no long small, contiguous region on the disk, there are no long
distances for the disk heads to move, even during heavy distances for the disk heads to move, even during heavy
operations, so these operations are quicker than synchronous operations, so these operations are quicker than synchronous

View file

@ -331,7 +331,7 @@ Done.</screen>
<screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen> <screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen>
<para>&man.gmirror.8; stores one block of metadata at the end of <para>&man.gmirror.8; stores one block of metadata at the end of
the disk. Because <acronym>GPT</acronym> partition schemes the disk. As <acronym>GPT</acronym> partition schemes
also store metadata at the end of the disk, mirroring entire also store metadata at the end of the disk, mirroring entire
<acronym>GPT</acronym> disks with &man.gmirror.8; is not <acronym>GPT</acronym> disks with &man.gmirror.8; is not
recommended. <acronym>MBR</acronym> partitioning is used here recommended. <acronym>MBR</acronym> partitioning is used here
@ -451,7 +451,7 @@ Done.</screen>
<para>Reboot the system to test the new mirror and verify that <para>Reboot the system to test the new mirror and verify that
all data has been copied. The <acronym>BIOS</acronym> will all data has been copied. The <acronym>BIOS</acronym> will
see the mirror as two individual drives rather than a mirror. see the mirror as two individual drives rather than a mirror.
Because the drives are identical, it does not matter which is Since the drives are identical, it does not matter which is
selected to boot.</para> selected to boot.</para>
<para>See <xref linkend="gmirror-troubleshooting"/> if there are <para>See <xref linkend="gmirror-troubleshooting"/> if there are
@ -1431,12 +1431,12 @@ ggate0
<para>A better solution is to use <command>glabel</command> to <para>A better solution is to use <command>glabel</command> to
label the disk devices and use the labels in label the disk devices and use the labels in
<filename>/etc/fstab</filename>. Because <filename>/etc/fstab</filename>.
<command>glabel</command> stores the label in the last sector of Since <command>glabel</command> stores the label in the last
a given provider, the label will remain persistent across sector of a given provider, the label will remain persistent
reboots. By using this label as a device, the file system may across reboots. By using this label as a device, the
always be mounted regardless of what device node it is accessed file-system may always be mounted regardless of what
through.</para> device node it is accessed through.</para>
<note> <note>
<para><command>glabel</command> can create both transient and <para><command>glabel</command> can create both transient and

View file

@ -839,7 +839,7 @@ kern.ipc.shmall=32768</programlisting>
an <application>&xorg;</application> extension which an <application>&xorg;</application> extension which
allows a program to bypass the allows a program to bypass the
<application>&xorg;</application> server and directly <application>&xorg;</application> server and directly
alter the framebuffer. Because it relies on a low level alter the framebuffer. As it relies on a low-level
memory mapping, programs using it must be run as memory mapping, programs using it must be run as
<systemitem class="username">root</systemitem>. The <systemitem class="username">root</systemitem>. The
<acronym>DGA</acronym> extension can be tested and <acronym>DGA</acronym> extension can be tested and

View file

@ -696,7 +696,7 @@ cat changed
The authentication system keeps track of the last one-time The authentication system keeps track of the last one-time
password used, and the user is authenticated if the hash of the password used, and the user is authenticated if the hash of the
user-provided password is equal to the previous password. user-provided password is equal to the previous password.
Because a one-way hash is used, it is impossible to generate Since a one-way hash is used, it is impossible to generate
future one-time passwords if a successfully used password is future one-time passwords if a successfully used password is
captured. The iteration count is decremented after each captured. The iteration count is decremented after each
successful login to keep the user and the login program in sync. successful login to keep the user and the login program in sync.
@ -1196,7 +1196,7 @@ sendmail : PARANOID : deny</programlisting>
<quote>trusted third party</quote> of the system. It is the <quote>trusted third party</quote> of the system. It is the
computer that issues <application>Kerberos</application> computer that issues <application>Kerberos</application>
tickets, which are used for clients to authenticate to tickets, which are used for clients to authenticate to
servers. Because the <acronym>KDC</acronym> is considered servers. As the <acronym>KDC</acronym> is considered
trusted by all other computers in the trusted by all other computers in the
<application>Kerberos</application> realm, it has heightened <application>Kerberos</application> realm, it has heightened
security concerns. Direct access to the KDC should be security concerns. Direct access to the KDC should be

View file

@ -1031,7 +1031,7 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
device provides a 16-character buffer, which allows for better device provides a 16-character buffer, which allows for better
system performance. Bugs in plain 16550 devices prevent the use system performance. Bugs in plain 16550 devices prevent the use
of the 16-character buffer, so use 16550A devices if possible. of the 16-character buffer, so use 16550A devices if possible.
Because single-character-buffer devices require more work by the As single-character-buffer devices require more work by the
operating system than the 16-character-buffer devices, operating system than the 16-character-buffer devices,
16550A-based serial interface cards are preferred. If the 16550A-based serial interface cards are preferred. If the
system has many active serial ports or will have a heavy load, system has many active serial ports or will have a heavy load,
@ -1081,7 +1081,7 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<para>The second method is to configure the <para>The second method is to configure the
<acronym>RS-232</acronym> interface to vary its speed based on <acronym>RS-232</acronym> interface to vary its speed based on
the remote user's connection speed. Because the remote user's connection speed. As
<command>getty</command> does not understand any particular <command>getty</command> does not understand any particular
modem's connection speed reporting, it gives a modem's connection speed reporting, it gives a
<prompt>login:</prompt> message at an initial speed and <prompt>login:</prompt> message at an initial speed and

View file

@ -1282,7 +1282,7 @@ errors: No known data errors</screen>
2&nbsp;TB drive. The usable space is 1&nbsp;TB. When the 2&nbsp;TB drive. The usable space is 1&nbsp;TB. When the
1&nbsp;TB drive is replaced with another 2&nbsp;TB drive, the 1&nbsp;TB drive is replaced with another 2&nbsp;TB drive, the
resilvering process copies the existing data onto the new resilvering process copies the existing data onto the new
drive. Because drive. As
both of the devices now have 2&nbsp;TB capacity, the mirror's both of the devices now have 2&nbsp;TB capacity, the mirror's
available space can be grown to 2&nbsp;TB.</para> available space can be grown to 2&nbsp;TB.</para>
@ -4045,7 +4045,7 @@ vfs.zfs.vdev.cache.size="5M"</programlisting>
Clones can be <emphasis>promoted</emphasis>, reversing Clones can be <emphasis>promoted</emphasis>, reversing
this dependency and making the clone the parent and the this dependency and making the clone the parent and the
previous parent the child. This operation requires no previous parent the child. This operation requires no
additional space. Because the amount of space used by additional space. Since the amount of space used by
the parent and child is reversed, existing quotas and the parent and child is reversed, existing quotas and
reservations might be affected.</entry> reservations might be affected.</entry>
</row> </row>
@ -4201,7 +4201,7 @@ vfs.zfs.vdev.cache.size="5M"</programlisting>
blocks will be checked byte-for-byte to ensure it is blocks will be checked byte-for-byte to ensure it is
actually identical. If the data is not identical, the actually identical. If the data is not identical, the
hash collision will be noted and the two blocks will be hash collision will be noted and the two blocks will be
stored separately. Because <acronym>DDT</acronym> must stored separately. As <acronym>DDT</acronym> must
store the hash of each unique block, it consumes a very store the hash of each unique block, it consumes a very
large amount of memory. A general rule of thumb is large amount of memory. A general rule of thumb is
5-6&nbsp;GB of ram per 1&nbsp;TB of deduplicated data). 5-6&nbsp;GB of ram per 1&nbsp;TB of deduplicated data).