NAOS


Table of contents

  1. About
  2. Open topics
  3. History
  4. Configuration information
  5. Building the GCC based NAOS tool chain
  6. Building NAOS
  7. Preparing the NAOS disk image
  8. Setting up NAOS with BOCHS
  9. Setting up NAOS with GRUB
  10. Setting up NAOS with VIRTUALBOX
  11. Credits

1. About 

NAOS is the abbreviation for Not Yet Another Operating System.

NAOS is a low scaled embedded operating system, currently running on the intel x86 platform. NAOS is to be intended for private study and learning purposes. It comes without any warranty. This document deals with operating system programming basics, using GNU/Linux and the GNU GCC tools. It addresses the developer who is familiar with the principles of the programming languages C and assembler.

Currently version V1.0.2 is released (Prevent the line breaks from Unix/Windows-conversion while extracting the archive!).


2. Open topics 


3. History 

V1.0.2, released on 29.07.2009. Changes: V1.0.1, released on 03.06.2009. Changes: V1.0.0, released on 05.04.2009. Changes:

4. Configuration information 

The following tools have been used building NAOS:

5. Building the GCC based NAOS tool chain 

If you not only want to boot and execute the NAOS kernel as a binary but also want to build NAOS yourself from source, you first have to compile a NAOS tool chain.

After these steps you should have:

The NAOS build script b.sh depends on these preconditions!

If you have difficulties building the NAOS tool chain, read the GCC documentation or contact me here!


6. Building NAOS 

The GCC based NAOS tool chain is needed for building.


7. Preparing the NAOS disk image 

In order to run NAOS in an emulator like BOCHS or VIRTUALBOX, you have to use a bootable disk image with a boot loader and the binary NAOS kernel file. The file boot/naos.img is such a disk image ready to use. It contains the GRUB boot loader and the current version of the NAOS kernel.

The file boot/naos.img was created with the BOCHS tool bximage. The transfer of the binary NAOS kernel file boot/kernel.bin into the disk image file boot/naos.img may be done with the script p.sh, run with root priviledges. Unlike the build script b.sh, the transfer script p.sh will only work with GNU/Linux; I currently have no tool for this using Microsoft Windows.


8. Setting up NAOS with BOCHS 

For only booting and executing the NAOS kernel image, the GCC based NAOS tool chain is not needed.


9. Setting up NAOS with GRUB 

For only booting and executing the NAOS kernel image, the GCC based NAOS tool chain is not needed.


10. Setting up NAOS with VIRTUALBOX 

For only booting and executing the NAOS kernel image, the GCC based NAOS tool chain is not needed.

So you've decided to prefer VIRTUALBOX. Perhaps even together with M$ Windows.

Mh.

Okay, that means you have to set up some preconditions and accept some issues coming with VIRTUALBOX.

On reboot, there are some issues with VIRTUALBOX. Currently NAOS behaves like FreeDOS and crashes the emulator on reboot. See bug #1600 for details.

Perhaps this will be fixed later. Just boot again from the scratch instead of rebooting.


11. Credits 

The NAOS basics have been deeply inspired by Bran's kernel development tutorial and the guys at OSDev.org.

Further, the tools and some hardware specific code snippets came from the GNU/Linux community.

The UART routines are based upon The Serial Port rel. 14, part 1/3 from Chris Blum and the wikibook about Serial Programming/8250 UART Programming.