Phobos An overview of PHOBOS

PHOBOS is a tiny operating system that runs on PC hardware. Although intended to be a demonstration system, it could be made to do real work if required. Its primary purpose, however, is to present a working operating system that is small enough for an individual to understand, and to show how various parts of the PC hardware are programmed.

PHOBOS is loosely based on a much, much earlier system called DEIMOS, which was written by Brian Gilmore at the Edinburgh Regional Computing Centre. However, there are substantial differences:

  • DEIMOS was written in IMP; PHOBOS is written in standard ANSI C.
  • DEIMOS ran on the Digital PDP-11; as stated, PHOBOS runs on the IBM PC architecture.
  • DEIMOS had to operate under more stringent hardware constraints, both in terms of memory and processor power.
  • PHOBOS is more complex in some places, due to the relatively crude nature of some parts of the PC hardware.

The target system for PHOBOS has been kept deliberately simple. No proper memory management is used, except for the segment-based addressing provided in the real mode of the processor. Similarly, because only real mode is used, the memory usage does not exceed the approximate limit of 640KB, plus the 384KB of adapter space. Memory above 1MB is not used at all. These limitations make the system smaller and simpler, and thus easier to comprehend. A more sophisticated version may be developed in the future.

The minimum hardware requirements for PHOBOS are as follows:

  • A PC with any CPU from an 8086/8088 upwards, all the way to a Pentium 4 or one of the AMD CPUs.
  • At least 256KB of memory.
  • A 3.5 inch diskette drive.
  • A VGA display card
  • A keyboard interfaced via an AT or PS/2 keyboard port (i.e. not USB).

In its current form, PHOBOS does not support a hard disk.

For development, the following environment is required. This may be on the same machine, or on a different one:

  • A copy of PC-DOS or MS-DOS, or a good emulation of this (e.g. in OS/2, eComStation or Windows).
  • A copy of the Microsoft MASM assembler, version 5.10.
  • A copy of the Power C compiler from Mix Software, with the optional Library Source package. There are plans to move the source to an open source compiler and assembler.
  • For work on certain parts of the kernel, and particularly for work on the bootstrap, an inexpensive PCI diagnostic card is useful but certainly not essential.

Valid XHTML 1.0! Valid CSS!

This site is copyright © 2016 Bob Eager
Last updated: 30 Sep 2016