Linux, the BeOS, Solaris, QNX, AtheOS… the list of “alternative OSes” seems ever-growing, and an increasing amount of computer users want to keep their options open. Meanwhile, sitting quieting on millions of servers –very likely on your ISP’s servers– is FreeBSD, originally developed at University of California Berkley, based on the same core as the new MacOS X, currently at version 4.4. FreeBSD is a complete, free, stable, multi-user, Unix-based Operating System available for download at freebsd.org. While FreeBSD has come a long way of late, it’s far from ready for the average user, however, as it matures, it has great promise in becoming a serious player in the OS market next to Linux.
I know that for me personally, Windows has outlived its welcome. While Windows XP is probably the best, most complete OS I’ve ever used, it’s too much for me. It eats up my bandwidth, it monitors my actions and reports home, it’s very tighly integrated with Passport, another Microsoft tracking system, and it costs hundreds of dollars. With so many other OSes available, about two years ago, when the decision was between Windows 98 or 2000, I began testing out new OSes. Considering FreeBSD was not an immediate decision – I had to warm up to it. And necessarily so. Though FreeBSD is often logical, even advanced and adventurous Windows users will face a fairly steep learning curve.
I am going to assume, for the purposes of reaching a reasonable conclusion, that if you are reading this, you’ve already either installed a non-Windows OS, used a non-Windows OS, or are a glutton for pain and suffering. Either way, I will take a few seconds in each section to explain the basics, so bear with me.
FreeBSD is not the only OS based on the original BSD design.
In a nearly offensive slimming of their worth, I’d sum up the *BSDs as follows:
* FreeBSD is an all-puprose mainstream OS for the masses.
* NetBSD is designed to run on more platforms than any other BSD – at the time of this writing, 46 platforms are supported.
* OpenBSD is designed to be the most secure OS, out of the box, in existence. Because of this, a lot of the OS is disabled by default, which makes this not the best choice for Unix novices.
* Darwin is another option. According to the website, “What is Darwin? Darwin is the core of Mac OS X. The Darwin kernel is based on FreeBSD and Mach 3.0 technologies and provides protected memory and pre-emptive multitasking. Darwin runs on PowerPC-based Macintosh computers and a version is also available for x86-compatible computers.”
For more on this subject, visit jocose.org.
The BSD license is also fairly unique. For more on the license, visit freebsd.org or click here.
There are infinite ways to get tangled in a FreeBSD installation. But for anyone who used Linux before version 7 of most distributions, it won’t seem too alien. There are many methods of installation: CDROM, floppy disk, tape drive, a DOS partition, over a network, or if you have a high speed connection, FTP or HTTP. The install menu seems to suggest that one day, there will be a single DVD install that includes all ports. I am anxiously awaiting that release, but in the meantime, all of these options are easy to execute and self-explanatory. Having downloaded the iso images, I chose a CD install and it successfully copied over an install image to the hard drive. The FTP option failed from my house, but my firewall is pretty tightly configured. A friend has reported success – and even preference – with the FTP method.
Like most OSes still in their youth, you must partition the hard drive. With FreeBSD you partition the hard drive and then create slices within the partition. By partitioning the disk, you can designate which sections of your hard drive are for use with FreeBSD and which aren’t. You can, of course, specify the entire disk, or, if you have blank space on your hard drive, you can use just a part of a drive that already has data on it. Using the auto-partitioner is a must if you don’t already have an idea of reasonable sizes for your slices, but if you insist on doing it all yourself, you can. FreeBSD uses a file system called UFS and can employ SoftUpdates, arguably comparable to journaled file systems in that they efficiently use metadata, but possibly better, depending on your point of view.
While this part is still fairly easy, selecting packages to install is a daunting task even for a seasoned user, and having installed the software over 10 times, I was still choked up at this step. Unfortunately, there are no pre-selected installation options, as you find in most prominent Linux distributions – something needed in future releases to speed up this process. You must manually select the packages you wish to install. For a first timer, it’s pretty confusing. Having installed the last three versions of FreeBSD, I can tell you it’s changed very little. You’ll want to make sure you install the bash shell, Gnome, and KDE at a minimum, but unless you have serious space constraints, you’re better off installing too much than too little. The biggest plus of FreeBSD – and truthfully, the only reason it’s not extinct – is its Linux Binary Compatibility, which is essential to using FreeBSD as a workstation. By adding this package, you can use almost any application that can properly compile in Linux.
The underpinnings of the Graphical User Interface come in the form of XFree86, an open source implementation of the X Windows System. Truth be told, this is the step that most frequently scares away new users, as configuring X is undoubtedly the toughest part of the FreeBSD install. Moving the mouse too early can cause errors. Specifying the wrong horizontal and veritical sync range on your monitor can freeze the install. Pressing “OK” before you’ve got the proper settings specified can send you on a goose chase that might leave you stuck at 800 x 600 for days while you attempt to reconfigure without reinstalling. With my Linux tested Belkin Omni switchbox, even on my most recent install, I had serious troubles getting the mouse daemon to work, and I’m told I’m not alone in this. However, for the average user, using a single PC, this shouldn’t be an issue. My hardware, mainstream but not cutting edge, has never caused a problem other than this. However, I have more than once found myself with an X server out of alignment with my monitor. When you get the X server configured, you’ll find there is an X tuner included as well. While these tools are meant to maximize your video capabilities, my experience has been that the X tuner causes more problems than it solves. Use them carefully, quickly, and sparingly. My new method of dealing with X configuration is “Once it’s good enough, I move on.”
I was unable, after poking around for about 5 minutes, to get the OS to default to the GUI on boot, which most workstations should. It turns out it wasn’t that inconvenient to login and #startx to launch the X server. There are ports of just about anything you need – offices applications, browsers, audio applications, servers, and thousands of other apps of which you will likely use about 6 regularly, but having them there is of comfort to me, and will be to you. Unlike Windows, when you start up FreeBSD and launch into the GUI, you will be greeted by a confusing start menu that, strangely, is less intimidating than encouraging. Linux users will recognize it as it’s a port of the same software. For those new to a non-Windows OS, there are quite a few changes, but most of the action in the GUI is fairly intuitive. Right clicking the desktop will bring you menus that are logical and highly used. Clicking the icon in the lower left will bring you to all purpose menus. Window navigation is comparable to Windows Explorer. FreeBSD, however, can utilize the third button on a mouse (it can emulate the third with a “both-click” if your mouse only has two buttons).
In order to truly understand Unix and Linux, you have to understand the structure. Bear in mind – this is drastically simplified and basic. Picture concentric circles, with hardware at the center. The kernel wraps around that circle; it is the center of an OS that communicates directly with the hardware. A shell translates user input into commands the kernel can accept. Lastly, the GUI sends commands to the shell destined for the kernel. These OSes usually include the source code for the kernel, which allows a user to “recompile” or reconfigure and optimize the kernel for a specific hardware platform or a specific purpose. Nowadays, the kernel is more than suitable, so someone new to FreeBSD won’t have to configure or reconfigure the kernel – for now, it’s fine as is. FreeBSD also includes ports of many shells (like bash, the Bourne again shell, and zsh, the z-shell, explained here) and both KDE and GNOME desktop environments.
As a newbie to *nix, you’ll find yourself typing DOS commands like dir and rename quite a bit at the command line, but the bash shell is flexible and not incredibly hard to learn. In reality, the Unix commands make much more sense: ls, like dir, *lists* the contents of a folder, mv, like rename *moves* a file into a new file. This is logical – everything in Unix is treated as a file. For example, You might copy an audio file to the soundcard to hear it play. The structure might be confusing at first, but again, these systems are designed to be logical, and in time, will make sense as there are fewer global exceptions. Don’t be turned off by this – the CLI is what scares away many new Unix users. It will be your friend as you get to use it more frequently. Soon you will be able to use the filesystem itself in your applications and web sites. Try that on an NT box.
Another important distinction between *nix and Windows is the lack of a Registry. The Registry, which is the center of Windows, acts as a large database that contains information about virtually everything in your PC. By tampering with the Registry, you can effectively destroy a Windows installation in about 5 clicks if you know which registry keys to alter. FreeBSD, like all *nices, use flat text files. In order to alter the actions at boot, you’ll need to alter a text file. To change the properties of your shell – a text file. To configure the many servers bound within FreeBSD, text files. Fortunately, hunting cautiously, you can find graphical front ends that can help you configure your system. For the time being, almost everything you need is pre-configured in a fashion I’d call “useable.”
In writing an introduction, I wanted to explore the benefits of FreeBSD, mostly notably those that separate it from Linux. Among those most touted are uptime and stability. As a workstation, it’s unlikely you’ll leave your computer on for endless hours and rare you’ll use the myriad available servers except as a convenience while logged in. For demonstration purposes, I purposely launched as many apps as I could to try to crash it. I crashed it very quickly – or so it seemed. I actually only bombed out the X session. In fact, crashing FreeBSD is just about impossible as a sole local user. I was able to crash 4 simultaneous X sessions; each time, all I had to do to restore my system was log out, log back in, and relaunch the GUI. As for uptime, I had the system up for three days without interruption when I decided I wanted to move it. Then I checked out Netcraft’s statistics, and at the time of this writing, of the longest running web servers they track, the top 13 are all running some form of BSD – only 8 of the top 50 are not running a BSD based OS. At that point, I concluded that it wasn’t going down anytime soon. Sure, most servers are doing something simple like IP routing, admittedly not the hardest task, but many of the servers tracked in that graph are running complex databases. At home, my Linux PC has hiccuped from time to time. In fact, my firewall, which only does IP masquerading, serves DHCP, and runs a small firewall script, needs a reboot every week or it suddenly forgets what to do. My FreeBSD test box was up the entire time I had it. So I’m leaving it at this: uptime and stability for FreeBSD – check plus.
The other, much larger benefit of FreeBSD is the non-forked development. With Linux, which is actually just a kernel, there is no standardization. Anyone with a single course in programming can alter the system and release it, thanks to the GPL. There are hundreds, if not thousands, of distributions. Anyone with a single course in programming can alter the system and release it, thanks to Linux’s licensing. FreeBSD, conversely, is maintained by a small group of programmers. Don’t think of this is restrictive, though, think of it as being able to preserve the quality of the OS by making all code pass a final inspection. While all Linux distributions are subject to random editing and changes, FreeBSD is a constant across all computers everywhere it runs.
One small downside for me was that the device naming convention is different for BSD than for Linux. Don’t look for names that you just “know;” they aren’t necessarily there. However, you will find your typical directories. This is useful for downloading and installing new programs as well as searching for items. The bash shell, which most Linux users are using, is much more capable than DOS and, unfortunately, in order to effectively use FreeBSD, you’ll need to learn to use it. I soon learned, though, that compiling your own applications isn’t so tough. In fact, using the command line became almost fun for me. It allowed control that I have not felt in most GUIs.
The way I see it, a capable workstation needs at least one of each of the standard apps: a capable browser, an office suite, an e-mail client, games, an FTP utility, audio apps, and a compression tool. All are included for free by default in a FreeBSD CD set. There are options for browsers, with Netscape and Mozilla being the most common. My experience with Mozilla was excellent. I wouldn’t need another option. For productivity, there is the ever present and rapidly-advancing StarOffice suite. The source code of Star Office 6 is available for download at openoffice.org and works extremely well as an office suite. For e-mail, if you haven’t begun using a web-based e-mail yet, look no further than Evolution from Ximian. Again, you can obtain the source code from ftp.ximian.com. There are more games than you can shake a stick at included in Gnome and KDE, and gFTP is a great FTP client that looks exactly like my WS_FTP on Windows. XMMS is an excellent audio player comparable to WinAmp that worked like a charm. Though I neglected to rip a CD, I know that grip is included in most distributions of GNOME. If that isn’t enough, compression is built right into the system! In a nutshell, not once in the time that I played with FreeBSD did I find myself at a loss for an application.
FreeBSD was an experience I don’t regret. If you’re a Windows user and you’re interested in trying something new, I’d have to recommend a standard distribution of Linux first. But if you’re a Linux user not sure of which distribution to use, consider FreeBSD as an alternative. Its stability alone is noticeable over Linux, as well as the way it handles tough loads on the system resources. Another benefit is the extremely detailed online handbook that serves as complete documentation of the OS. Although I feel strangely compelled to use FreeBSD, I think I’ll feel more strongly in a year or two with the next major release, version 5. FreeBSD, in my estimation, though entirely useable, is better suited as a workstation for a moderate to experienced Unix user who knows how to truly employ the benefits it offers, a high end graphics development center or some other super-stressed computer, or as a server OS – which is truly what it was intended to be. In the meantime, though, I’m keeping my options open.
About the Author
Adam Scheinberg is a Systems Administrator for the US Naval Sea Systems Command. He uses Windows XP, Red Hat Linux 7.2, and the BeOS at home, and Windows NT/2000 and Novell NetWare 5.1 at work. Adam can be reached on email@example.com
I just thought this is a nice place to mention NetBSD as an alternative. In many respects comparable to FreeBSD, but available on dozens of platforms.
To the poster above: the author did mention *BSD on the first page of the story but didn’t elaborate. A fairly good introductory article, but I think he got partitions and slices confused. FreeBSD calls slices what everyone else calls partitions. Within a slice, FreeBSD has additional units called partitions. Anyway, very confusing and an easy mistake to make. Also, as for package selection I usually only install the base and source. Then, I cvsup to whatever version I want to run, cvsup the ports to the latest, build world and install any ports that I want (bash, XFree86, etc.).
IIRC, the FreeBSD slice method is a bit easier to handle than partitions. At least on X86 systems, a slice is actually a partition. Within the slice, you can divy it up all you want (into / /home /usr, etc) and not have to worry about the partitioning limitations of the X86 architecture.
Right of the bat, let me say that I love FreeBSD. I’m running 4.2 on a poor old 486/33 16MB server and it handles NAT, cvs, telnet, and public ftp without nary a hickup. However, FreeBSD does have some problems on the desktop:
1) Its sound architecture is really antiquated, even compared to OSS on Linux.
2) It lacks the NVIDIA OpenGL drivers, although a project is underway to remedy this.
3) Its more optimized for high load rather than raw speed. Since workstations tend to be lightly loaded (usually) this isn’t the best use of resources.
4) Its not media-suitable at all. The interrupt handling needs a lot of decrufting, and no low-latency support has yet surfaced.
Just a few clarifications for the FreeBSD curious …
1) FreeBSD would be far from extinct without Linux bin compatability. This is obviously ignorance on the authors part. ( not stupidity ) In fact, there are *very* few packages written for a *nix that do not compile natively on FreeBSD. ( If you don’t believe me, go and have a look at the ports collection. The bin compat libs are handy for things like quake or staroffice 5.2 that are not available or have only recently been made available in source form.
2) FreeBSD does in fact have pre-configured base system installs, they are just a lot more ‘base’ than most *nix base distros. ( thank god, I would hardly consider a home video organizer to be a must have for my default install like some .. ahem .. other *nix distros ) FreeBSD currently makes a distinction between distributions and packages. A distro being your generic kernel, binutils, core libs etc … and packages being anything you wish to add to the base distro. Base distos can be customized. ( bin +/- sources +/- kernel sources +/- Xfree86 +/- ports collection … ) I might also add, the FreeBSD package system may be ( not for long … libh, openpackage ) antiquated, but it is far better maintianed and organized than most collections available. X window manager configuration is handled post install through the FreeBSD. It is a one check box selection in the configuration menu to have kde, gnome or windowmaker up and running. However, x must be configured maualy first.
3) I would hardly call BSD a immature operating system. I don’t know a professional in the IT industry that wouldn’t at least place bsd at the top of the candidate list to exploit for mission critical internet related services. Who can argue that this cannot be directly attributed to its extremely stable, secure and yes mature codebase.
4) Yes, FreeBSD is still catching up in some areas. They are busy coding things like fine grained SMP support ( estimated to scale well to 32+ processors ) and better multi platform support over things like … better sound support. This is all true. One thing I can say, is that the bsd folks may not be the first to do it, but when they focus on somthing they tend to get it right, really right.
I would say that freeBSD is a better starter *nix than any linux distribution. The reason is that it is very easy to install and its directory structure and way of doing things is standardized. It is also tightly controlled in its development, which makes for a more logically organized system.
Now, granted, *BSD is a complete OS, where as Linux itself is just the kernal, but I would rather use the complete one since I am not looking to hack the kernal or make my own distro…if that was your interest, then I would say Linux is the way to go.
Either way, it is better than M$, so who’s counting. I do REALLY like FreeBSD. Haven’t played with other *BSD’s, but I hear good things about them as well.
BTW, there is also the TrustedBSD project at http://www.trustedbsd.org
…Matthew said most of the things I’d say. I’m using a FreeBSD workstation at work and there’s very little that I run through Linux binary emulation. You’ll find in practice that BSD’s ports system encourages you to comple things from source–edit the /etc/make.conf file to tune the build process to your system, then do the ‘make install’ in the port directory you want, and you get binaries optimized for your machine.
I’d also have to say that for what it’s worth, X configuration under FreeBSD wasn’t pleasant but it wasn’t an excruciating nightmare. The biggest problem with it is that the standard FreeBSD system installer is Xfree 4 ignorant. If you just install Xfree 4.1.0 and run “X –configure” from the command line as root, it writes the configuration file for you, and it usually needs very little tweaking (it seems to actually talk to plug and play monitors, for instance, and figures out its own damn refresh rates).
And, no, FreeBSD sure ain’t immature. Its roots predate Linux’s (it’s the most direct descendant of 386BSD, the first “free” Unix operating system) and it’s been deployed in some pretty heavy production servers, like, say, Yahoo.
It just so happens that a new BSD/BeOS story has been posted to BeDoper today. I’m installing 4.4 over the break. And VMWare, just to be on the safe side…
Addressing Matthew and others from above…re-read the article with the title in mind: FreeBSD as a WORKSTATION for Unix newbies. This is not a review of the FreeBSD Operating System as a whole. It is a review of FreeBSD as an independant full-time OS as an alternative to other OSes. Perhaps viewing it from this angle will skew your opinion of the article. Calling FreeBSD a mature OS for Unix newbies is simply not accurate in my opinion.
I think my comments regarding your article were right on target. Of course you are entitled to your opinion. Im glad that you spent the time to give BSD a review and for that I thank you. However, I do feel the need to clarify some obvious misconceptions that you or others may have about the distro as a whole. I feel its my resposabiliy as an informed BSD user. I also think it is your responsability as an author to not make such broad statements about an os ( such as it is immature ) with little qualification to support your statement. For newbies reading an article such as yours, it can be quite confusing.
For example, if I was curious about switching to a new desktop operating system and read your article and had limited experience with *nix os’s, I would definately be discouraged by your comment. All sorts of assumptions can be construed from such a statement like … it may run on a unproven/unstable kernel, poor video or bad sound support, fewer options for desktop enviroments or no multimedia software. Actually, I would probably have stopped reading your article right there thinking, well this doesn’t sound like a very good solution. I would like to hear about a few of the day to day applications that you would expect to see run on a *nix that couldn’t be run natively on FreeBSD. The truth is, its not FreeBSD that is behind in the desktop arena, but all *nix flavors in general when compared to the M$ os family.
As a testimonial to FreeBSD’s capabilities, I use it as a destop os at work and at home. I can watch my multimedia including dvd’s ( xine or videolan ), I can browse the internet ( konqeror, netscape or mozilla ) I can do my instant messaging ( yahoo IM client ) I can use shared windows folders and printers ( samba or native kernel smb requester ) and I can rip my cd’s ( grip ) and listen to my mp3z ( xmms ) all with natively compiled applications installed conveinently from cd or ftp via the well organized ( cant stress that enough ) freebsd package manager. Exactly, where is it lacking … speaking strictly from a desktop perspective of course 😐
I run an amd 1400, adaptec 2940uw w/ IBM uw drive, ( ide support is execlent however ) nvidia Geforce2 w/sblive … Good ol’ desktop hardware
Unix-on-Intel players agree on a common binary
(It’s the Linux ELF format)
http://www.telly.org/86open/index.html for more details
..and absolutely love it. If you read the documentation and actually build the server with supported hardware from the start you will save yourself much frustration and humiliation. Sound has not been a problem at all. Just get yourself a supported card and off you go. Hmm, you want window managers, I use KDE, Enlightenment, and WindowMaker. They all work like a charm. Granted, FreeBSD is not as easy to configure as a desktop when compared to Mandrake Linux, but god forbid people actually understand how their operating system works and spend some time learning how to do things for themselves. I realize this is probably asking way too much.
>Unix-on-Intel players agree on a common binary
>(It’s the Linux ELF format)
>http://www.telly.org/86open/index.html for more details
wow. He Who Shall Ne Nameless talks about a lack of history, yet does not even know the history of the ELF file format himself/herself.
ELF executables were running on IRIX, Solaris and HPUX machines long before they ever ran on Linux.
Who wrote the ELF spec? was it Linux? nope. it was USL! UNIX System Laboratory.
I have to say the first time I tried FreeBSD 4.4, having been using Linux for years..it is a little different, for example the directory tree takes a little getting used to it, but the OS just felt that more mature, the boot messages on boot for example remind me more of “Real” unix that Linux (which after all is only a unix-alike).
The only thing I came across, is the slightly less hardware and software support.
But as far as the article goes, mentioning Unix for newbies, I think FreeBSD would be a far worse choice than for example Mandrake Linux, which is a dream to install compared to previous Linux/Unix distributions.
The short version: The X86 players (SCO, FreeBSD, Linus and others) all got together to decide on a common format. What ended up happening is ELF as implemented by Linux became the common format.
FreeBSD’s Linux link has more history with the X86 unity effort than some misplaced “if it wasn’t for Linux, FreeBSD would be dead” statement.
How is the ELF format comming out of USL effect the meeting desiring a common X86 UNIX format for executables, and ELF as implemented on Linux becomming that standard?
I just read the link. You’re wrong. You’re getting ABI and binary format mixed up. The article states that there is basicaly no point to creating a common binary format (which wasn’t supposed to replace the system-native one anyway) because everyone can run Linux (and by extension ELF) binaries. They never said anything about the Linux’s ELF (which is the same as any other ELF) becoming the standard on x86. The switch to ELF by most x86 OSs (including FreeBSD) has little to do with Linux and everything to do with GCC. Because almost all x86 OSs (certainly the free ones) use GCC to compile the system, they have to use the binary format used by GCC. GCC uses ELF, everyone switches to ELF. GCC changes the binary standard, everyone changes the binary standard. You can get more info at this page: http://www.pl.freebsd.org/FAQ/FAQ203.html
I certainly hope not to start a holy flame war about which flavour of BSD is best, but I thought I would add my $0.02 regarding OpenBSD.
I recently set up a firewall for my home network. I know very little about firewalls and Internet security, but while reading up I came across several reviews recommending OpenBSD as a very secure, stable OS. Other articles, however, seemed to dissuade newbies from OpenBSD, claiming it was difficult to install and configure. I’m an experienced UNIX user, but I’m no guru, so these made me think twice. Regardless, I figured that I was out to set up a firewall and learn as much as I could in the process, so I decided to go for it.
I was very, very impressed. The install was simple (the fact that it requires only a singly boot disk is very convenient), and although certain concepts required background research (stuff like BSD disklabels), I found the documentation to be excellent and very complete. I really liked the minimalist install, which gives you the basics and allows you to build on top of that based on your own needs. Setting up a DHCP server, a firewall, and network address translation was far easier than I had anticipated, and these were all things that I had never done before. The pkg_add command and the ports tree make installing new software very simple, and the system was rock solid, staying up for a full four months before I took it down to install the recently released OpenBSD 3.0.
OpenBSD surprised me again just this past week, when I was looking for a new OS for my laptop. I had the impression that FreeBSD was the way to go for desktop BSD installs on x86 based machines and that it supported the widest range of hardware, but lo and behold my CardBus ethernet adapter is not supported in FreeBSD but is in OpenBSD. CardBus is planned for FreeBSD 5.0, but installing a snapshot of the -CURRENT tree proved to be difficult, and I couldn’t get it to work. Because of this, I’ll be installing OpenBSD on my laptop tonight to get my first taste of how it performs on the desktop.
I agree that OpenBSD is perhaps not the best starting point for someone who has never used UNIX, but users who know their way around should give it some thought. I was certainly pleasantly surprised by it!
I guess I may as well toss in my 2 or more cents here.
I’ve used FreeBSD and OpenBSD for a couple of years now, on my servers, workstations, and even my trusty laptop.
I wholeheartedly agree on the sound issues, I’ve had a horrible time with sound on my laptop, granted it’s some POS chip that no one’s ever heard of…
About the Linux compatability, sure it’s nice, but it’s really not important to the survival of FreeBSD. In two years of using FreeBSD for pretty much everything (except for playing Half-Life), I’ve only needed the emulation on one or two occasion (to run a Half-Life server).
Overall, a pretty good intro.
I’d like to add that FreeBSD has one of the best third-party user guides available for any Unix or Unix-like OS:
The Complete FreeBSD
by Greg Lehey
June, 1999, Walnut Creek; ISBN: 1571762469
The chapters on installing FreeBSD and configuring XWindows, two of the things this above article mentioned as being difficult, are especially well done.
most of the ELF conversion came about as the common format (AOut) was severly lacking in any detail + information. it basically has a text/data/bss segs and thats it. doing dynamic loading hacks on aout is just that, huge hacks, requiring lots of manual work.
ELF handles all that and more, better debugging info, dynamic linking, etc. Thats why ELF is commonly used.
>How is the ELF format comming out of USL effect the meeting desiring a
>common X86 UNIX format for executables, and ELF as implemented on
>Linux becomming that standard
since all the BIG unix players used ELF, ofcourse the little unix players would want to switch to what the big boys were using, that and the fact all the little x86 unix boys were using the technically lacking aout format.
you keep talking about Linux ELF, of which there is no such thing. ELF is a standardised file format, there is nothing Linux about it.
the same as PE files, while nativly used by Windows, you could convert the entire linux system to use the PE file format, that would not make it Linux PE, since PE is just a standardised format based on the old format of COFF.
I have enjoyed using FreeBSD for a few reasons, —-,—–,—-,—-.
First, I enjoy the stability of the OS. I used RH6.2 – kernel 2.2.19 but I did have stability issues. I keep my workstation turned on all the time. I feel very confident using an OS on my desktop that many ISP at a high level use in mission-critical applications, email, database, etc.
Secondly, the ports/package collections are wonderful. Having 1 repository for programs/information is the best. If I want to find a program I do a search for it in a directory and returns the results. If I can’t find a program in the ports I can create one myself and become the port manager. I have only found a few programs that haven’t had a port created for them. Again, only a few.
Thirdly, the Linux binary support is wonderful. I run VMWare and StarOffice 5.2 both for 8 hours per day without closing the applications. I can enjoy Mozilla-current also .
Also, one of the best resources I have is my best friend who has used FreeBSD since 2.21-Release. I can ask a question anytime. My $0.02.
I started as a newbie with Linux 18 months ago, I tried every version available for the iX86 platform, then I discovered the (free, net, Open)BSD family and haven’t looked back since. Do your reserch on the net and you’ll discover why freeBSD and friends has it over Linux.
I’m totally in love with FreeBSD too, ever since I put it on that old P90 of mine, thats used as firewall, NAT box, dhcp server, ftp server, samba server, time server, you name it. It’s been running totally stable, and I’ve been able to do some crazy tricks with its networking capabilities, stuff that either doesn’t work as well in other OSes (i mean… linux’ ipchains just doesnt cut it in comparison), or would cost quite a bit (if you went with MS products). Also, the system is running rocksolid, 3-digit uptimes are no problem.
So, as server OS, i give it top grades.
However… as workstation OS… it failed me. I spent 48 hours downloading and compiling stuff like gnome (ok, so maybe i shouldnt have gone with the ports). And in the end, I couldnt get either openoffice nor abiword running; both compiled but wouldnt run.
In comparison, I then wiped the disk and installed redhat linux 7.2 – after 1 hour I was where i was after 48 hours with FreeBSD, except everything worked.
And there’s another side – when used as workstation OS, if you’re like me you like trying out new software all the time. I soon noticed that most software is available in binary form for various linuxes, but only rarely for FreeBSD. And compiling the source everytime is… not that great.
So, my first choice for anything server or network related is FreeBSD (I haven’t tried the other BSDs yet… but OpenBSD keeps popping up in the back of my head…). For my workstation, WinXP is the way to go.
I’m currently using FreeBSD as my workstation. Since I work for an ISP that uses FreeBSD for web servers, I’m doing it more for the experience than because of any inherent advantages the operating system may have. Since I’m using it at work, I don’t ask for that much out of the system in terms of software applications or games. All I really need to get my job done is an ssh client and a web browser (although xmms makes things a lot nicer).
Getting the OS installed was simple, but getting X window manager took a bit more work. However, it was far from what I would call excruciating. Once I got it working, it hasn’t given me any trouble. On the other hand, I had a miserable experience trying to upgrade my motherboard. FreeBSD doesn’t support the hundreds of pieces of hardware that are around. As long as your hardware is fairly generic or already supported, FreeBSD will work fine. If your hardware is anything bleeding-edge or obscure, you may be asking for trouble.
The ports collection Rules the Night. Often, I’ll hear about a piece of software, then realize that I already have it waiting to be installed in /usr/ports. It makes installation a piece of cake. The online FreeBSD handbook is also quite nice.
Overall, I’m quite happy with my system. My only caveat is that I don’t push it very hard, and I’m not asking a lot out of it. I’m a bit more demanding of my RH 7.0 system I run at home.
My experience with FreeBSD after some time with Slackware/Red Hat/Mandrake is that its structure and script placements has been very consistent as it continues to evolve.
To prove a point, I have an old FreeBSD 2.x book, which to this day I can continue to reference accurately on my FreeBSD 4.4 machine. Talk about book reuse!
It is easier for me to introduce and train the administrators to FreeBSD without them getting confused over where scripts are to be found. We have another product sitting on Red Hat, which as the versions change some ‘figuring out’ has to be done. Granted it’s not too much work on Red Hat. But in a place where time for overheads is at a premium, I appreciate FreeBSD even more.
I have been running FreeBSD for about a year now, and as far as I am concerned it is a great server OS, much better than linux (however I don’t have that much experience of linux) but as a workstation I have had no joy, admittedly my GeForce graphics card caused me problems.
FreeBSD (and I presume Net and Open) have a real and crucial advantage over linux in so much as they the development and community are very well structured, I started learning free unix with a couple of linux distro’s but the whole community is so chaotic its quite difficult to get an answer if you dont know what you are doing (your mileage may vary) FreeBSD however has the excellent handbook, central development (read centralised answers to problems) and a very easy to use installer and ports tree which really helped me (as a long time Windows user) to transition to the OS.
But X is just awful, when I have had it running it is buggy, and works just plain wierd, I can’t say I had too much trouble setting it up, it just didn’t work right. I didn’t give it much time though as I only really user FreeBSD for server apps.
PS It’s nice to see some intelligent OS discussion around this site..
“…but god forbid people actually understand how their operating system works….”
Well, actually most people don’t want to understand that kind of stuff. They just want a system that will do what they need it to and not have to worry about the how’s and why’s of it. They want an OS to be stable and totally compatible with everything else they might want to install or use on a regular basis, without having to worry about compiling source code or configuring a kernel to support new hardware.
This is the very reason why none of the alternative OS’s have taken over the mainstream yet. I find it irritating as well but we have to face the facts. Just talk to any tech support phone jockey and he’ll tell you that your average PC user just isn’t interested in nor prepared for the sort of dedication required to learn how to use *nix systems. Most people don’t even bother to really learn Windows, never mind a CLI based OS with thousands of options hidden away in conf files. People learn what the absolute minimum they need to in order to get it to do what they need, and that’s it. This is why most *nix systems are either used by enthusiasts like us, or installed in an environment with an administrator to set it up and maintain it.
Remember that we live in a world with products like “WebTV.”
your article was a good reading… although it’s 2:15am on my clock, it sounded good. great job….
This was truly a good article.
And also kindof funny
Adam seems to be more experienced in the windows field,
but nevertheless he knows his way through a unix installation.
It is a fact that the FreeBSD install is a nightmare, for anyone that has
never seen a unix install. That is undeniable. However first time I installed FreeBSD, the install was very straightforward and simple, because it is also very similar to some linux installs. So far I must say that freebsd installs are the easiest installs I have ever done. But that is when you are already a bit familiar with unix.
Adam, honestly, I never thought you would make it through the install so easily
About the X server. It really is not a pain, but you have to grab your favourite text editor and do it the oldfashioned way after you generated a somewhat decent XF86Config.
Anyway, it’s good to see that you share your experiences with “the normal folks”.
The problem with linux/unix is that everyone that is using linux/unix, and write docs about it, … they think in the unix way of thinking.
So if you have to configure a program, just grab your text editor.
It seems very strange to new users, but when you have been using linux/unix for some time, it makes perfectly good sense, and most of the times, editing the config file manually will get you a more decent config, faster than you would do it with a gui.
This interview was very good, because it was explained in a non-technical way.
Also Adam trying to crash the X server
(I’ve done things like that too in my time)
So, Adam, good review, and keep up the good work.
I emailed the author only to find what I said had already been said, I’ll post it anyway. I also use FreeBSD as my desktop and workstation os both at home and at work and LOVE it
I just read your article at http://www.osnews.com/story.php?news_id=392&page=6 and wanted to make a few comments.
First I’d like to thank you for taking the time to do some research before writing, it is a amazing how many people do not have the facts and still write about something anyway.
I’ve been using FreeBSD as my desktop os at home and work for about 3 years now, without windows at all.
There are a couple points I’d like to make:
(1.) FreeBSD does include default install profiles, you can pick whether you want to install just the base os, the x-user (includes all the base programs and also x), developer (base system with source code), or x-developer (base + x + source). As far as individual packages that is left intentionally for you to decide what you want.
(2.) Linux binary compatibility is not the reason FreeBSD is not extinct, in fact it isn’t even the reason that it is popular. Most programs that you run on FreeBSD are not Linux binaries, usually they are programs that have been compiled on FreeBSD and run in the native FreeBSD system. The programs that most people think of as “Linux” programs such as bind, apache, perl, etc are not actually “Linux” programs, they are source code compatible Unix programs that will compile on almost every Unix OS and run in their native OS. The only time binary Linux compatibility comes into play is when you are running a pre-compiled Linux binary, usually the only time you would do this is when the source code is not available. VMware, Star Office (Star Office, not OpenOffice), and others are examples.
(3.) FreeBSD does not require partitioning the entire hard disk, FreeBSD is very easy to setup to dual boot between different operating systems, whether it be Linux, Windows, or other Operating Systems. FreeBSD does require a partition yes, but every OS does .
(4.) Linux is not easier to use or install than FreeBSD, you made the point the Linux is fragmented but still recommended installing Linux before FreeBSD. You do need to read the manual before you install FreeBSD but there are a lot of people that go directly from Windows to FreeBSD. The reason is FreeBSD is standard and has a straight forward installer (if you read the manual 🙂 ).
Oh, you did not mention the upgrade path for FreeBSD either, with FreeBSD you can simply upgrade your system sources, recompile, perform a few other simple steps and reboot and you are running the next version. There is no need to reinstall to upgrade the OS.
All in all I very much enjoyed reading your article, it is one of the best that I have read and I have recommended it to others.
I appreciate your response. For the most part, the response to my article has been overwhlemingly positive. In truth, if I wrote the article again today, I’d have a few different things to say and I’d also be able to correct some misinformation.
To respond to your inquiries, I am familiar with the install profiles, but I was actually referring to the ports. There should be a simple “workstation” spot to X and you automatically get a host of common desktop apps. Almost all Linux distros have similar options.
The Linux Binary comment was just stupid of me. As a Linux user who was migrating, I didn’t understand that most apps are actually running native in FreeBSD. I wish I could retract the statement, that got me more flames than I could’ve imagined.
The FreeBSD installer is an issue for me. “Desktop OS” implies user friendliness, and I think the installer is weak. Line it up next to the Windows install and tell me how FreeBSD expects people to not judge it. Most of us know better – many don’t. I switched “slice” and “partition” in my article.
The upgrade path was unmentioned because I had never upgraded in-place. Hopefully, with 4.5, I will! I believe firmly that FreeBSD has the chance to eventually be the OS of choice in about a decade when Microsoft falls, as all giants eventually do. There are lots of issues – buggy X configuration, installer program, GUI management tools… but it’s a solid system that has the capability of beating Linux.
Thanks for taking the time to write to me. Feedback is important.
I have two machines on a KVM, one runs win2k the other FreeBSD 4.2. I only use the win box for M$ Office which hands down, period, smokes all of it’s competition. I’d pay 2k for a literal, correct, native FreeBSD port of Word, Excel and PowerPoint. Seriously.
I love FreeBSD and have used it since 2.2.2 so installing it is something I don’t even think about when I do it. Therefore it would be difficult (if Possible) to judge a newbies experience of /stand/sysinstall I can’t imagine it would be that difficult except for slices and XF86Config. If you have “The Complete FreeBSD” it walks you through step by step of both although IMHO / should be 256 Megs
I can honestly state: “I have never, ever had a FreeBSD -RELEASE- kernel die on me” I have had X crash a thousand times, all the gnome stuff crashes, netscape 4.73 crashes when you breath on it. but not the kernel _Or_the_rest_of
_the_OS_which_Linux_does_not_have_ As a newbie I would think that the most discouraging thing that could happen is having the screen freeze and not be able to do anything about it.
I recently set my 12 Year old daughter up with RedHat 7.1. I “forced” her to use it for 2 months. Just before Christmas she offered to pay for windows out of her allowance if I wouldn’t buy it for her. At my work Christmas party she stunned the affair to silence by saying “Linux crashes all the time” when asked what she thought about it. Then she looked at me and said “I’m sorry Dad, It really does” I about died laughing. No it wasn’t hardware, it’s been running XP since the 26th of Dec.
None of the Nixes are ready for prime time. Those of us that have experience with it take so much for granted that we don’t realize how unintuitive the whole mess is. And god forbid they try to upgrade it. Build world is NOT a “one command to reconfigure the entire OS” That statement is a lie and we all know it. On the other hand I love it just the way it is and I bet alot of others do too. The first time I used vi I almost punched the screen of a 20K workstation, now I’d kill anyone that tried to take it from me <grin>
Nix never was meant for Newbies, Although it could be an excellent starting point for one that is. Apple anyone…