| 1 |
gabor |
41645 |
<?xml version="1.0" encoding="iso-8859-1"?> |
| 2 |
gabor |
43126 |
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" |
| 3 |
hrs |
43184 |
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd"> |
| 4 |
murray |
10807 |
<!-- $FreeBSD$ --> |
| 5 |
|
|
<!-- The FreeBSD Documentation Project --> |
| 6 |
gabor |
43126 |
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en"> |
| 7 |
|
|
<info><title>Explaining BSD</title> |
| 8 |
|
|
|
| 9 |
murray |
10807 |
|
| 10 |
gabor |
43126 |
<author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation> |
| 11 |
nik |
9009 |
<address><email>grog@FreeBSD.org</email></address> |
| 12 |
gabor |
43126 |
</affiliation></author> |
| 13 |
nik |
9009 |
|
| 14 |
gabor |
43126 |
<legalnotice xml:id="trademarks" role="trademarks"> |
| 15 |
simon |
18123 |
&tm-attrib.freebsd; |
| 16 |
ceri |
22341 |
&tm-attrib.amd; |
| 17 |
simon |
18123 |
&tm-attrib.apple; |
| 18 |
blackend |
34398 |
&tm-attrib.intel; |
| 19 |
simon |
18123 |
&tm-attrib.linux; |
| 20 |
|
|
&tm-attrib.opengroup; |
| 21 |
blackend |
34398 |
&tm-attrib.sparc; |
| 22 |
simon |
18123 |
&tm-attrib.sun; |
| 23 |
blackend |
34398 |
&tm-attrib.unix; |
| 24 |
simon |
18123 |
&tm-attrib.general; |
| 25 |
|
|
</legalnotice> |
| 26 |
|
|
|
| 27 |
gabor |
39534 |
<pubdate>$FreeBSD$</pubdate> |
| 28 |
|
|
|
| 29 |
|
|
<releaseinfo>$FreeBSD$</releaseinfo> |
| 30 |
|
|
|
| 31 |
nik |
9009 |
<abstract> |
| 32 |
|
|
<para>In the open source world, the word <quote>Linux</quote> is almost |
| 33 |
keramida |
10950 |
synonymous with <quote>Operating System</quote>, but it is not the only |
| 34 |
eadler |
48150 |
open source &unix; operating system.</para> |
| 35 |
nik |
9009 |
|
| 36 |
keramida |
10950 |
<para>So what is the secret? Why is BSD not better known? This white |
| 37 |
nik |
9009 |
paper addresses these and other questions.</para> |
| 38 |
|
|
|
| 39 |
|
|
<para>Throughout this paper, differences between BSD and Linux will be |
| 40 |
|
|
noted <emphasis>like this</emphasis>.</para> |
| 41 |
|
|
</abstract> |
| 42 |
gabor |
43126 |
</info> |
| 43 |
nik |
9009 |
|
| 44 |
gabor |
43126 |
<sect1 xml:id="what-is-bsd"> |
| 45 |
nik |
9009 |
<title>What is BSD?</title> |
| 46 |
|
|
|
| 47 |
|
|
<para>BSD stands for <quote>Berkeley Software Distribution</quote>. It is |
| 48 |
|
|
the name of distributions of source code from the University of |
| 49 |
|
|
California, Berkeley, which were originally extensions to AT&T's |
| 50 |
murray |
17355 |
Research &unix; operating system. Several open source operating system |
| 51 |
nik |
9009 |
projects are based on a release of this source code known as |
| 52 |
|
|
4.4BSD-Lite. In addition, they comprise a number of packages from other |
| 53 |
|
|
Open Source projects, including notably the GNU project. The overall |
| 54 |
|
|
operating system comprises:</para> |
| 55 |
|
|
|
| 56 |
|
|
<itemizedlist> |
| 57 |
|
|
<listitem> |
| 58 |
|
|
<para>The BSD kernel, which handles process scheduling, memory |
| 59 |
|
|
management, symmetric multi-processing (SMP), device drivers, |
| 60 |
|
|
etc.</para> |
| 61 |
|
|
</listitem> |
| 62 |
|
|
|
| 63 |
|
|
<listitem> |
| 64 |
|
|
<para>The C library, the base API for the system.</para> |
| 65 |
ceri |
22339 |
|
| 66 |
nik |
9009 |
<para><emphasis>The BSD C library is based on code from Berkeley, not |
| 67 |
|
|
the GNU project.</emphasis></para> |
| 68 |
|
|
</listitem> |
| 69 |
ceri |
22339 |
|
| 70 |
nik |
9009 |
<listitem> |
| 71 |
|
|
<para>Utilities such as shells, file utilities, compilers and |
| 72 |
|
|
linkers.</para> |
| 73 |
ceri |
22339 |
|
| 74 |
nik |
9009 |
<para><emphasis>Some of the utilities are derived from the GNU |
| 75 |
|
|
project, others are not.</emphasis></para> |
| 76 |
|
|
</listitem> |
| 77 |
|
|
|
| 78 |
|
|
<listitem> |
| 79 |
|
|
<para>The X Window system, which handles graphical display.</para> |
| 80 |
|
|
|
| 81 |
|
|
<para>The X Window system used in most versions of BSD is maintained |
| 82 |
eadler |
38183 |
by the |
| 83 |
gabor |
43126 |
<link xlink:href="http://www.X.org/">X.Org project</link>. |
| 84 |
eadler |
38183 |
&os; allows the user to choose from a variety of desktop |
| 85 |
|
|
environments, such as <application>Gnome</application>, |
| 86 |
bcr |
38621 |
<application>KDE</application>, or <application>Xfce</application>; |
| 87 |
eadler |
38183 |
and lightweight window managers like |
| 88 |
|
|
<application>Openbox</application>, |
| 89 |
|
|
<application>Fluxbox</application>, or |
| 90 |
eadler |
38483 |
<application>Awesome</application>.</para> |
| 91 |
nik |
9009 |
</listitem> |
| 92 |
|
|
|
| 93 |
|
|
<listitem> |
| 94 |
|
|
<para>Many other programs and utilities.</para> |
| 95 |
|
|
</listitem> |
| 96 |
|
|
</itemizedlist> |
| 97 |
|
|
</sect1> |
| 98 |
gabor |
39534 |
|
| 99 |
gabor |
43126 |
<sect1 xml:id="what-a-real-unix"> |
| 100 |
gabor |
39534 |
<title>What, a real &unix;?</title> |
| 101 |
nik |
9009 |
|
| 102 |
|
|
<para>The BSD operating systems are not clones, but open source |
| 103 |
simon |
18123 |
derivatives of AT&T's Research &unix; operating system, which is also |
| 104 |
|
|
the ancestor of the modern &unix; System V. This may surprise you. How |
| 105 |
nik |
9009 |
could that happen when AT&T has never released its code as open |
| 106 |
|
|
source?</para> |
| 107 |
|
|
|
| 108 |
simon |
18123 |
<para>It is true that AT&T &unix; is not open source, and in a copyright |
| 109 |
|
|
sense BSD is very definitely <emphasis>not</emphasis> &unix;, but on the |
| 110 |
nik |
9009 |
other hand, AT&T has imported sources from other projects, |
| 111 |
blackend |
34352 |
noticeably the Computer Sciences Research Group (CSRG) of the University of |
| 112 |
nik |
9009 |
California in Berkeley, CA. Starting in 1976, the CSRG started |
| 113 |
|
|
releasing tapes of their software, calling them <emphasis>Berkeley |
| 114 |
|
|
Software Distribution</emphasis> or <emphasis>BSD</emphasis>.</para> |
| 115 |
|
|
|
| 116 |
|
|
<para>Initial BSD releases consisted mainly of user programs, but that |
| 117 |
|
|
changed dramatically when the CSRG landed a contract with the Defense |
| 118 |
dougb |
35938 |
Advanced Research Projects Agency (DARPA) to upgrade the communications |
| 119 |
nik |
9009 |
protocols on their network, ARPANET. The new protocols were known as |
| 120 |
|
|
the <emphasis>Internet Protocols</emphasis>, later |
| 121 |
|
|
<emphasis>TCP/IP</emphasis> after the most important protocols. The |
| 122 |
|
|
first widely distributed implementation was part of 4.2BSD, in |
| 123 |
|
|
1982.</para> |
| 124 |
|
|
|
| 125 |
|
|
<para>In the course of the 1980s, a number of new workstation companies |
| 126 |
simon |
18123 |
sprang up. Many preferred to license &unix; rather than developing |
| 127 |
nik |
9009 |
operating systems for themselves. In particular, Sun Microsystems |
| 128 |
simon |
18123 |
licensed &unix; and implemented a version of 4.2BSD, which they called |
| 129 |
|
|
&sunos;. When AT&T themselves were allowed to sell &unix; commercially, |
| 130 |
nik |
9009 |
they started with a somewhat bare-bones implementation called System |
| 131 |
|
|
III, to be quickly followed by System V. The System V code base did not |
| 132 |
dd |
9826 |
include networking, so all implementations included additional software |
| 133 |
nik |
9009 |
from the BSD, including the TCP/IP software, but also utilities such as |
| 134 |
|
|
the <emphasis>csh</emphasis> shell and the <emphasis>vi</emphasis> |
| 135 |
|
|
editor. Collectively, these enhancements were known as the |
| 136 |
|
|
<emphasis>Berkeley Extensions</emphasis>.</para> |
| 137 |
|
|
|
| 138 |
|
|
<para>The BSD tapes contained AT&T source code and thus required a |
| 139 |
simon |
18123 |
&unix; source license. By 1990, the CSRG's funding was running out, and |
| 140 |
nik |
9009 |
it faced closure. Some members of the group decided to release the BSD |
| 141 |
|
|
code, which was Open Source, without the AT&T proprietary code. |
| 142 |
|
|
This finally happened with the <emphasis>Networking Tape 2</emphasis>, |
| 143 |
|
|
usually known as <emphasis>Net/2</emphasis>. Net/2 was not a complete |
| 144 |
|
|
operating system: about 20% of the kernel code was missing. One of the |
| 145 |
|
|
CSRG members, William F. Jolitz, wrote the remaining code and released |
| 146 |
|
|
it in early 1992 as <emphasis>386BSD</emphasis>. At the same time, |
| 147 |
|
|
another group of ex-CSRG members formed a commercial company called |
| 148 |
gabor |
43126 |
<link xlink:href="http://www.bsdi.com/">Berkeley Software Design Inc.</link> |
| 149 |
nik |
9009 |
and released a beta version of an operating system called |
| 150 |
gabor |
43126 |
<link xlink:href="http://www.bsdi.com/">BSD/386</link>, which was based on |
| 151 |
murray |
24487 |
the same sources. The name of the operating system was later changed |
| 152 |
nik |
9009 |
to BSD/OS.</para> |
| 153 |
|
|
|
| 154 |
|
|
<para>386BSD never became a stable operating system. Instead, two other |
| 155 |
|
|
projects split off from it in 1993: |
| 156 |
gabor |
43126 |
<link xlink:href="http://www.NetBSD.org/">NetBSD</link> and |
| 157 |
|
|
<link xlink:href="&url.base;/index.html">FreeBSD</link>. The two projects |
| 158 |
nik |
9009 |
originally diverged due to differences in patience waiting for |
| 159 |
|
|
improvements to 386BSD: the NetBSD people started early in the year, |
| 160 |
keramida |
10950 |
and the first version of FreeBSD was not ready until the end of the |
| 161 |
nik |
9009 |
year. In the meantime, the code base had diverged sufficiently to |
| 162 |
|
|
make it difficult to merge. In addition, the projects had different |
| 163 |
remko |
24308 |
aims, as we will see below. In 1996, |
| 164 |
gabor |
43126 |
<link xlink:href="http://www.OpenBSD.org/">OpenBSD</link> split off from |
| 165 |
remko |
24308 |
NetBSD, and in 2003, |
| 166 |
gabor |
43126 |
<link xlink:href="http://www.dragonflybsd.org/">DragonFlyBSD</link> split |
| 167 |
murray |
24487 |
off from FreeBSD.</para> |
| 168 |
nik |
9009 |
</sect1> |
| 169 |
gabor |
39534 |
|
| 170 |
gabor |
43126 |
<sect1 xml:id="why-is-bsd-not-better-known"> |
| 171 |
keramida |
10950 |
<title>Why is BSD not better known?</title> |
| 172 |
ceri |
22339 |
|
| 173 |
nik |
9009 |
<para>For a number of reasons, BSD is relatively unknown:</para> |
| 174 |
ceri |
22339 |
|
| 175 |
nik |
9009 |
<orderedlist> |
| 176 |
|
|
<listitem> |
| 177 |
|
|
<para>The BSD developers are often more interested in polishing their |
| 178 |
|
|
code than marketing it.</para> |
| 179 |
|
|
</listitem> |
| 180 |
|
|
|
| 181 |
|
|
<listitem> |
| 182 |
|
|
<para>Much of Linux's popularity is due to factors external to the |
| 183 |
|
|
Linux projects, such as the press, and to companies formed to |
| 184 |
|
|
provide Linux services. Until recently, the open source BSDs had no |
| 185 |
|
|
such proponents.</para> |
| 186 |
|
|
</listitem> |
| 187 |
|
|
|
| 188 |
|
|
<listitem> |
| 189 |
|
|
<para>BSD developers tend to be more experienced than Linux |
| 190 |
|
|
developers, and have less interest in making the system easy to use. |
| 191 |
|
|
Newcomers tend to feel more comfortable with Linux.</para> |
| 192 |
|
|
</listitem> |
| 193 |
|
|
|
| 194 |
|
|
<listitem> |
| 195 |
|
|
<para>In 1992, AT&T sued |
| 196 |
gabor |
43126 |
<link xlink:href="http://www.bsdi.com/">BSDI</link>, |
| 197 |
nik |
9009 |
the vendor of BSD/386, alleging that the product contained |
| 198 |
|
|
AT&T-copyrighted code. The case was settled out of court in |
| 199 |
|
|
1994, but the spectre of the litigation continues to haunt people. |
| 200 |
rene |
47674 |
In March 2000 an article published on the web claimed |
| 201 |
nik |
9009 |
that the court case had been <quote>recently settled</quote>.</para> |
| 202 |
|
|
|
| 203 |
|
|
<para>One detail that the lawsuit did clarify is the naming: in the |
| 204 |
simon |
18123 |
1980s, BSD was known as <quote>BSD &unix;</quote>. With the |
| 205 |
nik |
9009 |
elimination of the last vestige of AT&T code from BSD, it |
| 206 |
simon |
18123 |
also lost the right to the name &unix;. Thus you will see |
| 207 |
|
|
references in book titles to <quote>the 4.3BSD &unix; operating |
| 208 |
nik |
9009 |
system</quote> and <quote>the 4.4BSD operating |
| 209 |
|
|
system</quote>.</para> |
| 210 |
|
|
</listitem> |
| 211 |
|
|
</orderedlist> |
| 212 |
|
|
</sect1> |
| 213 |
|
|
|
| 214 |
gabor |
43126 |
<sect1 xml:id="comparing-bsd-and-linux"> |
| 215 |
nik |
9009 |
<title>Comparing BSD and Linux</title> |
| 216 |
|
|
|
| 217 |
keramida |
10950 |
<para>So what is really the difference between, say, Debian Linux and |
| 218 |
nik |
9009 |
FreeBSD? For the average user, the difference is surprisingly small: |
| 219 |
simon |
18123 |
Both are &unix; like operating systems. Both are developed by |
| 220 |
keramida |
10950 |
non-commercial projects (this does not apply to many other Linux |
| 221 |
|
|
distributions, of course). In the following section, we will look at BSD |
| 222 |
nik |
9009 |
and compare it to Linux. The description applies most closely to |
| 223 |
|
|
FreeBSD, which accounts for an estimated 80% of the BSD installations, |
| 224 |
remko |
24308 |
but the differences from NetBSD, OpenBSD and DragonFlyBSD are small. |
| 225 |
|
|
</para> |
| 226 |
nik |
9009 |
|
| 227 |
|
|
<sect2> |
| 228 |
|
|
<title>Who owns BSD?</title> |
| 229 |
|
|
|
| 230 |
|
|
<para>No one person or corporation owns BSD. It is created and |
| 231 |
|
|
distributed by a community of highly technical and committed |
| 232 |
|
|
contributors all over the world. Some of the components of BSD are |
| 233 |
ceri |
22341 |
Open Source projects in their own right and managed by different |
| 234 |
|
|
project maintainers.</para> |
| 235 |
nik |
9009 |
</sect2> |
| 236 |
|
|
|
| 237 |
|
|
<sect2> |
| 238 |
|
|
<title>How is BSD developed and updated?</title> |
| 239 |
|
|
|
| 240 |
|
|
<para>The BSD kernels are developed and updated following the Open |
| 241 |
|
|
Source development model. Each project maintains a publicly |
| 242 |
eadler |
48151 |
accessible <emphasis>source tree</emphasis> |
| 243 |
|
|
which contains all source files for the |
| 244 |
|
|
project, including documentation and other incidental files. |
| 245 |
|
|
Users can obtain a complete copy of any version.</para> |
| 246 |
nik |
9009 |
|
| 247 |
|
|
<para>A large number of developers worldwide contribute to improvements |
| 248 |
|
|
to BSD. They are divided into three kinds:</para> |
| 249 |
|
|
|
| 250 |
|
|
<itemizedlist> |
| 251 |
|
|
<listitem> |
| 252 |
murray |
10807 |
<para><firstterm>Contributors</firstterm> write code or documentation. |
| 253 |
nik |
9009 |
They are not permitted to commit (add code) directly to the source |
| 254 |
|
|
tree. In order for their code to be included in the system, it |
| 255 |
|
|
must be reviewed and checked in by a registered developer, known |
| 256 |
|
|
as a <emphasis>committer</emphasis>.</para> |
| 257 |
|
|
</listitem> |
| 258 |
|
|
|
| 259 |
|
|
<listitem> |
| 260 |
murray |
10807 |
<para><firstterm>Committers</firstterm> are developers with write |
| 261 |
nik |
9009 |
access to the source tree. In order to become a committer, an |
| 262 |
jmg |
46339 |
individual must show ability in the area in which they are |
| 263 |
nik |
9009 |
active.</para> |
| 264 |
|
|
|
| 265 |
|
|
<para> |
| 266 |
jmg |
46339 |
It is at the individual committer's discretion whether they should |
| 267 |
nik |
9009 |
obtain authority before committing changes to the source tree. In |
| 268 |
|
|
general, an experienced committer may make changes which are |
| 269 |
|
|
obviously correct without obtaining consensus. For example, a |
| 270 |
|
|
documentation project committer may correct typographical or |
| 271 |
|
|
grammatical errors without review. On the other hand, developers |
| 272 |
|
|
making far-reaching or complicated changes are expected to submit |
| 273 |
|
|
their changes for review before committing them. In extreme |
| 274 |
|
|
cases, a core team member with a function such as Principal |
| 275 |
|
|
Architect may order that changes be removed from the tree, a |
| 276 |
murray |
10807 |
process known as <firstterm>backing out</firstterm>. All committers |
| 277 |
nik |
9009 |
receive mail describing each individual commit, so it is not |
| 278 |
|
|
possible to commit secretly.</para> |
| 279 |
|
|
</listitem> |
| 280 |
|
|
|
| 281 |
|
|
<listitem> |
| 282 |
murray |
10807 |
<para>The <firstterm>Core team</firstterm>. FreeBSD and |
| 283 |
|
|
NetBSD each have a core team which manages the project. The |
| 284 |
nik |
9009 |
core teams developed in the course of the projects, and their role |
| 285 |
|
|
is not always well-defined. It is not necessary to be a developer |
| 286 |
|
|
in order to be a core team member, though it is normal. The rules |
| 287 |
|
|
for the core team vary from one project to the other, but in |
| 288 |
|
|
general they have more say in the direction of the project than |
| 289 |
|
|
non-core team members have.</para> |
| 290 |
|
|
</listitem> |
| 291 |
|
|
</itemizedlist> |
| 292 |
|
|
|
| 293 |
|
|
<para>This arrangement differs from Linux in a number of ways:</para> |
| 294 |
|
|
|
| 295 |
|
|
<orderedlist> |
| 296 |
|
|
<listitem> |
| 297 |
|
|
<para>No one person controls the content of the system. In |
| 298 |
ceri |
22341 |
practice, this difference is overrated, since the Principal Architect |
| 299 |
nik |
9009 |
can require that code be backed out, and even in the Linux project |
| 300 |
|
|
several people are permitted to make changes.</para> |
| 301 |
|
|
</listitem> |
| 302 |
|
|
|
| 303 |
|
|
<listitem> |
| 304 |
|
|
<para>On the other hand, there <emphasis>is</emphasis> a central |
| 305 |
|
|
repository, a single place where you can find the entire operating |
| 306 |
|
|
system sources, including all older versions.</para> |
| 307 |
|
|
</listitem> |
| 308 |
|
|
|
| 309 |
|
|
<listitem> |
| 310 |
|
|
<para>BSD projects maintain the entire <quote>Operating |
| 311 |
|
|
System</quote>, not only the kernel. This distinction is only |
| 312 |
|
|
marginally useful: neither BSD nor Linux is useful without |
| 313 |
|
|
applications. The applications used under BSD are frequently the |
| 314 |
|
|
same as the applications used under Linux.</para> |
| 315 |
|
|
</listitem> |
| 316 |
|
|
|
| 317 |
|
|
<listitem> |
| 318 |
rene |
47684 |
<para>As a result of the formalized maintenance of a single SVN |
| 319 |
nik |
9009 |
source tree, BSD development is clear, and it is possible to |
| 320 |
|
|
access any version of the system by release number or by date. |
| 321 |
rene |
47684 |
SVN also allows incremental updates to the system: for example, |
| 322 |
nik |
9009 |
the FreeBSD repository is updated about 100 times a day. Most of |
| 323 |
|
|
these changes are small.</para> |
| 324 |
|
|
</listitem> |
| 325 |
|
|
</orderedlist> |
| 326 |
|
|
</sect2> |
| 327 |
|
|
|
| 328 |
|
|
<sect2> |
| 329 |
|
|
<title>BSD releases</title> |
| 330 |
|
|
|
| 331 |
blackend |
24309 |
<para>FreeBSD, NetBSD and OpenBSD provide the system in three different |
| 332 |
nik |
9009 |
<quote>releases</quote>. As with Linux, releases are assigned a |
| 333 |
|
|
number such as 1.4.1 or 3.5. In addition, the version number has a |
| 334 |
|
|
suffix indicating its purpose:</para> |
| 335 |
|
|
|
| 336 |
|
|
<orderedlist> |
| 337 |
|
|
<listitem> |
| 338 |
|
|
<para>The development version of the system is called |
| 339 |
murray |
10807 |
<firstterm>CURRENT</firstterm>. FreeBSD assigns a number to |
| 340 |
nik |
9009 |
CURRENT, for example FreeBSD 5.0-CURRENT. NetBSD uses a slightly |
| 341 |
|
|
different naming scheme and appends a single-letter suffix which |
| 342 |
|
|
indicates changes in the internal interfaces, for example NetBSD |
| 343 |
blackend |
34398 |
1.4.3G. OpenBSD does not assign a number (<quote>OpenBSD-current</quote>). |
| 344 |
nik |
9009 |
All new development on the system goes into this branch.</para> |
| 345 |
|
|
</listitem> |
| 346 |
|
|
|
| 347 |
|
|
<listitem> |
| 348 |
|
|
<para>At regular intervals, between two and four times a year, the |
| 349 |
murray |
10807 |
projects bring out a <firstterm>RELEASE</firstterm> version of the |
| 350 |
nik |
9009 |
system, which is available on CD-ROM and for free download from |
| 351 |
chern |
9954 |
FTP sites, for example OpenBSD 2.6-RELEASE or NetBSD 1.4-RELEASE. |
| 352 |
nik |
9009 |
The RELEASE version is intended for end users and is the normal |
| 353 |
|
|
version of the system. NetBSD also provides <emphasis>patch |
| 354 |
|
|
releases</emphasis> with a third digit, for example NetBSD |
| 355 |
|
|
1.4.2.</para> |
| 356 |
|
|
</listitem> |
| 357 |
|
|
|
| 358 |
|
|
<listitem> |
| 359 |
|
|
<para>As bugs are found in a RELEASE version, they are fixed, and |
| 360 |
rene |
47684 |
the fixes are added to the SVN tree. In FreeBSD, the resultant |
| 361 |
murray |
10807 |
version is called the <firstterm>STABLE</firstterm> version, while in NetBSD and OpenBSD |
| 362 |
nik |
9009 |
it continues to be called the RELEASE version. Smaller new |
| 363 |
|
|
features can also be added to this branch after a period of test |
| 364 |
rene |
47686 |
in the CURRENT branch. Security and other important bug fixes |
| 365 |
|
|
are also applied to all supported RELEASE versions.</para> |
| 366 |
nik |
9009 |
</listitem> |
| 367 |
|
|
</orderedlist> |
| 368 |
|
|
|
| 369 |
|
|
<para><emphasis>By contrast, Linux maintains two separate code trees: |
| 370 |
|
|
the stable version and the development version. Stable versions |
| 371 |
|
|
have an even minor version number, such as 2.0, 2.2 or 2.4. |
| 372 |
|
|
Development versions have an odd minor version number, such as 2.1, |
| 373 |
|
|
2.3 or 2.5. In each case, the number is followed by a further |
| 374 |
|
|
number designating the exact release. In addition, each vendor adds |
| 375 |
|
|
their own userland programs and utilities, so the name of the |
| 376 |
|
|
distribution is also important. Each distribution vendor also |
| 377 |
|
|
assigns version numbers to the distribution, so a complete |
| 378 |
|
|
description might be something like <quote>TurboLinux 6.0 with kernel |
| 379 |
|
|
2.2.14</quote></emphasis></para> |
| 380 |
|
|
</sect2> |
| 381 |
|
|
|
| 382 |
|
|
<sect2> |
| 383 |
|
|
<title>What versions of BSD are available?</title> |
| 384 |
|
|
|
| 385 |
|
|
<para>In contrast to the numerous Linux distributions, there are only |
| 386 |
remko |
24308 |
four major open source BSDs. Each BSD project maintains its own source |
| 387 |
nik |
9009 |
tree and its own kernel. In practice, though, there appear to be |
| 388 |
|
|
fewer divergences between the userland code of the projects than there |
| 389 |
|
|
is in Linux.</para> |
| 390 |
|
|
|
| 391 |
keramida |
10950 |
<para>It is difficult to categorize the goals of each project: the |
| 392 |
nik |
9009 |
differences are very subjective. Basically,</para> |
| 393 |
|
|
|
| 394 |
|
|
<itemizedlist> |
| 395 |
|
|
<listitem> |
| 396 |
eadler |
46457 |
<para>&os; aims for high performance and ease of use by |
| 397 |
nik |
9009 |
end users, and is a favourite of web content providers. It runs |
| 398 |
eadler |
46457 |
on a <link xlink:href="&url.base;/platforms/">number of platforms</link> |
| 399 |
|
|
and has significantly more users than the other projects.</para> |
| 400 |
nik |
9009 |
</listitem> |
| 401 |
|
|
|
| 402 |
|
|
<listitem> |
| 403 |
|
|
<para>NetBSD aims for maximum portability: <quote>of course it runs |
| 404 |
|
|
NetBSD</quote>. It runs on machines from palmtops to large |
| 405 |
|
|
servers, and has even been used on NASA space missions. It is a |
| 406 |
blackend |
34398 |
particularly good choice for running on old non-&intel; |
| 407 |
nik |
9009 |
hardware.</para> |
| 408 |
|
|
</listitem> |
| 409 |
|
|
|
| 410 |
|
|
<listitem> |
| 411 |
|
|
<para>OpenBSD aims for security and code purity: it uses a |
| 412 |
|
|
combination of the open source concept and rigorous code reviews |
| 413 |
|
|
to create a system which is demonstrably correct, making it the |
| 414 |
|
|
choice of security-conscious organizations such as banks, stock |
| 415 |
|
|
exchanges and US Government departments. Like NetBSD, it runs on |
| 416 |
|
|
a number of platforms.</para> |
| 417 |
|
|
</listitem> |
| 418 |
remko |
24308 |
|
| 419 |
|
|
<listitem> |
| 420 |
|
|
<para>DragonFlyBSD aims for high performance and scalability under |
| 421 |
|
|
everything from a single-node UP system to a massively clustered system. |
| 422 |
|
|
DragonFlyBSD has several long-range technical goals, but focus lies on |
| 423 |
|
|
providing a SMP-capable infrastructure that is easy to understand, |
| 424 |
|
|
maintain and develop for.</para> |
| 425 |
|
|
</listitem> |
| 426 |
nik |
9009 |
</itemizedlist> |
| 427 |
|
|
|
| 428 |
simon |
18123 |
<para>There are also two additional BSD &unix; operating systems which are not |
| 429 |
|
|
open source, BSD/OS and Apple's &macos; X:</para> |
| 430 |
nik |
9009 |
|
| 431 |
|
|
<itemizedlist> |
| 432 |
|
|
<listitem> |
| 433 |
murray |
24487 |
<para>BSD/OS was the oldest of the 4.4BSD derivatives. It |
| 434 |
|
|
was not open source, though source code licenses were |
| 435 |
|
|
available at relatively low cost. It resembled FreeBSD in |
| 436 |
|
|
many ways. Two years after the acquisition of BSDi by |
| 437 |
|
|
Wind River Systems, BSD/OS failed to survive as an |
| 438 |
|
|
independent product. Support and source code may still |
| 439 |
|
|
be available from Wind River, but all new development is |
| 440 |
|
|
focused on the VxWorks embedded operating system.</para> |
| 441 |
nik |
9009 |
</listitem> |
| 442 |
|
|
|
| 443 |
|
|
<listitem> |
| 444 |
gabor |
43126 |
<para><link xlink:href="http://www.apple.com/macosx/server/">&macos; |
| 445 |
|
|
X</link> is the latest version of the operating system for |
| 446 |
gavin |
45696 |
&apple;'s |
| 447 |
|
|
&mac; line. The BSD core of this operating |
| 448 |
gabor |
43126 |
system, <link xlink:href="http://developer.apple.com/darwin/">Darwin</link>, |
| 449 |
murray |
16242 |
is available as a fully functional open source operating |
| 450 |
|
|
system for x86 and PPC computers. The Aqua/Quartz |
| 451 |
|
|
graphics system and many other proprietary aspects of |
| 452 |
simon |
18123 |
&macos; X remain closed-source, however. Several Darwin |
| 453 |
murray |
16242 |
developers are also FreeBSD committers, and |
| 454 |
|
|
vice-versa.</para> |
| 455 |
nik |
9009 |
</listitem> |
| 456 |
|
|
</itemizedlist> |
| 457 |
|
|
</sect2> |
| 458 |
ceri |
22339 |
|
| 459 |
nik |
9009 |
<sect2> |
| 460 |
|
|
<title>How does the BSD license differ from the GNU Public |
| 461 |
|
|
license?</title> |
| 462 |
ceri |
22339 |
|
| 463 |
nik |
9009 |
<para>Linux is available under the |
| 464 |
gabor |
43126 |
<link xlink:href="http://www.fsf.org/copyleft/gpl.html">GNU General Public |
| 465 |
|
|
License</link> (GPL), which is designed to eliminate closed |
| 466 |
nik |
9009 |
source software. In particular, any derivative work of a product |
| 467 |
|
|
released under the GPL must also be supplied with source code if |
| 468 |
|
|
requested. By contrast, the |
| 469 |
gabor |
43126 |
<link xlink:href="http://www.opensource.org/licenses/bsd-license.html">BSD |
| 470 |
|
|
license</link> is less restrictive: binary-only distributions are |
| 471 |
nik |
9009 |
allowed. This is particularly attractive for embedded |
| 472 |
|
|
applications.</para> |
| 473 |
|
|
</sect2> |
| 474 |
|
|
|
| 475 |
|
|
<sect2> |
| 476 |
|
|
<title>What else should I know?</title> |
| 477 |
|
|
|
| 478 |
|
|
<para>Since fewer applications are available for BSD than Linux, the BSD |
| 479 |
|
|
developers created a Linux compatibility package, which allows Linux |
| 480 |
|
|
programs to run under BSD. The package includes both kernel |
| 481 |
|
|
modifications, in order to correctly perform Linux system calls, and |
| 482 |
|
|
Linux compatibility files such as the C library. There is no |
| 483 |
|
|
noticeable difference in execution speed between a Linux application |
| 484 |
|
|
running on a Linux machine and a Linux application running on a BSD |
| 485 |
|
|
machine of the same speed.</para> |
| 486 |
|
|
|
| 487 |
|
|
<para>The <quote>all from one supplier</quote> nature of BSD means that |
| 488 |
|
|
upgrades are much easier to handle than is frequently the case with |
| 489 |
|
|
Linux. BSD handles library version upgrades by providing |
| 490 |
|
|
compatibility modules for earlier library versions, so it is possible |
| 491 |
|
|
to run binaries which are several years old with no problems.</para> |
| 492 |
|
|
</sect2> |
| 493 |
|
|
|
| 494 |
|
|
<sect2> |
| 495 |
|
|
<title>Which should I use, BSD or Linux?</title> |
| 496 |
|
|
|
| 497 |
|
|
<para>What does this all mean in practice? Who should use BSD, who |
| 498 |
|
|
should use Linux?</para> |
| 499 |
ceri |
22339 |
|
| 500 |
nik |
9009 |
<para>This is a very difficult question to answer. Here are some |
| 501 |
|
|
guidelines:</para> |
| 502 |
ceri |
22339 |
|
| 503 |
nik |
9009 |
<itemizedlist> |
| 504 |
|
|
<listitem> |
| 505 |
|
|
<para><quote>If it ain't broke, don't fix it</quote>: If you already |
| 506 |
|
|
use an open source operating system, and you are happy with it, |
| 507 |
keramida |
10950 |
there is probably no good reason to change.</para> |
| 508 |
nik |
9009 |
</listitem> |
| 509 |
ceri |
22339 |
|
| 510 |
nik |
9009 |
<listitem> |
| 511 |
|
|
<para>BSD systems, in particular FreeBSD, can have notably higher |
| 512 |
keramida |
10950 |
performance than Linux. But this is not across the board. In many |
| 513 |
nik |
9009 |
cases, there is little or no difference in performance. In some |
| 514 |
|
|
cases, Linux may perform better than FreeBSD.</para> |
| 515 |
|
|
</listitem> |
| 516 |
|
|
|
| 517 |
|
|
<listitem> |
| 518 |
|
|
<para>In general, BSD systems have a better reputation for |
| 519 |
|
|
reliability, mainly as a result of the more mature code |
| 520 |
|
|
base.</para> |
| 521 |
|
|
</listitem> |
| 522 |
|
|
|
| 523 |
|
|
<listitem> |
| 524 |
keramida |
28288 |
<para>BSD projects have a better reputation for the quality and |
| 525 |
keramida |
28297 |
completeness of their documentation. The various documentation |
| 526 |
keramida |
28288 |
projects aim to provide actively updated documentation, in many |
| 527 |
|
|
languages, and covering all aspects of the system.</para> |
| 528 |
|
|
</listitem> |
| 529 |
|
|
|
| 530 |
|
|
<listitem> |
| 531 |
nik |
9009 |
<para>The BSD license may be more attractive than the GPL.</para> |
| 532 |
|
|
</listitem> |
| 533 |
|
|
|
| 534 |
|
|
<listitem> |
| 535 |
ceri |
21938 |
<para>BSD can execute most Linux binaries, while Linux can not execute BSD |
| 536 |
|
|
binaries. Many BSD implementations can also execute binaries |
| 537 |
|
|
from other &unix; like systems. As a result, BSD may present an |
| 538 |
|
|
easier migration route from other systems than |
| 539 |
|
|
Linux would.</para> |
| 540 |
nik |
9009 |
</listitem> |
| 541 |
|
|
</itemizedlist> |
| 542 |
|
|
</sect2> |
| 543 |
|
|
|
| 544 |
|
|
<sect2> |
| 545 |
|
|
<title>Who provides support, service, and training for BSD?</title> |
| 546 |
ceri |
22339 |
|
| 547 |
gabor |
43126 |
<para>BSDi / <link xlink:href="http://www.freebsdmall.com">FreeBSD |
| 548 |
|
|
Mall, Inc.</link> have been providing support contracts for |
| 549 |
murray |
24487 |
FreeBSD for nearly a decade.</para> |
| 550 |
nik |
9009 |
|
| 551 |
|
|
<para>In addition, each of the projects has a list of consultants for |
| 552 |
|
|
hire: |
| 553 |
gabor |
43126 |
<link xlink:href="&url.base;/commercial/consult_bycat.html">FreeBSD</link>, |
| 554 |
|
|
<link xlink:href="http://www.netbsd.org/gallery/consultants.html">NetBSD</link>, |
| 555 |
|
|
and <link xlink:href="http://www.openbsd.org/support.html">OpenBSD</link>.</para> |
| 556 |
nik |
9009 |
</sect2> |
| 557 |
|
|
</sect1> |
| 558 |
|
|
</article> |