Nov 01, 2019  BeOS R3 – Dano series This series was made as an exploration of the Be operating system from R3 (the first release on Intel) to R5 and the final (leaked) beta “Dano”. In addition, the series also takes a quick look at the Be website, which shows the Browser and Dock (found in pre-R3 versions) inside the review extras.

BeOS

Configurations

VersionCompilersStatusTests
6.2 (ZETA)GCC 2.9Compiled25/28
6.2 (ZETA)GCC 3.4.3Compiled25/28
Beos

About

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 download

Installation

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.

Update. The easiest way to run ZETA in VM is to use VMware with Windows 2000 profile, 512 MB of RAM and 8 GB HDD, then one can skip magic with hard drives. In that case, just attach two CD-ROMs with boot disk and the installation disk (former must be in the first drive). Everything must be attached to IDE bus. The rest of instructions are valid.

To run SSH server you must allow root login in the config, and then use baron user to login.

BeOS lacks any support for named IPC primitives (semaphore, memory). Because of that, the following modules of the library are disabled:

  • Named semaphores.
  • Shared memory.
  • Shared memory buffer.

CMake 2.8.x (early versions like 2.8.1 without libarchive) can be easily built with bundled GCC compiler. Only curl library shipped with CMake may require the adjustment of the path to socket.h in select.c file.

GCC

Actualizar ultra box z5. BeOS has ancient version of GCC 2.9 which is capable of compiling library itself and the tests, however special patched versions of GCC compiler are available, usually it is 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.

Abel carlevaro cuaderno 4 pdf. 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'.

References

  • The BeBook is the best source for API reference.