BeOS Heads for the Mainstream

By Scot Hacker, 4/99

[Week One]

In the 16 months since we last looked at Be, Inc.'s media-optimized operating system, the company has undergone a near-complete about-face, now clearly focusing the bulk of their development efforts on BeOS for x86, rather than on PowerPC. According to Be, Apple has demonstrated a complete unwillingness to share the technical specifications necessary to bring BeOS to the G3 or later architectures, while Intel has been actively supporting Be with both financial and engineering support. Drivers for x86 hardware have been rolling out steadily, and the company switched to the ELF binary format with release 4 (R4), a move which contributed to a 20-30% increase in performance for the OS and all applications. With these shifts in emphasis, and a growing base of native BeOS applications becoming available, we decided to take a closer look at the "other" alternative operating system.

This week we'll look at installation/configuration considerations, user-oriented features offered by the system, and the growing base of BeOS applications. Next week we'll zero in on the system's base technology and the state of BeOS hardware support.

media.small

Be has carefully optimized its operating system for media content creation and consumption, though thousands of users employ it for their daily work as well. Shown here: four QuickTime movies and four MP3 audio files being played simultaneously. Click for full-size view.

Installation

There's only one key to the BeOS installation puzzle: Make sure the hardware in your machine is supported by BeOS, and the rest is sheer elegance. Users who haven't already reserved a partition or hard disk for BeOS can use the included, limited edition of PowerQuest's PartitionMagic. PM is capable of resizing an existing Windows partition and creating a blank BeOS partition, then launching the BeOS Installer directly. Other users can simply boot from the BeOS CD with the provided boot floppy and enter the Installer directly. Installation options consist of choosing whether to install the Japanese Input Method and/or an additional 100MB of sample media and source/sample code for aspiring programmers; the rest is hands-free and automatic. When installation is complete, users are asked whether they want to install Bootman, the BeOS boot manager. Doing so places Bootman in the system's Master Boot Record so that users can select which OS to run at boot time.

Bootman successfully booted Linux, Windows 98, and BeOS on our test machine. Once installed, the system booted in under 10 seconds (counting from the time the MBR was accessed). By contrast, Windows 98 required 70 seconds to boot on the same machine. Total installation time, including repartitioning of the hard disk, was under 15 minutes.

Modern Conveniences

Aside from BeOS' many media advantages, there are a number of features that contribute significantly to users' ability to work on more pedestrian tasks. One of the most impressive features we explored was the notion of "attributes" in the filesystem. Attributes are essentially data stored in the filesystem and associated with a particular file, but not a part of the file itself. For example, BeOS' unique "Person" filetype is associated with attributes representing name, address, phone number, and so on. The Tracker (the BeOS equivalent of Explorer/Finder) is capable of displaying and sorting these attributes in columnar views, which allows users to treat the entire filesystem as a customizable database. In addition, many attributes are indexed by the filesystem, a fact which allowed us to run sophisticated queries of breathtaking accuracy and speed.

attributes.small

The Be filesystem (BFS) is capable of storing any amount or type of additional data "alongside" your files, which in turn lets users display, sort, and query the filesystem as if it were a database. The web site in the background is generated by extracting attributes from the filesystem (foreground) via shell scripts. Click for full-size view.

We discovered a number of BeOS applications putting attributes to creative use. For example, the newsreader BeInformed allowed us to display all news articles from a certain person, regardless which newsgroup they had posted to, while the e-mail client Postmaster let us set up queries as "virtual folders" capable of displaying, for instance, only the messages older than 13 days that were from a particular person and that were still unread. Some MP3 audio players and utilities store playing time, bitrate, and ID3 tag information in attributes, while imaging utilities such Thumbnail store images' height and width in attributes.

One place where the system's object-oriented design really comes to light from the user's perspective is in the handling of alien file formats. Rather than developers needing to hard-code support for, say, JPEG into every imaging application, a JPEG "Translator" is provided with the system, and any imaging application is free to take advantage of its services. We witnessed the power of this design during testing when independent developers released both GIF and Photoshop PSD Translators. Until recently, Be was unable to provide a GIF-creation Translator, due to Unisys patent conflicts with commercial software. By dropping these new Translators into the appropriate folder, all of our imaging applications instantly gained the ability to read and write GIFs, and to display Photoshop files.

We also appreciated the power of BeOS "Workspaces," of which there are now 32, rather than nine. This let us minimize clutter and keep disparate tasks and applications organized easily. Conveniently, windows can now be tossed into other workspaces by clicking the title tab and using the usual Alt+Fn hotkey.

