Skip to content
Alexander Saprykin edited this page Dec 26, 2016 · 12 revisions

BeOS

Configurations

Version Compilers Status Tests
6.2 (ZETA) GCC 2.9 Compiled Passed
6.2 (ZETA) GCC 3.4.3 Compiled Passed

BeOS is a proprietary 32-bit operating system originally developed by Be Inc for BeBox hardware. It was developed to take advantage of multimedia and pervasive multithreading, as well as clean GUI architecture based on C++ classes. It has also its own 64-bit journaling file system called Be File System (BFS).

Last official BeOS version was R5.0.3, but after Palm's acquisition of Be Inc the latest development version of BeOS R5.1 ("Dano") was leaked. One of the main improvements was BeOS Networking Environment (BONE), which brought more complete network stack. After that BeOS was developed by yellowTAB using R5.1 codebase (not confirmed officially) under the name of yellowTAB ZETA and by magnussoft under the name of magnussoft ZETA. But soon it was discontinued under the uncertainty of legal status and absence of agreement from ACCESS CO who bought PalmSource with all rights to BeOS itself.

BeOS versions before R5.1 ("Dano") are unsupported due to the poor network stack which even doesn't have calls like getsockopt(), so the best option is to use latest ZETA as the most feature complete version.

BeOS installation on modern hardware or as a virtual machine requires some magic, especially for versions before ZETA. Below are some tips for installation on a virtual machine:

  • Usually BeOS installation CD has 2 separate tracks: first is a copy of a bootable floppy image (ISO9660), the second contains installation data (BFS). If you are going to burn a CD image onto a real CD, make sure you have enabled multitrack burning, and you also need to tell a burner how to split the image in tracks (in most cases it is a CUE file). You can also find BeOS distribution in a form of two separate images (floppy and CD), but you can use bchunk utility to split a single image. The problem with virtual machines is that they are not able to handle multitrack images, so you need to split it and use a floppy image and a CD image separately.
  • Use only IDE bus to connect HDD and CD-ROM devices, HDD drives should be connected first.
  • Add first HDD with a size of about 100 MB and leave it as it is.
  • Add another HDD (say, several GB) drive. On this step you need another virtual machine (i.e. Linux): connect the HDD drive to it and format it in FAT32, disconnect and connect the drive to the BeOS machine again. Without preparing the HDD drive you can get in trouble during installation.
  • Do not give a virtual machine too much RAM, because with more than 768 MB BeOS can get in trouble.
  • Do not install boot loader after the system installation - you can always boot from the floppy image.
  • To get network card working under VMware you may need to install a driver which could be taken here.
  • To set a proper VGA mode take a sample VESA file from /boot/home/config/settings/kernel/drivers/sample, edit it by adding desirable mode in the second line: mode 1024 768 16 (no extra spaces), and put it to the /boot/home/config/settings/kernel/drivers directory. If it doesn't work, you can choose a mode during the boot by hitting Space key.

CMake 2.8.x (early versions) can be easily built with bundled GCC compiler.

GCC

BeOS has ancient version of GCC 2.9 which is capable of compiling library itself, but it is not new enough to build test suites. For BeOS you need a patched GCC compiler, usually it also called as gnupro. You can find version 2.95.3 here along with the patches, but you can also get version 3.4.3 here with patches published on the mailing list.

GCC 3.4.3 port (from the link above) was configured to run from /boot/develop/tools/gnupro, so you should rename that already existing folder with GCC 2.9 version and put unpacked 3.4.3 version folder under the name gnupro instead. You should also pass additional compilation flags with include directories to CMake: -DCMAKE_C_FLAGS="-I/boot/develop/headers -I/boot/develop/headers/posix".

To build tests bundled Boost version 1.34.1 should be fine.

Clone this wiki locally