View Single Post
Re: I'm switching over to Linux, got some q's
Old
  (#20)
Pierre-Marie Baty
Roi de France
 
Pierre-Marie Baty's Avatar
 
Status: Offline
Posts: 5,049
Join Date: Nov 2003
Location: 46°43'60N 0°43'0W 0.187A
Default Re: I'm switching over to Linux, got some q's - 02-02-2004

Quote:
Originally Posted by botmeister
Now, you bring up another question. Should I even bother with Linux since you mention BSD? I'm looking at the website of FreeBSD right now. In the meantime, any opinions on BSD would be nice.
According to me, OpenBSD is the best OS in the world. Slash Period.

http://www.openbsd.org/

BSDs have a somewhat different development concept than Linux. Whereas Linux is just a kernel regularly pushed forward under the arbitrary authority of Mr Torvalds, the system that is built on top of it, which we call GNU/Linux, is in fact a merry conglomerate of weird stuff from all horizons. Most of the system base comes from the GNU project (which aims itself at producing a 100% GNU OS, they currently lack just a trustable kernel), and all the rest of the system is a collection of packages randomly picked on the net here and there. There is no real authority in how a Linux system is updated, packaged or audited (is it? can it be?)
A BSD on the other hand, is a minimalistic, yet fully featured Unix, whose development is centered around a core team of "project leaders", who manage, audit and commit changes to the source code. Everybody is welcome to contribute in the development, but unlike in Linux, in BSD your code will be audited by the project leaders before it is committed to the official CVS. In OpenBSD for example, the project leader Theo DeRaadt periodically supervises full sanity checks over the whole source tree, down to auditing every single line of code before validating it, be it in the kernel, in the userland code, or in the official ports. Such a policy, although very demanding, has made OpenBSD the MOST stable AND secure operating system in the world. I know no other operating system which is said to be more stable or more secure against attacks than this one.

There is mostly three "branches" of BSD: FreeBSD, NetBSD and OpenBSD. All three were derived from the original 4.4BSD UNIX from the University of Berkeley. Actually, whereas Linux is an UNIX clone (Linux Is Not UniX), the BSDs *are* UNIX, in the sense that they are the only depositaries of the original BSD/UNIX code which was given by AT&T to the University of Berkeley.

FreeBSD aims to be the fastest UNIX ever for the Intel architecture. It does a pretty good job with it already. It is also the most popular of the BSD (probably because of it). Unfortunately some will argue that this goal forced FreeBSD into technological choices that were not in favor of portability, like for example the absence of emulation of the SCSI layer for ATAPI drives. But FreeBSD has a wide user base, and an impressive number of ports (collection of patches to apply to some source code to have it compile and run on your BSD).

NetBSD's goal is to be the most widely spread of the BSDs, in terms of portability. If you have a gaming console or any weird sort of embedded device, chances are that it can run NetBSD. Not counting the fact that it is fun to install NetBSD on your favourite coffee machine, this policy made the NetBSD developers great standard-crafting guys, and this operating system the ideal alternative for all the old internet servers running on prehistoric hardware some proprietary OS that the evolution of the Internet is dooming to abandon.

OpenBSD, the last one, initially forked from NetBSD when Theo DeRaadt who is probably one of the most paranoid programmers in the world had an argument with the NetBSD developers about the fact that they should spend more time auditing their code and fixing the existing holes than forcefully trying to port it to any single architecture out there. Ten years ago he took the NetBSD source tree, got rid of a good half of the branches, and only kept those which were the most heavily tested and debugged. Several coders joined him and they launched OpenBSD whose goal is to be (and they are already) the world's #1 secure operating system. Not only it is already the most secure OS in the world, but the countless security audits they did in the code made them discover (and fix) virtually all the bugs left from previous audits, and this had the side effect to make OpenBSD *also* the world's #1 stable operating system (see http://www.openbsd.org/goals.html).

The BSDs have a kernel-level binary emulation of most of the other UNIX-like operating system, including Linux (ELF and a.out), Solaris, AIX, and others. They are able to run Linux binaries provided you set up a special directory tree in which you will put a minimal amount of Linux libraries that will look like if a mini-Linux system was installed in a subdirectory of your BSD machine. People have reported to run Half-Life servers on FreeBSD and OpenBSD machines.

The BSDs also have a collection of ports and packages. The "ports" are sets of patch files that make you automatically download the right source code for the right version for a software you want to install on your BSD box, then automatically patch the source code with the needed changes to make it run on BSD, compile, package and install. For example, if you want to run the GNU midnight commander on your BSD box, look if there is already a "port" made for it in the ports tree ; if so, your job will be made simple: locate the makefile, hit Make, and enjoy. A "port" that has been compiled for a particular architecture (x86, Alpha, mips, etc.) is called a "package". A package is in fact just a .tgz (tar-gzip) file, which is a sort of big zip file that you unpack in your system's root directory, and everything will land at its place, ready to run.

Base system binaries are in /bin
Base kernel binaries are in /sbin
Userland/system binaries are in /usr/bin
Userland/kernel binaries are in /usr/sbin
All system configuration files are centralized in /etc
Same scheme for libraries and include files
Everything that is installed by the user, i.e. that is not part of the base system, should go to /usr/local (e.g, /usr/local/bin, /usr/local/lib, /usr/local/etc, and so on.)

With BSD you also have an immediate access to all the system's source code, kernel and userland, if you want, everything being located and hierarchized under /usr/src.

All the BSDs also come with an integrated barebones X server, which you can customize and turn into something as appealing as in Linux if you install your favorite window manager (Enlightenment, Gnome, KDE, etc).

Of course, the hardware support is less wide than in Linux. But on the other hand, what is supported, is definitely supported. Not half supported. There is no such thing as a half-baked driver which runs by magic rather than by code like 80% of the hardware drivers that exist for Linux. If your hardware is supported by BSD, it really is. Officially. No need to install a stinky patch from some unknown coder from Lituania, which works only with version 2.4.0.34-test22 of the kernel with glibc 2.0.whatever and some #include dated from february 2, 2001 only.

And.... one last thing, but you gotta be aware of it...
the user communities of Linux and *BSD traditionally hate each other...


okay,
/hype



RACC home - Bots-United: beer, babies & bots (especially the latter)
"Learn to think by yourself, else others will do it for you."

Last edited by Pierre-Marie Baty; 02-02-2004 at 23:57..
  
Reply With Quote