After a disastrous 5.X series, FreeBSD’s reputation for quality was mostly restored with version 6.0. Here we are at the first release milestone past that — 6.1 — and the good news is, it continues the upward trend. The (somewhat) bad news is, despite many little improvements, it’s still not perfect.
FreeBSD overview
This section is for people who are new to FreeBSD. If you’re already familiar with it, you may want to skip down to the next section.
Originally developed from the Unix-based Berkeley Software Distribution, FreeBSD is among the oldest extant Unix derivatives. It is currently maintained and improved by a large team of programmers, and supported monetarily by individual and corporate donors.
From FreeBSD you can generally expect a modern, Unix-like operating system, heavily armed with network services and tools. It is relatively easy to install, configure, and administer FreeBSD on servers or desktop machines. FreeBSD is scalable up to at least 12 CPUs (this is as many parallel CPUs as it has been officially tested with), which includes SMP support for Hyper-Threading and multiple cores.
Aside from the programs included in the base system, FreeBSD offers extra software via pre-compiled binary packages; and a Ports system, which functions much like a less automatic version of Gentoo’s Portage software management framework. From Ports you can automatically download, compile, and install more than 13,000 programs. There are few applications in the free software canon that are not available in the FreeBSD Ports tree. There is also an available Linux binary compatibility layer which is efficient enough to say that there is no noticeable performance difference between Linux binaries and FreeBSD binaries running on the same system.
A common misconception about FreeBSD is that Apple OS X is based on it. While some of the FreeBSD userland programs are used in Darwin (which is the operating system that forms the basis for OS X), the OS X kernel is based on Mach, not FreeBSD, so OS X is not “based on” or “developed from” FreeBSD in the traditional sense (such as the way OpenBSD was forked from NetBSD in 1995).
The majority of the FreeBSD base system is licensed under the free software BSD license, although some included programs are governed by the GNU GPL and similar free software licenses.
What’s new in 6.1
Perhaps the FreeBSD team took a page from the OpenBSD playbook, and chose to make a lot of small modifications for 6.1-RELEASE. That’s in stark contrast to many of the preceding releases, which introduced revolutionary code changes that, while great on paper, ended up causing more trouble than they were worth.
A complete list of changes since 6.0 can be found in the release notes for AMD64 and i386, but the highlights are:
- Improved keyboard support
- Improved sound drivers
- A number of base system components have been made multi-processor safe
- IPv6 support in ipfw
- Various network driver bug fixes and enhancements
- Improved package tools, including Portsnap
- A firmware subsystem that allows loading binary blobs into the kernel
Putting it to the test
FreeBSD 6.0 was a positive note in what had been a negative trend with the buggy and unstable FreeBSD-5 series. I used to rely on FreeBSD as my desktop operating system a few years ago, but had to switch to GNU/Linux when my system became too unstable to use.
FreeBSD 6.1 is best described as a refinement of 6.0, but it’s nowhere near perfect yet. The good news is, the AMD64 version of FreeBSD 6.1 is better than ever, though the credit for this success is half due to many third-party software packages in the Ports tree that are now fully 64-bit clean.
Despite all of the improvements in the network drivers, I had a little trouble with the Nvidia nve driver — I got intermittent device timeouts in the AMD64 edition of FreeBSD. It’s possible the problem also occurs in the i386 version, but I didn’t see it happen there, and the error was rare to begin with.
I also ran into keyboard problems during installation. The installer either locked up or killed the keyboard connection the first two times I ran it; the third time through I had garbled keyboard output; and I never did get the mouse working. The devices in question were part of the Microsoft Wireless Laser Desktop 6000, which is a fairly new peripheral package. Still, there were no problems with these devices in OpenBSD 3.9 or Gentoo Linux. Part (or all) of the mouse problem was that moused would not recognize the uhid0 device node as the USB mouse.
The good news is, the major stability problems seem to be gone for good — 6.0 was not a fluke. The package problems that I had with the 6.0 installation CDs (asking you to switch discs dozens of times) also seems to have also been fixed in 6.1.
This is the first time I’ve used Portsnap for updating my Ports tree. Usually I do it the old fashioned way, via cvsup. Although it would really take a few weeks of daily updates to properly test a framework like this, I found it to work as advertised during my test period. Portsnap requires a lot of initialization — you have to download a snapshot, then rebuild the Ports tree before you can do anything with it. Portsnap kind of reminded me of Gentoo’s Portage system, although a bit more primitive. Anyone who is already familiar with cvsup, portupgrade, and the Ports tree won’t find anything new and wonderful about Portsnap, but newcomers will probably find this to be a much simpler way to update their installed programs.
Conclusions and developer recommendations
Overall I found FreeBSD 6.1 to be another step in the right direction, and I think it’s encouraging that there weren’t any revolutionary base system changes in this release. Sometimes big changes are unavoidable, but historically the FreeBSD team has bungled such leaps as the switch to the ULE scheduler, the introduction of SMP, and the liberation of the base system from the big giant lock. Sometimes you have to stop and make sure that what you presently have is working properly, and it looks like now is that time for FreeBSD. I applaud their efforts with 6.1 and look forward to testing 6.2. In fact, I may even try to switch my workstation back to FreeBSD in light of its newfound stability and networking enhancements.
Here’s what I’d like to see in FreeBSD in the future:
- More refactoring. It looks like the FreeBSD team is on the right track, but it’s worth reiterating the fact that the best progress happens in small steps. In every single FreeBSD release I have used back to 5.0, I’ve found at least one indication (and often many) in the form of error messages and crashes that something isn’t working right. That shouldn’t happen.
- Installation of default config files. After installation, FreeBSD is left with no real make.conf or rc.conf, although there are example files in /usr/share/examples. Every time I install FreeBSD, I find myself copying over these files (and cvsup supfiles) to /etc and customizing them myself. I don’t see why the examples can’t be installed into /etc by default.
- AMD64 Java binaries. FreeBSD now has a license to distribute JDK and JRE binaries from Sun, but only on the i386 architecture. A 64-bit version would be nice.
- Better organization of the Ports tree. Although I think that the Ports tree in general could do with a standard naming convention for categories and programs, a bigger complaint of mine is that every non-English language has to have its own directory. I’d like it if everything in /usr/ports could comfortably display on one screen after an
lscommand. If all of the foreign language ports were moved to a single directory (or a metadirectory to house the current dirs), that would free up a lot of screen space, which makes finding categories and programs much easier. I also think that the science directory could include the biology and astro categories; and I strongly question the need for an “x11-clocks” software category.
Discuss this article or get technical support on our forum.
| Purpose | Operating system |
| Manufacturer | The FreeBSD project |
| Architectures | x86, AMD64/EM64T, SPARC64, PC98, Alpha, PPC, IA64 |
| License | BSD, although some parts of the base system are under the GPL or other free software licenses |
| Market | Web, email, and other network services servers; also useful as a desktop OS |
| Price (retail) | Free to download, or $35 for a CD set |
| Previous version | FreeBSD 6.0 |
| Product website | Click here |
Copyright 2006 Jem Matzan.
|
|
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License.
|
WordPerfect Office overview
This section is for readers who are new to WordPerfect Office. If you’re already familiar with this software suite, you’ll probably want to skip down to the next section to see what’s new in this release.
Corel WordPerfect Office is built around some of the industry’s oldest and most feature-packed software. The WordPerfect word processing program predates Microsoft Word, and was the premiere DOS word processor before graphical interfaces (ala Windows) were the standard. Quattro Pro has also long been recognized as a hard-hitting spreadsheet program. Newer additions to the suite include the PowerPoint-like Presentations program, the Presentations Graphics drawing program, and the Mail personal information manager.
All of the WP Office suite programs are compatible with their Microsoft counterparts, and use Microsoft file formats interchangeably.
WordPerfect Office is often used in law offices and courtrooms, many of which are standardized on the WordPerfect file format. The reasons for this are WP’s excellent legal document tools and its ability to integrate with other external legal software — features that competing office products do not have.
The differences between WP Office editions
There are now four distinct editions of WordPerfect Office: Home Edition, Standard Edition, Student and Teacher Edition, and Professional Edition. The differences in functionality among these versions can vary from minor to major.
The first major difference among the four is price: Home Edition is U.S. $100; Standard Edition is $300; Student and Teacher Edition is $100 (with proper academic credentials); and Professional Edition is $400. Upgrade editions of the Standard and Professional Editions are, as usual, somewhat less expensive. Though Corel advertises WordPerfect Office as being substantially cheaper than Microsoft Office, as you can see, that point of view greatly depends on which versions of WP Office and MS Office are being compared.
The other major difference among the versions of WP Office X3 is the included software. Standard Edition includes WordPerfect, Quattro Pro, Presentations, Presentations Graphics, Mail, Pocket Oxford Dictionary, Legal tools, and the OfficeReady template organizer.
Professional Edition includes WordPerfect, Quattro Pro, Presentations, Presentations Graphics, Pocket Oxford Dictionary, Legal tools, OfficeReady, the Paradox relational database program, a software development kit for WP Office, Microsoft Visual Basic for Applications, and various articles of documentation that are specific to software development for the WP Office X3 platform. Note that Professional Edition — for whatever strange reason — does not include WordPerfect Mail.
Student and Teacher Edition is licensed only for non-commercial use, and includes WordPerfect, Quattro Pro, Presentations, Presentations Graphics, Paradox, Pocket Oxford Dictionary, and OfficeReady.
Home Edition is the most watered-down of the bunch, including WordPerfect Home Edition, Quattro Pro Home Edition, and OfficeReady. Also bundled with Home Edition are Corel Photo Album 6 Standard, Pinnacle Studio SE, Pinnacle Instant CD/DVD LE 8, and Norton Internet Security 2006. You might notice that all of this software has reduced functionality — you’re getting the bare bones versions of these programs.
WordPerfect Home Edition (the program, not the suite) is missing the following compared to the Standard Edition:
- Open and edit PDF files
- Save without metadata
- WordPerfect file format conversion utility
- Document collaboration and review tools
- Legal tools
- XML creation functionality
- Visual Basic tools
- Pocket Oxford Dictionary
- Signatures
- No WP 5.1 or Legal compatibility modes
And Quattro Pro Home Edition is missing:
- Lotus 123 compatibility mode
- Insert external data
- Visual Basic tools
- Publish to XML
- CrossTab reports
The rest of this review will concentrate on WordPerfect Office X3 Standard Edition.
What’s new in X3
Office suites don’t change much from release to release anymore, but WP Office X3 does offer something that previous editions did not have: a good personal information manager (PIM) and email client. A few releases ago, Corel Central was WordPerfect’s somewhat substandard email client. It was dropped as of WordPerfect Office 12, when Corel conceded the email/PIM battle to Microsoft. Instead of offering its own email client, WP Office 12 concentrated on better integration with Microsoft Outlook. Those enhancements have not been eliminated in favor of the new WordPerfect Mail program, but WordPerfect Office X3 users are likely to get more from Mail than from Outlook because of Outlook’s dependence on Microsoft Word for enhanced email functionality.
| The new WordPerfect Mail |
Quattro Pro and Presentations now have the ability to export to PDF, and all of the WP Office X3 programs have a somewhat better looking user interface.
Other than that, there are no significant new features in WP Office X3 — only slight, often invisible enhancements and updates to version 12.
WordPerfect Mail
WP Mail is a Microsoft Outlook workalike; it has almost all of the same functionality as Outlook, except it’s designed to be integrated with WordPerfect Office instead of Microsoft Office. As you can see from the screen shot, the interface is familiar and intuitive. The only thing that really bothers me about Mail is its inability to do inline spell checking. I want to know that typos and misspellings happen when I make them, and I don’t want to deal with a popup window at the end of the email showing me the unrecognized words out of context.
| Yahoo’s new word processor? |
Overall, WordPerfect Mail is a decent email/PIM application, but I don’t think it will change your mind if you’re happy with Microsoft Outlook, Lotus Notes, or Novell Evolution.
WordPerfect X3
WP Office X3’s flagship component was already as good as it could get without becoming multi-platform. When it’s as good as it can get, what do you add? A Yahoo search box, apparently. I was surprised and disappointed to see that Corel had incorporated a Yahoo Web search box into the previously clean WordPerfect interface. Congratulations, WordPerfect users, you’re now paying big bucks for a word processor that has an advertisement for Yahoo in it, and Corel will be making extra money off of your in-program Yahoo searches. WordPerfect has officially jumped the shark — assuming it hadn’t before now. I guess when you’re at the top, the only direction left to go is down.
One good point about WordPerfect X3 is its ability to open and edit PDF files. Don’t expect any miracles, though — this function is only good for extracting text and pictures from a PDF. You wouldn’t want to publish or edit an imported PDF because of the large number of formatting errors that occur during the translation.
| Quattro Pro X3 |
The only other feature enhancement of note is the ability to save a document without its metadata. Hidden metadata in Microsoft Word documents has been the subject of a few embarrassing corporate scandals over the past few years. It’s nice that WordPerfect has the ability to remove such data, but it kind of makes you question why this kind of information is there in the first place.
Quattro Pro X3
Some minor changes were made to the CrossTab Reports function and the charting tools. You can now maintain connections with ODBC databases through CrossTab, and there is better rendering functionality for charting.
Presentations X3
Presentations and Presentations Graphics haven’t changed much, either. Basically, Presentations now has anti-aliasing for fonts and graphics, and a template browser called Master Gallery. Presentations Graphics is now a separate application with more vector drawing and shape tools.
Extras and add-ons
| Presentations X3 |
The Oxford Concise Dictionary is available as an add-on to WordPerfect for U.S. $20. This is nothing new — it’s been around since at least version 10. This is not a product; it’s an “unlock key,” which allows you to access the full functionality of the software that you’ve already purchased. The Oxford Concise Dictionary adds in-program dictionary lookup functionality to WordPerfect, so if you need to look up a word, just right-click it and then click on Dictionary in the popup dialogue to see its definition. You can also search the dictionary if you like. No other word processor has this kind of in-program functionality, and to professional writers or students, it’s worth the money.
During installation, Corel pushes you to install the Yahoo toolbar for Internet Explorer — more of the same in-bed-with-Yahoo crap that nobody who buys a commercial office suite wants to see. This isn’t so much an “extra” as it is a mild form of spyware, monitoring what Web sites you go to so that Yahoo can “better serve you” by selling marketing data.
Conclusions
If you’re currently using (and happy with) WordPerfect Office 10, 11, or 12, there is no good reason to upgrade to X3. All of the features necessary for most “office” work were present in these versions, and there aren’t any significant advantages to upgrading. I think the real point of WP Office X3 is to appeal to people buying new office suites, or those upgrading from ancient versions of MS Office. And — believe it or not — there are still a significant number of people who are using prehistoric versions of WordPerfect for DOS as well.
| Presentations Graphics X3 |
I get the distinct feeling that there were two reasons for Corel to come out with this new release: first of all, to release before Microsoft Office’s next version. Secondly, to remind people that Corel still sells an office suite and that it is modern and up-to-date. The kind of “enhancements” found in WordPerfect Office X3 are the kind of standard updates and bug fixes that you used to get for free in service packs. I guess now we have to shell out for every release rather than rely on Corel to support older yet fully capable versions of the same software.
What is the future of WordPerfect Office? Are we going to be buried under a growing pile of new versions that offer trivial updates? I think the outlook is bleak for WordPerfect Office, particularly when considering the growing GNU/Linux and Apple markets, and the competition posed by cheaper alternatives such as OpenOffice.org.
That’s not to take away from the competency of WordPerfect Office X3. It’s a more-than-capable office suite and it includes what I believe to be the world’s most powerful word processor. Having said that, I think the Yahoo “partnership” in WP Office X3 portends the beginning of the end for this once-great desktop software suite.
Discuss this article or get technical support on our forum.
| Purpose | Office suite |
| Manufacturer | Corel |
| Platforms | 32-bit Windows 98SE, 2000, XP, and 2003 |
| License | Proprietary, restrictive in all the usual ways |
| Market | Law offices, current WordPerfect users |
| Price (retail) | U.S. $270 for the Standard Edition (click here to buy it from Amazon.com) |
| Previous version | WordPerfect Office 12 |
| Product Web site | Click here |
Copyright 2006 Jem Matzan.
|
|
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License.
|
OpenBSD overview
This section is for people new to OpenBSD. If you’re already
familiar with it, you may want to skip down to the next section on the
improvements in 3.9.
The BSDs in general have a common reputation for high code quality and poor
hardware support. In OpenBSD’s case, the code is definitely high quality.
Nothing in the default installation is half-implemented, or committed on an
experimental basis. If full functionality is not yet possible for hardware
drivers, basic functionality is achieved and thoroughly tested; this forms the
basis for further driver development. Everything you get in the release is
production-ready, secure by default (meaning the administrator does not have to
lock down the system — it is already locked down, and services must be
individually enabled), and comes with possibly the finest integrated
documentation in the Unix-clone world. While you might find a poorly
programmed driver or other base system component in other BSDs and GNU/Linux
distributions, in OpenBSD if something is supported, it works. Like all
operating systems, however — yes, even Windows — not everything is
supported.
Hardware support is a sensitive area for the OpenBSD developers. Since they
won’t allow any proprietary code in the base system, and since manufacturers
are reluctant to dedicate resources to writing official OpenBSD drivers, the
development team is notorious for creating their own drivers through
reverse-engineering. As a result, OpenBSD’s RAID and wireless network card
support is exceptional — better than Linux’s in some ways. It also has
surprisingly good ACPI support, particularly on laptop computers. In fact,
because of the good, documented wireless and ACPI support, OpenBSD makes a fine
laptop operating system. The only significant obstacle for desktop users is the
lack of hardware 3D acceleration for video cards.
OpenBSD is among the most secure x86/AMD64 operating systems in the world.
Cryptography is integrated into nearly every part of the operating system;
libraries are loaded in a random fashion; and program and daemon privileges can
easily be isolated from the rest of the system via chroot, and privilege
separation and revocation.
A complete OpenBSD installation from the commercial CD set can be completed
in about five minutes. Extra programs can be added through an APT-like package
tool that has access to thousands of precompiled packages, or custom compiled
through the Ports system. OpenBSD even has binary emulation layers for FreeBSD,
Linux, Unix SVR4, SCO/ISC, and BSD/OS programs, so if there is no native
OpenBSD port of your favorite *NIX application, you can probably still use it.
Each OpenBSD release has a graphical theme and a song that goes with it. The
theme reflects a major concern that the OpenBSD programmers are addressing or
bringing to light.
For more information on OpenBSD, you can visit
href="http://www.openbsd.com" target="_blank" rel="nofollow">the
project Web site, or this article on
using OpenBSD.
New in 3.9
OpenBSD advances slowly; each release represents a large collection of small
changes. If you want a complete list of changes since 3.8,
href="http://www.openbsd.com/plus39.html" target="_blank"
rel="nofollow">visit the 3.9 changelog. Below are the
highlights:
- Better Apple PPC support
- Improved x86/AMD64 hardware support, especially network adapters and drive controllers (standard fare for OpenBSD releases)
- Upgrade support in the package tools
- Revamped wireless networking framework
- Support for hardware sensors
OpenBSD 3.9’s theme revolves around “the blob,” referring to proprietary
hardware drivers that rely on a large binary file to achieve full
functionality. these “binary blobs” are often poorly programmed and are
incomplete, support few devices or configurations, and have bugs that the
operating system’s programmers can’t fix because they don’t have access to the
source code. Blobs cannot be fixed by anyone other than the device
manufacturer, and if they have security holes, the operating system developers
can’t patch it. Binary blobs also present a licensing threat because the
proprietary agreements that govern them put heavy restrictions on
redistribution. Some operating system projects or companies will work out
distribution agreements, but rarely are such deals made for free, and they
generally restrict the user’s freedom to redistribute the software on their
own. Understandably, projects like OpenBSD and GNU find situations like that to
be inconvenient at best, and dangerous at worst.
Putting it to the test
Usually I try to “break” an operating system by putting it on a wide variety
of computers. Since I have never been able to cause any errors (aside from
trying to use RAID cards that are not supported), I skipped that phase and
decided to spend the entire time using OpenBSD instead.
I found the improved package tools to be a huge benefit. Rather than
compile everything from source or download the packages and dependencies that I
wanted to install, I set the configuration to download packages automatically
when I try to install anything from Ports. So I go to /usr/ports/editors/vim
and when I run make install clean, a package is downloaded instead
of compiling it from source; if a package isn’t available, Ports goes ahead
with the compilation. I also tried out the new update option, but being so
close to the release, no updated packages were found. Just to see what would
happen, I substituted a 3.8 package directory for a 3.9 installation. The
result was that many of the packages showed upgrades which were really
downgrades to 3.8 packages. I suspect that is a bug — package upgrade tools
should only recognize higher versions as upgrades, and there should be some
effort to verify that the source directory contains viable and up-to-date
packages.
Conclusions and developer recommendations
The improved package tools make OpenBSD much easier to install, upgrade, and
maintain. For those who need to install several programs on top of the base
system, the new package tool functions are priceless.
Here are some features I’d like to see added to future editions of OpenBSD:
- Default color console support. The DEC VT220
terminal, along with all other monochrome consoles, is long dead –
even Digital itself replaced the VT200 series with color text and
graphics terminals. Why is OpenBSD still using it if it’s so old and
limited? For the x86 and AMD64 OpenBSD ports, I’d like to see some
enhanced console features. Color (which can be achieved presently by
either hacking the terminal config files, or by installing GNU Screen
and setting “screen” to the default terminal) and framebuffer support
for higher resolutions are two modern conveniences that I’d love to see
in the default OpenBSD installation. - Easier Java installation. I realize that licensing
restrictions prevent the Java Development Kit from being distributed
with OpenBSD. Those same licensing issues prevent an easy JDK
installation, but I’m sure it could be a little simpler than
downloading so many files from multiple sites and waiting hours for the
source code to compile, then adding the path settings by hand. Can’t
some kind of agreement be worked out with Sun to provide an OpenBSD
binary, even if it is not included with the base system? - WPA support. I know that WPA is a
lousy way to encrypt wireless data and that it creates a false sense of
security, but there are a lot of wireless access points that require
clients to use WPA. Since OpenBSD’s wireless networking framework does
not yet support it, you can’t connect an OpenBSD machine to a router
that requires it.
Discuss this article or get technical support on our forum.
| Purpose | Operating system |
| Manufacturer | The OpenBSD Project |
| Architectures | x86, AMD64/EM64T, SPARC, SPARC64, Alpha, HP300, HPPA, Mac68k, MacPPC, mvme68k, mvme88k, luna88k, VAX, MIPS, Zaurus |
| License | BSD |
| Market | Servers of all kinds, for home, office, or enterprise; security-minded desktop users and sysadmins |
| Price (retail) | U.S. $45 |
| Previous version | OpenBSD 3.8 |
| Product Web site | Click here |
Copyright 2006 Jem Matzan.
|
|
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License.
|
Secure by default
First of all, you should familiarize yourself with the concept of secure by default. A simple way of explaining it is, everything is turned off until you turn it on. That means that the Web server is not going to start until you manually add httpd to the startup script. OpenSSH services will also be unavailable unless specifically enabled.
Because it is secure by default, you may have to do more initial configuration with OpenBSD than with most other Unix and Unix-like operating systems, but you’ll spend a lot less time securing it — maybe no time at all, if you follow the instructions in the manual pages.
Quick OpenBSD facts
- Default shell: Korn shell (ksh) for root; Bourne shell (sh) for users; the C shell (csh) is also included by default.
- Default editor: vi
- File system: BSD Fast File System (FFS) with soft updates (no journalling necessary)
- Kernel: 4.4BSD-based, monolithic, SMP-capable, does not support external kernel modules by default
- Binary support: OpenBSD, FreeBSD, SCO/ISC, SVR4, Linux, BSD/OS
- Supported architectures: Alpha, AMD64/EM64T, cats, hp300, hppa, i386, luna88k, mac68k, macppc, mvme68k, mvme88k, sgi, sparc, sparc64, vax, zaurus
- Hardware support (i386)
Making it easier to mount CD drives
First you need a mount point for your CD or DVD drive. I recommend /mnt/cdrom (create it with mkdir /mnt/cdrom), but you can do whatever you want — just remember what it is so you can mount the CD drive on it later, and modify the below instructions accordingly.
OpenBSD’s default /etc/fstab file does not have a line for CD/DVD drives. Most people’s optical drive will use the /dev/cd0a device node, though there are a few others. Type ls /dev/cd* to see all of the possibilities. You may want to test mount them with a CD in the drive if you are unsure which node is the right one.
Once you have a directory to mount to and you know which device node corresponds with your optical drive, it’s time to add a line to /etc/fstab:
/dev/cd0a /mnt/cdrom cd9660 ro,noauto,nosuid,nodev 0 0
Setting up Ports and packages
OpenBSD doesn’t include much software in the default system, so you’ll probably have to add most of the programs that you need. There are two ways to add software to OpenBSD: through the Ports tree, and through precompiled binary packages. Neither is necessarily better than the other, but here are some basic observations about both systems that will help you decide which approach to take:
- Ports compiles each program from source code, which allows you to modify the Makefile to accommodate specific needs; packages are already compiled with the default options.
- Packages are installed moments after they are downloaded; Ports can take a long time to compile.
- Packages are easier to upgrade when it comes time to switch to the next OpenBSD release; Ports are trickier to upgrade, and will take much longer to reinstall.
- There are about 200 more programs in Ports than there are in the package repository. Many of these extra programs are proprietary (the Java Development Kit, for instance).
- It’s easier to find programs in Ports than it is the package database, especially when you’re offline. You can, however, use the Ports tree to find a program you want to install, then use
pkg_addto install the package.
My recommendation is to install the Ports tree (see below for instructions), but use packages whenever possible. The two may be used in conjunction with each other (see below), but if you do not install the Ports tree you will have to know the exact package names, as OpenBSD package tools do not use any kind of name resolution. That means you can’t just type pkg_add gnome and have GNOME installed. You have to know the exact package name, which has its version number and patch level appended to it. Since you probably don’t know exactly what version and revision of GNOME is available for the current release of OpenBSD, you’ll have to use your OpenBSD CD to browse the package list. Alternatively you can connect to the OpenBSD FTP server and search through the same list online.
Mount your OpenBSD CD and then switch to its directory so that you can browse it. Assuming you mounted it on /mnt/cdrom, the i386 package directory is in /mnt/cdrom/3.9/packages/i386/ (assuming you’re installing packages in OpenBSD 3.9 — if not, change the version number in the path). Use the ls command to look through the directory and find programs that you want to install.
Next you’ll need to tell your package installer where to look for package files. By default it takes a command line argument, so you have to specify an address and file name for every package you want to install plus all of its dependencies. Obviously that is not a very efficient way to do things, so let’s add a default path for the pkg_add command to look in.
Initially you may want to use the OpenBSD CD because it’s quick, available, and doesn’t require an Internet connection. It doesn’t have all of the OpenBSD packages on it, though — just the ones there was space for. If you want access to more packages, you’ll need to use the FTP site (detailed below). To add the CD as the default package location, use vi to open /root/.profile and then add these two lines at the bottom:
export PKG_PATH=/mnt/cdrom/3.9/packages/i386/
export FETCH_PACKAGES=yes
The “3.9″ and “i386″ will change depending on the release of OpenBSD you’re using and the architecture of your computer. If you’re installing OpenBSD 3.8 or 4.0 on an AMD64 or VAX machine, change the directories accordingly. Before you install any packages, make sure the correct CD is in and mounted.
If you want to install packages at a later time and don’t want to lug around your OpenBSD CDs, or if you didn’t find the programs you want on the CD, you can use an FTP package mirror instead. First find a mirror in this list that is closest to your location. Then add it to /root/.profile as shown above:
export PKG_PATH=ftp://ftp2.usa.openbsd.org/pub/OpenBSD/3.9/packages/i386/
The mirror site above is only an example — use one from the list I linked to above.
Log out for the changes to take effect. The next time you log in, pkg_add will automatically retrieve any packages you tell it to, plus their dependencies. If you try to install a program from Ports, OpenBSD will check to see if there is a package available first; if so, it downloads that instead (to remove this feature, comment out the FETCH_PACKAGES line in your profile). Here’s an example:
pkg_add -v gnome-desktop-2.10.1.tgz
The -v flag makes the output more verbose; it is not required. In the above example, GNOME and all of its dependencies will then be downloaded and installed on OpenBSD 3.8.
After you’ve added a package source, whenever you try to install a program from Ports, OpenBSD will automatically try to retrieve the package first. So even though there is no name resolution for packages, Ports can act in that regard.
Adding the Ports tree and OpenBSD source code
OpenBSD does not install the Ports tree or the operating system source code by default. To install them yourself, just copy them over from CD #3 or download the source files from the OpenBSD FTP site. You can find them in the /pub/OpenBSD/3.8/ directory (substitute 3.8 for your release version). The files are called src.tar.gz and ports.tar.gz.
Unzip and untar the src.tar.gz file to the /usr/src/ directory, and the ports.tar.gz file to the /usr directory (it will unpack to a new /usr/ports/ directory). That’s basically all there is to it.
Java support
Installing a Java Development Kit on OpenBSD is more difficult than on most other OSes. On the other hand, most other OSes don’t really care about licensing to the degree that OpenBSD does. Since proprietary packages cannot be included with OpenBSD, you’ll have to use the Ports tree to install the JDK. There is currently no option to install a standalone Java Runtime Environment without the development kit.
To install a JDK (and by association, a Java Runtime Environment as well), first you’re going to have to manually retrieve the JDK binaries, source code, and BSD patch sets from a few Web sites, then you’re going to have to compile them from source. It takes a long time, so I suggest fetching the files all at once, then letting OpenBSD work on compiling them overnight. This process also requires a lot of free space in /tmp and /usr, so make sure you’ve got some room to work with. The amount of free space necessary depends on which JRE or JDK version you are installing. At minimum, a few hundred megabytes; at maximum, maybe more than 1GB. The reason why you need so much disk space and compile time is, Java must bootstrap from a previous version. That means that JDK 1.5 bootstraps from 1.4, which bootstraps from 1.3. So you’re downloading files for and compiling three JDKs. That is, unfortunately, the price you pay for using Java on OpenBSD.
The file names, versions, and addresses will change with every release. A sure-fire way to find out what files require manual fetching is to go to /usr/ports/devel/jdk/1.5 (assuming you want Java 5.0 — versions 1.3 and 1.4 are also available) and type in make. Any initial dependencies will be fetched and compiled, and when it reaches a point where your intervention is required, the exact names and Web addresses of the files you need to retrieve will be printed on the screen. Go to the addresses, download the files, and save them to /usr/ports/distfiles/, then continue the build. If you miss a file or two, the build process will tell you which files you’re missing.
As an example, here are the file names and addresses for JDK 1.5 on OpenBSD 3.9:
- j2sdk-1_3_1_16-linux-i586.bin from http://java.sun.com/j2se/1.3/download.html
- j2sdk-1_4_2-linux-i586.bin from http://java.sun.com/products/archive/j2se/1.4.2/
- j2sdk-1_4_2-src-scsl.zip, j2sdk-1_4_2-bin-scsl.zip, j2sdk-1_5_0-bin-scsl.zip, and j2sdk-1_5_0-src-scsl.zip from http://wwws.sun.com/software/communitysource/j2se/java2/download.html
- bsd-jdk14-patches-7.tar.gz and bsd-jdk15-patches-2.tar.bz2 from http://www.eyesbeyond.com/freebsddom/java/jdk14.html
Lastly, you will have to add the Java executable path to your shell configuration file. Assuming you are using the default Bourne (sh) or Korn shells (ksh), the file to edit is ~/.profile. If you’re using the C shell (csh), the file is ~/.cshrc. Bash is ~/.bashrc, and the Z shell (zsh) is ~/.zshrc. Somewhere in one of these files you will find a PATH environment variable. Add /usr/local/jdk-1.5.0/bin to it (or whatever Java version you installed). Some programs may require a JAVA_HOME setting as well:
export JAVA_HOME=/usr/local/jdk-1.5.0/
Log out for the changes to take effect. Remember to go to the /usr/ports/devel/jdk/1.3 and 1.4 directories and run make deinstall clean to remove the older JDKs and build files that you bootstrapped from.
Enabling FreeBSD and Linux binary support
OpenBSD comes with a variety of binary compatibilities compiled into the kernel. They are, however, disabled by default. To enable them, edit /etc/sysctl.conf and skip down to the end of the file where the binary emulation section is. Uncomment any lines that you need support for. Most people will want Linux binary support:
kern.emul.linux=1
FreeBSD binary support is in the same section. Again, just uncomment it to enable it. Feel free to look through the rest of the file to see if there are any other options you might be interested in (I usually enable wsmouse, which is the console mouse driver).
To achieve optimum Linux binary compatibility, you will also need to install the redhat_base package, then create a /proc directory and a line in /etc/fstab to mount it at boot:
/proc /proc procfs rw,linux 0 0
Recompiling the kernel
I’ll start this section by saying that you probably won’t ever need to do this. Even if you often find yourself messing with Linux or FreeBSD kernel options, you’re likely to never need to mess with OpenBSD’s — pretty much everything is compiled in by default. Some say that the fewer kernel options you have (in other words, taking out what you don’t need), the better the kernel performs (or at very least, the smaller it is), but I haven’t done any performance testing to verify that.
The kernel configuration files are in /sys/arch/i386/conf (substitute i386 for your architecture if it is different). The standard kernel config is in the GENERIC file. If you want to compile a custom kernel, I recommend creating a separate file based on GENERIC rather than screw around with the original. Traditionally a custom config file is called MYKERNEL — so just copy GENERIC to MYKERNEL and edit from there. The SMP kernel options are in GENERIC.MP. If you’re on an SMP machine, don’t bother editing the file — it only contains a few SMP-specific options that override GENERIC — just skip to the next step.
Once you’ve got your configuration the way you want it, run the config program on it:
/usr/sbin/config MYKERNEL
If errors are detected, fix them and re-run config. If no errors are detected, switch to the directory that config created:
cd ../compile/MYKERNEL
Then compile the kernel:
make clean && make depend && make && make install
SMP support for multi-core, multi-CPU, and Hyper-Threaded machines
If you’re on a multi-core or multi-CPU system and want to use the SMP kernel, you do not need to recompile anything to get SMP support. While OpenBSD uses the single-CPU kernel by default, you have the option of installing the bsd.mp kernel during the installation process. If you choose that option, bsd.mp will be in your / directory.
Before you switch to bsd.mp, test it out by typing it in at the boot prompt when the system starts (before OpenBSD starts its init process). If all goes well, just switch to your root directory and move bsd.mp to bsd:
mv bsd.mp bsd
Further information
OpenBSD has the most thorough, easy to follow documentation of any operating system I’ve ever used. Just use the man command to look up nearly anything that is included with the base system or installed packages. If you’re new to OpenBSD, type man afterboot to get some tips and instructions for setting up and configuring various services and devices.
If you’re still stuck after reading the documentation, a great source for online BSD help is the OpenBSD section of the BSD Forums Web site.
Discuss this article or get technical support on our forum.
Copyright 2006 Jem Matzan.
|
|
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License. |
|
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License.
|


