Jump to content

User:Taxman/BSD and Linux

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Marudubshinki (talk | contribs) at 19:18, 4 September 2005 (Operation Issues: im pretty sure that's what u meant). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

BSD and Linux are two families of open-source computer operating systems. Both are classed as Unix-like because they have a kernel, internals, and libraries, programmed using algorithms and data structures derived from historic AT&T Unix. The most significant non-technical aspect of both families is their availability as free software.


—— Italics highlight terms of art with contextually special meanings ——

The BSD and Linux families each consist of several to many distributions (distros). Each distribution is a specific operating system (OS), with a brand name known to the public through advertising or advocacy. Distributions are created or implemented by groups of software programmers known as developers, who can be paid professionals or volunteers, living anywhere in the world that has an Internet connection.

BSD and Linux distributions are selected by brand name and installed by a system administrator (admin), for the benefit of one or more users, who run or execute BSD or Linux application programs. The classification of BSD and Linux distros by installation packaging system, and the differences and issues of distro installations will be discussed in sections below.

A personal computer owner may be both admin and user. As an admin, the owner may have to make a confusing set of choices about which operating system distribution will best suit their computing needs. Such choices exist infrequently for commercial Windows or Macintosh OS's. BSD and Linux distribution choices, however, can be overwhelming in number, and subtle in their differences and specialties. Distributions are sufficiently different that a careless choice can lead to lost productivity. Lost time and effort can result if the OS is used in a way that other users have not thoroughly tested, or if the new admin/user lacks the distro installation and configuration skills typically assumed by the community. Good advice is to choose a distribution that clusters new users with an existing user community doing the same type of computing at the same average skill level.


Scope

  • This article introduces new admin/users to the BSD and Linux experiences, especially as they may be unfamiliar from experiences installing and using the commercial operating systems of Microsoft Windows and Apple Macintosh at home, school, and workplace.
  • This article intends to assist admin/users in either making a migration consumer choice among the many BSD and Linux operating systems, or choosing to keep their current OS.
  • Also this article attempts to clarify the general similarities and differences between BSD and Linux families, with specific differences highlighted by examples comparing distributions sampled from each family.
  • Finally, this article attempts to parse the phenomenon of OS advocacy by explaining it, describing the problems it causes, and neutrally summarizing the user group positions of pro and con issue advocates.

Readers are assumed to have previously used computer applications such as browsers and word processors, and to have installed, reinstalled, upgraded, or at least configured applications for a desktop commercial operating system. An example of configuration is changing the home page of a browser. Readers are not assumed to have any knowledge of programming, but are assumed interested in the OS consumer choice issues raised by programming and programming businesses.

Differences are encountered by admin/users during several BSD and Linux system implementation phases:

  1. advocacy
  2. packaging systems
  3. supported hardware
  4. installation
  5. configuration
  6. administration
  7. operation
  8. applications

Specific examples can obsolesce rapidly due to competition among distribution developers. For example, a developer might decide to eliminate a specific difference that they see featured on this page.

  • FreeBSD will be used as a specific BSD distribution example, since it has one of the largest of the BSD distribution communities.
  • Slackware will be used as a specific Linux distribution example, since it is the oldest Linux distribution with several further distribution forks.

FreeBSD vs. Slackware here is only a sample to assist the general comparison of BSD and Linux. A comprehensive comparison is beyond the scope of this atricle.

Similarities

General Similarities

Because the BSD vs. Linux debate is so common, it may be easy to forget all the similarities.

BSD and Linux distros are generally available as free downloads, but lacking some proprietary programs that are packaged with the paid versions. Downloading typically very large OS distributions can be difficult to impossible using dialup internet connections. Fortunately many distros are available on CDR discs from free software copy vendors, by internet order and postal mail delivery for a few dollars each.

Specific Similarities

BSD and Linux operating systems share much of the same functionality. They are often able to run programs coded for the other system. When a complete desktop environment, such as GNOME or KDE is running, the two systems are often difficult to tell apart. BSD can also run most Linux programs due to a compatibility subsystem, which is capable of running even proprietary Linux software. Linux cannot run BSD-specific software, although such software is uncommon. It is the compiled and executable program binaries that are somewhat different for each OS family. Generally, any program binary compiled from source code for BSD can also be compiled as a binary for Linux. However, compiling is a learned computer skill, and it doesn't always work as expected.

BSD and Linux Branches in the UNIX OS Family Tree

File:UnixHistory.jpg Wow, there's more! --> The 14 foot wall-size family tree of UNIX, 1969-2005+ The author says this huge chart may show only 10% of all the distros that have ever existed.

Lists, Descriptions, and Comparisons of BSD and Linux Distros

Differences

Advocacy

Advocacy focuses on the differences among both OS families and brand-specific distributions. There are many similarities forgotten when families or specific OS's are contrasted. Similarities will be discussed prior to the differences.

Both BSD and Linux have dedicated user and developer communities. Every OS community makes a heavy investment of personal time, in distro implementing, and user learning to install, configure, and operate a branded OS. This focus of time and effort often leads to intense emotional investment. It sometimes results in overzealous advocacy leading to personal disputes that can harm OS communities. Emotional attachment to a consumer choice is familiar from branded mechandise loyalty toward designer clothing and automobiles. Rarely, extreme OS advocacy can take on an unhealthy similarity to religious persuasion, known to psychology as becoming a true believer. (See operating system advocacy).

Advocacy excess led to bad mass-media publicity for BSD and Linux (see DeCSS). Bad publicity can politically assist commercial OS competitors, or digital rights management organizations, who are lobbying for laws to prevent the use of free software in government regulated hardware, such as cable and satellite TV decoders.

Hostile counter-advocacy is an important special case that will be sociologically and psychologically analyzed in its own section at the end of this article.

A positive value of rational, ethical, and consumer-oriented advocacy is that it can replace paid advertising that may not exist for free OS distributions.

Distro Installation Packaging Classification

Distribution installation packaging is sufficiently complex as to be shared by a number of distros. There are several standardly named package systems:

BSD package systems

  • pkg/ports
  • pkgsrc
  • An OpenBSD user claimed FreeBSD ports is superior to most Linux packages (why?).

Linux package systems

  • apt
  • portage
  • yum
  • rpm
  • Although, apt and portage are original Linux package systems, both are being used in BSD eviroment.
  • The Gentoo Linux portage system has similar advantages to BSD ports, it being FreeBSD ports re-written in Python.

Hardware Issues

  • Commercial UNIX is usually designed for a specific hardware architecture intended for enterprise applications. Redundancy, hot-swap/hot-plug (even some hot CPU swaps), and other technologies to minimise enterprise downtime. Commercial UNIX companies advertise five 9's reliability; 99.999% uptime, or about 15 minutes downtime per year. The free BSD and Linux distros are working toward these goals, but specific hardware gives commercial UNIX a probably unbeatable reliability advantage.

Installation Issues

BSD and Linux installation experiences range from fairly easy to difficult, with occasional complete installation failures. New admin/users may not be aware that how the distro package installer works can have a significant effect on their satisfaction with choice of OS brand. Installations may need to be repeated. A difficult install tends to discourage learning the next phase of OS configuration and operation. A complete failure is usually due to choosing a distro with a small range of supported hardware. Admin/users should make an effort to learn the distro's likely supported hardware range before finalizing an OS brand name choice.

Configuration Issues

  • Because Linux is less centrally organized than BSD, it's better for hacking, customizing, and experimenting.
  • Because BSD is more centrally organized, it's better for productivity, more closely approaching commercial UNIX.

Administration and Distro Release issues

  • All BSD's have nearly the same file structure. File structures and file locations differ between BSD and Linux. File structures also differ among GNU/Linux distros.
  • A FreeBSD user claimed that unlike any Linux distro, FreeBSD is designed with the system administrator in mind. The everyday small admin tasks are handled for you. A filesystem hierarchy is standard to almost everything in the system. It's a complete OS where everything is built to work together. There is a working package management system (which one?) that is in continuous development.
  • Linux avoids compatibility issues with major filesystem changes, since the new filesystem only becomes available after a major version increment (like 4.x to 5.0). The recommended method of major version upgrade is to backup your data, reformat the drives, install Linux from scratch, and restore your data. This procedure implements benefits of the new filesystem without losing data due to the transition. Note the desireabilty of choosing a Linux distro who's default install is closest to your custom configuration.
  • Linux systems require more administration time to keep them working.
  • Linux things change unexpectedly from one distro version to the next.
  • In the middle of the Linux 2.4 stable series they replaced the VM subsystem (instead of during the development series).
  • In a 2004 stable series, Linux 2.6 changed the scheduler, and VM again.

Operation Issues

  • bash, an extended version of the original sh is the default shell on most Linux operating systems as well as on MacOS X. bash is well-suited to both interactive use and shell programming and is used for both on these systems. Many of these systems link sh to bash.
  • FreeBSD, NetBSD and DragonFlyBSD default to using csh for root and new users, with pdksh, a completely sh-compatible shell, for use with scripts - linking pdksh to sh. OpenBSD defaults to a modified pdksh which has extended functionality. csh is the default for shell usage because of it's Unix heritage, which traditionally favours csh to other shells.

Application Issues

-

Developer Communities Organizational Styles

Generally, BSD is more centralized than Linux. The BSD OS (including Darwin and Tru64) is more properly compared to Linux OS, while the FreeBSD distribution is more properly compared to Slackware, Red Hat, SuSE, Debian, or Gentoo distributions.

Linux by itself can refer to the bare Linux kernel itself, or more commonly to any system based on that kernel. To function as an operating system, other utilities (file and system utilities, shells, etc. see the GNU project) are required. These other utilities are gathered from various sources and collected together with the kernel by various groups in distributions ("distros"). Kernel and system utilities are developed independently and merged together to form an operating system. This means that the Linux kernel has a version, and all the utilities in the operating system have their own versions unrelated to the kernel.

BSD presents as more centralized. The kernel and basic system utilities are developed, versioned, and distributed together. Other programs, such as X and web browsers, can be brought in from elsewhere, but the basic system comes from one source and is designed specifically for BSD. Being versioned together in the same CVS tree affects interfaces between the parts. The parts need only to function in cooperation with other parts from the same supplier and time period, allowing nonportable assumptions to be made. The concept of a kernel version different from the rest of the system is not significant in BSD.

Linux is often claimed to be fragmented, yet the BSD OS family is also fragmented. There are quite a number of Linux distributions that all create their own patchwork of versions of all related components. While this sometimes applies to BSD (e.g., DragonFly BSD has multiple major versions in parallel use), the number of library version combinations and packaging decisions that one will encounter, is much lower if one does not consider NetBSD, OpenBSD, Darwin, Tru64, and others.

Centralized and distributed can each be better, and both models have their advocates; for example, focusing security or flexibility. BSD and Linux projects are not equal in size by number of contributors. A model that works for one doesn't necessarily work for the other.

Licensing

BSD

Almost all code in a BSD operating system is licensed under one of the BSD-styled licenses. This type of license puts very few restrictions on what can be done with code placed under it. Depending on the version of the license, the restrictions can be as simple as leaving credit in the documentation and keeping the license in place (thus they cannot claim an original work), allowing for such code to be put under additional licenses, including the GPL. Other possible restrictions include that the they cannot claim that the previous contributors endorse the derivative, must list the copyright holder in any advertisements for derivatives and they cannot hold the contributors liable for any mistakes in the code. After meeting those restrictions, essentially anything else can be done with the code, including distributing closed-source modified versions.

The BSD licenses are designed to allow exploitation of the code to the fullest extent, saving resources and preventing parties from duplicating already completed work.

Linux

The Linux kernel and many of the utilities commonly distributed with it are under the GNU General Public License (GPL). The GPL allows free use of the software while imposing very precise restrictions upon any parties which use the code.

GPL v2 is the most common free software license in use today, it was designed specifically to make all software Free Software. It does this by requiring that all works derived from GPL v2 licensed code to maintain the same restrictions on the code, which include: releasing the source code to any parties which are supplied a binary derived from the code, making sure all parties which are supplied derivatives have access to the license itself, not obfuscate released code nor to charge for derived works - only services related to the work can be charged. It also prevents any further restrictions to be placed on the licensed code, thus code licensed under the original BSD license cannot be licensed under the GPL v2.

This is intended to prevent the conversion of a program into a proprietary competitor and thus more free by the Free Software Foundation.

For discussion of the advocacy of one license over the other, see BSD and GPL licensing.

Understanding Hostile Counter-Advocacy

The purpose of this section is not to stir up more trouble, but to help explain why some (but not all or even most) traditional BSD workers including development programmers and users, feel resentment toward other new members of the computing community. The purpose of doing this analysis is to help them feel better, because they may feel that no one understands their point of view, or appreciates the effort they have made for nearly 25 years to further the public domain with free software.

Hostile counter advocacy Hostile counter advocacy occurs when users and user groups consistently engage in name-calling, discussion flame wars, and ad hominem personal attacks apparently based only on a preference of OS. All major OS user groups, Windows, Macs, BSD, and Linux user groups have engaged in hostile counter-advocacy (See DeCSS). But outsiders are frequently mystified by a casual observation that BSD user groups are particularly hostile toward Linux user groups, when outsiders observe little distinction between the two. Such hostility resembles the conflict of the Cherons, black-and-white aliens featured in a Star Trek (TOS) episode, "Let That Be Your Last Battlefield." The only difference between the two races of aliens was a mirror reversal of black side and white side.

Historic decline of elite craft workers This type of hostility has reoccurred throughout industrial history, and is related to the Marxian class phenomenon known as proletarianisation. When an industrial craft is new, the relatively few early workers to master the craft become an elite workers group, and have a lot of influence and therefore power over the direction of craft development. For example, this was true of the early powered weaving loom craftspersons in England, who enjoyed considerably more privileges than other workers of their socioeconomic class, including the first adult education night classes. With the passage of time the craft matures, and it is taught to many other workers. As a result wages fall, the early workers' influence wanes, and they often express hostility toward the newer workers. These are psychologically displaced feelings projected onto other people because there is no one else to blame for their personal and collective experience, related to future shock.

Mass migrant discrimination In a closely related social phenomenon, all waves of migrants are treated with varying degrees of contempt simply because they are newbies, who are vaguely perceived as a social threat because of their large numbers. Typical of this was the flaming of America On Line (AOL) ISP users when AOL finally allowed their users to connect to the open internet. Having been held back by regressive AOL system policies, they didn't know the things that other internet users had long taken for granted, such as the good manners of netiquette.

BSD worker marginalization Dating the BSD craft from 4.2BSD in 1982, noncommercial Unix-like development was the exclusive province of BSD workers until the release of the Linux kernel in 1992. While BSD continued to quietly develop without public promotion, Linux became a well-publicized mass movement. By a decade later, BSD workers increasingly noticed that their labor-intensive volunteer efforts to produce free software were being marginalized by a Linux kernel with GNU command utilities that they considered less well crafted than an equivalent BSD kernel with integrated BSD utilities.

CLI advocacy BSD workers had always used a command line interface (CLI), in which a series of word-like commands are typed in following a prompt, which are usually executed by pressing the Enter key (formerly labeled the Return key). The CLI interface requires less program structure (overhead) than a graphic user interface (GUI), so programs execute faster. A CLI also offers better fine-tuning control of the OS configuration. BSD workers believe that a CLI can accomplish nearly every computing task, if only the user would read the documentation for each command known as man pages. However, Microsoft had stopped writing official user manuals circa 1995, because they concluded that users would not read them.

GUI advocacy On the other hand most new users have grown up while using a GUI in Macintosh and later Windows OS's. A GUI offers easier user control of the application program, for example, in moving blocks of text in a word processor. A word processor spends most of its time waiting for user input, so a faster OS is typically of less advantage in a productivity application. A GIU is just plain easier to learn and use. In this regard most new users really are different than BSD workers.

CLI vs. GUI desktop interface symbolism Therefore it wasn't surprising that marginalized BSD workers focused on the GUI as being a symbol of their decline in status. BSD workers were originally academics, and were always persons with high intelligence, prodigious memory, fast reading with comprehension ability, exceptional skills at mathematics and logic, physically dexterous touch typing, and capability of doing extremely difficult abstract work for many years running. Having these exceptional qualities, BSD workers considered themselves an elite group, and rightly so.

Perceived inferiority of GUI users By inverse logic, any user who wanted a GUI, was not like BSD workers. By inverse logical stereotyped extension, GUI users were collectively not smart, had a weak memory, couldn't read well, couldn't type well, and were more or less lazy. That a GUI is easier, is an advantage that does not necessarily impress traditional BSD workers. BSD workers tend to have an attitude attributed to historic Calvinism religion that a desire to do things the harder way is a sign of moral superiority. This is one example of why OS advocacy sometimes resembles religious proselytization.

Identifying Linux with a GUI New users typically request that populist (opposite of elite) Linux developers provide a Windows and Mac-like GUI desktop interface. This GUI desktop is usually the X Window System and can be used with various operating environments. The two most common are GNOME and KDE. BSD workers call the X Window System an optional application and not part of the BSD or Linux OS. New users perceive X Windows from a Microsoft Windows and Apple Macintosh perspective, in that those OS's almost don't exist without the GUI. Therefore new users assume that X Windows is by necessity a part of Linux, and should be a part of BSD.

Identifying BSD with a GUI Some BSD developers have become populist and are packaging BSD with X Windows in a default installation, for example, DesktopBSD. DesktopBSD is no different than FreeBSD running a KDE desktop application, but the user can do a reinstall with less configuration work. There is also a perception advantage. The new user tells others that DesktopBSD installs like an OS is "supposed to". Traditional BSD workers don't think it's "supposed to" install this way, but with waves of new users, what they think is increasingly marginalized, and some of them are increasingly resentful because of it.

Loss of BSD workers' abstract language Language abstractions are a major part of group identity and elite privilege. When large numbers of migrating users begin to redefine concepts, such as what Linux or BSD "is" (e.g., must install with a desktop), then formerly elite BSD workers experience a further loss of status and privileges to name and define OS or application abstractions. They find that they can't even discuss issues in a public newsgroup without frequent off topic debates about what BSD, Linux, and other abstract computing concepts mean. Because identity, investment of effort, and subscription to a cause is closely associated with language, this can result in feelings of losing one's personal identity, feelings of having wasted large portions of one's life, feelings of having engaged in a lost cause, and most importantly, feelings of being unappreciated or even worthlessness. This is a serious challenge to good psychological health, and defensive reactions are psychologically normal, though certainly not good social politics.

Diversity of BSD workers reactions to diminished elite status Some traditional BSD workers resentment of their steadily eroding status results in defensive hostile counter-advocacy toward GUI users generally, and Linux users specifically. This behavior tends to start feuds, since other users can't understand what some traditional BSD workers or users are defending. Obviously not every traditional BSD worker reacts with hostility to a loss of former status. Some accept that the CLI BSD period of history is fading and move on to other interests. Others accept the changes in language, continue to focus on BSD kernel development, and ignore what end users do with GUI. Still others embrace populist change and develop what new users want from them, while continuing to develop what they believe to be the technically superior BSD OS.

Thank you From all those who consent to this statement, thank you to all BSD workers for nearly 25 years of loyal service to the cause of Unix-like OS software, available free to everyone on the planet having a computer. According to two scientific studies, BSD and Linux would each cost over a billion dollars to develop as commercial OS's. The world has changed for the better because of your collective efforts..

1 What is BSD?
2 What, a real UNIX®?
3 Why is BSD not better known?
4 Comparing BSD and Linux