Overview

Back in the 1980s, a certain Apple executive in charge of Macintosh development was forced out of Apple, then went and founded a new computer company. They made a very advanced OS and their own hardware, but stopped producing hardware soon after to focus on software. Their OS was considered by Apple to be used as the basis of Mac OS X.

No, it's not Steve Jobs and NeXT, it was Jean Louis Gassée and Be. Gassée took over as the head of Macintosh development after Jobs left and also developed the Newton MessagePad. He left Apple and founded Be Inc. intending to make a modern operating system and powerful custom hardware to run it. Those became BeOS and the BeBox.

The BeBox aimed to be the ultimate multimedia workstation. It had dual PowerPC CPUs and tons of I/O options including four MIDI ports, multiple sound ports, and the "GeekPort", a 37-pin connector that had power plus digital and analog I/O with a built-in ADC and DAC. Less than 2000 BeBoxes were sold so it's very rare to see one today.

 

hacks_800px-Bebox_Side.jpg
Photo from Josh Carlson (https://www.flickr.com/photos/helfer/) CC by 2.0 License

The operating system, BeOS, was developed completely from scratch and had many advanced features for the time. Like NeXTSTEP it was object-oriented, but using C++ rather than NeXT's Objective-C. It had multithreading and supported multiple CPUs at a time when both were uncommon. The filesystem is 64-bit, journaling, and supports indexed metadata, features that wouldn't make their way into mainstream operating systems for years. It is POSIX-compliant so it's easy to port Unix programs to BeOS and it also has a Bash shell, even though it is not based on Unix.

Apple considered purchasing Be Inc. and using BeOS as the basis for OS X but didn't want to pay the price that Gassée was asking. Instead they went with NeXT (paying a lot more), Steve Jobs returned, and the rest is history.

Unfortunately BeOS never really caught on and Be ended up being sold to Palm in 2001.

Let's set up VirtualBox to install BeOS and see what it was like to use!

Prerequisites

Software

Before we get started we'll need a few things:

That's enough to get running, if you want to improve it and use networking you can get these:

Set up the VM

Install Virtualbox, then start it up and create a new VM.

  1. Call it BeOS and select Type: Other, Version: Other/Unknown.
  2. RAM: 512MB
  3. Create a virtual hard disk now, VDI, Dynamically allocated, 8GB.

Now we have a VM but we need to do a lot more, BeOS gets very cranky if the settings aren't just right and will crash/kernel panic/etc. Click on Settings.

  1. System: Boot Order: Uncheck Floppy
  2. System: Acceleration: Uncheck "Enable Nested Paging" and uncheck "Enable VT-x/AMD-V". See below if it's not there.
  3. Display: 32MB video memory, VBoxSVGA controller
  4. Storage: Controller: Change type to PIIX3
  5. Audio: Audio Controller: SoundBlaster 16
  6. Network: Advanced: Adapter Type: Intel PRO/1000 T Server (82543GC)
  7. Ports: USB: Disable USB.
  8. OK!

In Windows the VT-x/AMD-V options show up under System - Acceleration. Just uncheck Enable Nested Paging and uncheck Enable VT-x/AMD-V.

On macOS the VT-x option didn't show up for me but it's still there, we can get to it through a terminal. The vboxmanage utility should be in your path (/usr/local/bin).

vboxmanage modifyvm BeOS --hwvirtex off
vboxmanage modifyvm BeOS --vtxvpid off

If you called your VM something other than BeOS just substitute that name above. These two commands will turn off the virtualization extensions that BeOS doesn't like. You can see it in the main VirtualBox window under System:

We're almost there but we need to make some changes to the CD image a bit before starting.

Set up the CD image

The BeOS install CD is not a standard ISO, it has several tracks using different filesystems and needs a little adjustment to make VirtualBox happy.

After extracting the BeOS 5.0 Professional.7z file you should have three files:

  • BeOS_5.0_Professional.ccd
  • BeOS_5.0_Professional.img
  • BeOS_5.0_Professional.sub

These are from a program called CloneCD which reads the raw CD data and then saves it in its own CCD image format. The img file is the raw data and the ccd file contains information about where the various tracks are (we don't need the sub file for what we're doing). We need to convert this to a format that VirtualBox understands: cue/bin.

Luckily there's an open-source utility from GNU that can help us with that: ccd2cue. This will convert the ccd file into a cue file. If you'd like to compile it yourself and run it you're welcome to do that, but the file it generates is small enough to copy and paste:

Download: file
FILE "BeOS_5.0_Professional.img" BINARY
  TRACK 1 MODE1/2352
    INDEX 01 00:00:00
  TRACK 2 MODE1/2352
    INDEX 01 07:48:09
  TRACK 3 MODE1/2352
    INDEX 01 40:51:64

Save that as BeOS_5.0_Professional.cue.

Now you can go back to the VM settings, Storage, click the CD drive, click the little CD icon next to IDE Secondary Master, Choose Virtual Optical Disk File, and find your new cue file.

If everything went well, it should look like this:

Click OK and let's install!

Install BeOS

We're going to start up the VM but get ready to press space when you see the awesome purple boot screen.

hacks_VirtualBox_BeOS2_23_07_2019_12_34_14.jpg
One of the coolest boot screens; press space here!

Press space once you see that screen and you'll be able to change a few options. We want to select a fail-safe video mode. Navigate there with the arrow keys and press enter, then choose a resolution. A safe bet is 1024x768x16.

If you missed the menu don't worry, you can still install it just fine but your mouse won't feel as nice and it won't be in color. You can also reset the VM and try again.

Now select Continue Booting to get to the installer.

Time to install! First click Agree for the license agreement and then you'll arrive at the installer.

It doesn't see any BeOS volumes on our hard drive yet so we need to create one. Click to expand More Options and then click Setup partitions.

Select the first disk (with the hard drive icon), then go to the Setup menu, Partition, intel. Click the layout button about halfway down the page and select 1 100% Partition.

Select BeOS from the menu in Partition 1 (it says Empty right now) and check Active. Now click OK and click Proceed.

Now select the disk and go to Setup, Initialize, BeOS, Be File System. Make sure to choose 2048 for the block size, different block sizes can cause problems later. Pick a name, I called mine BeHD.

Click Initialize, then Initialize again, then click Mount when prompted to mount the partition. Now in the Mounted At column you should see a path for your drive.

Click the close button (the square at the top left) to close Drive Setup. The installer should notice the new partition and select it for you.

Select any additional options you'd like and click Begin to install BeOS!

Once it finishes you'll be prompted to install the Be Boot Manager. Click Install, then leave Install Boot Menu checked and click Next. Use the default MBR path on the next page and click Next. Click No when prompted to create a rescue disk. Leave BeHD checked, then click Next. Leave it as the default partition and select your preference for how long it should wait. Click Next, then Next again, then Yes to confirm installing the Boot Manager. Finally click Done.

Now we're back at the installer. Click Quit to reboot and get ready to press space when you see the boot screen after the boot manager.

Set up BeOS

When booting you'll first see the BeOS Partition Manager. Press enter to start booting from your new partition.

Press space at the boot screen again and select your fail-safe video mode. BeOS doesn't recognize the video card that VirtualBox provides so we have to specify a VESA resolution this way. In a bit we'll make it permanent.

If you select Continue Booting and then get a kernel panic, try going back to the VM settings and completely disabling USB and/or audio. That seemed to do the trick for me but the panic wasn't consistent and sometimes things would work fine with those enabled.

hacks_VirtualBox_BeOS_06_08_2019_12_06_16.jpg
Welcome to BeOS!

There are a few things we can do to make life easier, first let's set a default video mode so we don't have to select one every time we boot.

Let's try out some features of BeOS. Close the Read Me First window and then on the desktop press Alt+F to bring up Find. Remember earlier when we said Be's filesystem was really advanced? Type 'vesa' and press Search.

Wow, that was fast! That sort of search speed seems like a normal thing today, but remember that this was in the mid-90s. Searching on any other operating system was a very slow task and Be's filesystem was years ahead of its time.

Double click the path for the second entry, /boot/home/config/.../drivers/sample/. That'll open the folder rather than opening the vesa file.

Now push Alt+F again and search for 'drivers'. We want the one in /boot/home/config/settings/kernel/. This time double-click the folder on the left side to open the drivers folder.

The goal is to have these two folders open:

Click and drag to select kernel and vesa, then right-click and drag them into the drivers folder and select Copy Here.

Now close the sample folder. We need to edit both of the new files, so double-click on vesa first and we'll set up our default video mode.

Any of the modes from the boot menu will work, for this I was using 1024 768 16. Add a new line in the same format shown in the comment:

Go to File, Save, and then close this window. Now double-click on kernel and we'll fix a cache bug.

Under the commented line that has disk_cache_size 2048, add a new line: disk_cache_size 16384

Save that file, close it, then go to the BeOS menu in the top right corner and click Restart. This time just let the system boot on its own and it should be in the video mode you entered.

Now you can explore! Check out the demos and applications and take a look at the resource page for some links to tons of BeOS software.

If you're using VirtualBox in macOS be careful of apps that use a lot of resources, like the GLTeapot demo. On my system they seem to take over all of the VM resources and make it unusable, I had to force-quit the VM. On Windows everything seems to work fine.

Advanced Setup

If you don't want networking you can skip this section.

Those extra files we got at the start have a network driver and some updates, but we need some way to get them onto the BeOS VM. It doesn't support VirtualBox's shared folders and we don't have networking, but we can mount a floppy image. If you like a challenge you can build your own image, or you can use the one I built:

ipro1000.7z

Shut your VM down, then go to the settings and add a floppy controller. Choose the image as the floppy disk.

Boot into BeOS. Right-click on the desktop and go to Mount, then click floppy. Your new disk should show up on the desktop. Open it and copy the ipro1000_0.4.zip file to your home folder. Now you can right-click the floppy and unmount it.

Go to your home folder and double-click the new zip file. BeOS came with an unzip utility out of the box, of course. In the Expand-O-Matic window click Expand.

Close Expand-O-Matic and open the ipro1000 folder. Double-click install.sh (yep, it has shell scripts!) to install the network driver.

Open the BeOS menu and go to Preferences, Network. Under Network Interfaces you should now see the Intel PRO/1000 network card that VirtualBox is providing. Click settings, choose Specify settings, and give it the following:

  • IP address: 10.0.2.15
  • Subnet mask: 255.255.255.0
  • Gateway: 10.0.2.2

Click Done and then set a host name and DNS servers (you only need one, Google's 8.8.8.8 or Cloudflare's 1.1.1.1 will work).

Click Save and restart networking when it asks.

Open the NetPositive browser in Applications and try navigating somewhere. HTTPS won't work so you'll need a plain old HTTP site, try www.google.com. It's not pretty but it works! There are better browsers available to install if you'd like.

Now that we're on the network, let's get some more files and install updates.

Download these two files in NetPositive:

The files will open once they finish downloading, so expand them both in Expand-O-Matic, close everything and go to your Home/Downloads folder.

Both of the blue pkg files were corrupt when I tried to open them, so double-click each zip and expand it again to fix the problem. Then open the BeOS5-Update3-Pro file. Click Begin, then Continue to install the update. Restart, then do the same with the cpu_fix package.

Click "Yes, I do have timing issues", then "Yes, please enable the patch".

Restart again and enjoy!

This guide was first published on Aug 07, 2019. It was last updated on Aug 07, 2019.