The Application J-Curve

The world of Be software appears to be at the juncture of a J-curve. While there are hundreds more available applications and utilities available for the system now than there were last December, the field is apparently about to mushroom with professional-level offerings. Both Netscape Navigator (BeZilla) and the Opera web browser are a few months away from becoming available, Be recently announced that 26 significant audio application vendors had signed on to the Be train, and a number of video-editing solutions are also expected to appear in the second and third quarters of this year. Meanwhile, an excellent, fully integrated office productivity suite (Gobe's Productive) is about to release an upgrade capable of handling Microsoft Word and Excel documents, while new utilities, games, and miscellaneous software is released weekly by independent developers. Take a look at BeWare and BeDepot for more information.

The Usability Challenge

One of the most important keys to the success of a new operating system is bound to be on the usability front. Users serious about trying on a new operating system should spend some time in Linux, and find out what it takes to mount a floppy drive, get online via PPP, install support for a new graphics card, or perform other task that normal users take for granted. Then try the same things in BeOS.

While BeOS is without question still in the process of maturation, neither is it a toy. We were able to get real work done in BeOS over an extended time period, and found the system incredibly fast, 100% stable, and a joy to operate. Since the company offers both a money-back guarantee and a low-cost demo version of the system, interested users have nothing to lose by giving the system a test-drive.

If great technology means anything to this industry, Be is increasingly going to be the one to watch, and now is the time to start watching.

[Week Two]

Last week we took a look at a number of the speed, usabilility, and general convenience factors offered by the latest incarnation of the BeOS. This week we wanted to zero in on some common hardware-compatibility questions, and take a deeper look at some of the technologies behind BeOS that help to make it the speed demon that it is.

Hardware Support

In the short time Be has been at work in the Intel space, they've made tremendous headway gathering support for the most important hardware available out there. Let's not kid ourselves -- users won't find the same completeness of hardware support they would in the Windows or Linux worlds, but if their hardware has been purchased in the last 18 months, most people should have pleasant experiences with popular motherboards, CPUs, chipsets, and audio, video, and network devices. Be maintains a Hardware Compatibility List, which should always be referenced before undertaking installation. While most additional hardware support is made available in major and point-upgrade releases, drivers are often posted by Be in "experimental" form for early adopters, and independent developers often make hardware drivers available on their own sites (Be encourages independent driver development by publishing sample code and by actively providing developers with assistance). Unsupported hardware aside from motherboards and video cards is simply ignored by BeOS, so if your sound card, for example, isn't yet supported, you don't need to remove it just to test the system.

When supported hardware is detected, it "just works." For example, we decided on a lark to remove our R4.5 test machine's Matrox Millenium PCI video card and replace it with a Real3D StarFighter AGP. Amazingly, the system booted back up exactly as it had been -- we were never prompted for drivers or additional configuration information of any kind. The system had switched from using the Matrox driver to the i740 video chipset driver automatically and transparently. To be fair, the happy results of this test were sheer luck, as we didn't check before beginning to make sure the Real3D card was compatible, but it does show that hardware configuration on x86 machines can be as graceful as it is on the Mac, so long as the operating system is well-designed.

Configuration Options

Almost all configuration of BeOS options are handled via individual applications living in a Preferences folder, easily accessed from the Be menu (an entry in the Deskbar similar to Windows' Start menu). Users have full GUI control over audio and video parameters, filetype associations, fonts, dial-up networking, monitor resolution, drive partitioning, and much more, without ever having to worry about text-based configuration files as they might in Linux. Several of the preferences panels are new since the R3 release; in particular, the Devices panel gives users control over IRQ and other resource assignments if necessary (though BeOS handles IRQ mapping automatically for the vast majority of I/O devices). In keeping with Be's goal of becoming the "Media OS," Audio and Video preferences panels offer an incredible range of control over parameters related to audio and video information streaming through the system. R4.5, code-named "Genki" (Japanese for "all is well") consolidates these two into a single Media preferences panel.

mixer.small

The Media preferences panel gives users control over dozens of options related to audio and video streams passing through the system. Click for full-size view.

All preferences panels store their settings in files or subdirectories living in /boot/home/config/settings. While seldom necessary, users can sometimes exert additional control over BeOS configurations by adding, removing, or editing files stored in this hierarchy. Unlike Windows' registry, which is difficult to comprehend and manipulate for the average user, BeOS configuration options are clearly presented in straightforward terms. The ~/config/settings directory also illustrates one of the many joys of working with the system on a daily basis -- its exceedingly logical and well-conceived directory structure, which makes it simple to determine where files live and what they do based only on their location and filenames.

Scripting

While Byte reported earlier that BeOS does not ship with a scripting language of its own, two points must be made. First, the mere presence of the bash 2.0 shell means that a highly standard and flexible scripting language is already present; not proprietary and specific like AppleScript or AREXX, but open and nearly universal. Many bash scripts from the Unix/Linux world run on BeOS with little modification. Other important languages, such as perl, have also been ported and are fully functional.

Secondly, BeOS does not require a proprietary scripting language because all BeOS applications are automatically scriptable by theoretically any scripting language. Each application publishes a "suite" of scriptable hooks to the operating system, and an existing scripting language simply needs to be adapted to send commands to members of the published suite. Thus, BeOS applications are currently scriptable from both bash and Python. Rather than requiring that applications be built with scripting in mind, or even with any particular scripting language in mind, BeOS and its applications are scriptable by any language, automatically. The possibilities are tantalizing.

Networking

While BeOS has always supported TCP/IP natively, we were impressed to discover how easily we were able to integrate our beta copy of R4.5 into an existing Windows network, sharing files transparently with Windows 95 and 98 machines on a local LAN through the Tracker, BeOS' file manager.

Despite the fact that Be places a higher priority on media-optimizations than on making BeOS a great server platform, we used the GPL'd Robin Hood web server to serve more than 50,000 page requests in 36 hours over a home DSL connection. BeOS didn't even blink. While BeOS currently lacks the tight security of a professional server OS such as Linux, Be is clearly understating their own potential as a serving platform for small- to mid-sized institutions.

robinhood.small

RobinHood for BeOS serves it's 50,000th page in 36 hours over a home DSL connection. Click for full-size view.

Pervasive Multithreading

One of Be's key aces-in-the-hole is its extremely fine-grained multithreading, which means that both the operating system and its applications are queued up for processor attention with very tight granularity. Even Be's filesystem is pervasively multithreaded -- the concept applies from the lowest levels to the highest. Because all GUI applications are automatically multithreaded (and developers can optionally make their apps heavily multithreaded -- BeOS threads are "cheap" from a resource perspective), the system stays responsive under very heavy multitasking loads. For example, we found that simultaneously playing an MP3 audio file and a QuickTime movie in Windows 98 caused the Start menu not to respond immediately when clicked. On the same machine running BeOS, we had to run four MP3 files and four QuickTime movies before the Be menu demonstrated a noticeable lag. However, it's only fair to point out that part of the reason for this is the fact that Windows 98 completely ignores our second CPU, while BeOS automatically takes full advantage of any number of processors found in the system.

About That File System...

An additional correction needs to be made to our earlier BeOS coverage: The maximum file size in Be's 64-bit filesystem is not 18 terabytes, as previously reported, but rather 18,000 petabytes -- an almost incomprehensibly large size, but perfectly in keeping with Be's intention to build a system with no artificial limitations imposed on those trying to handle mountains of raw, uncompressed audio or video.

During testing, we appreciated BeOS' fully journaled filesystem, which provides a very high degree of data integrity even after power failures. To test BeOS' journaling capabilities, we cut power to our machine several times in the middle of various operations. Of course we still lost unsaved work, but in each case, the system booted back up as quickly as it did after normal shutdown, without requiring a lengthy fschk or ScanDisk operation.

Coming Soon

While we were able to test a beta version of BeOS R4.5, only R4 is available to the public at this writing. R4.5 is slated for release in June, though Be is committed not to unleash an unfinished product.

Fundamental to R4.5 is full realization of the system's promises to be "the media OS." While R4 brought a brand new "Media Kit" to the center of the developer's framework, R4.5 takes its potential from theory to practice by offering a pile of popular media codecs, support for additional PCI sound cards, significant audio performance improvements (BeOS already communes with sound cards with as much as seven times less latency than does Windows), and a new Media Player application capable of handling any media type for which an appropriate codec is installed.

In addition, R4.5 is slated to include limited USB support, a splashier bootloader, improved development tools, PCMCIA support for laptops, significant speed improvements in software OpenGL rendering, more printer support, and a smaller resource/memory footprint.

Users not bent on intensive media content creation and consumption would do themselves a service by investigating the system now. Media-oriented users may want to wait for R4.5 to appear, at which point many 3rd-party media applications are slated to debut as well. See www.be.com for more information.