Home

see more infos

OX Kernel
C System Programming

The kernel is designed for embedded systems and currently features a file system, memory allocator, and core kernel facilities such as exec, fork, exit, and scheduler. There is much work to be done so feel free to download the code and make contributions. The system currently consists of 28,580 lines of code.

The system was designed similar to the original Linux kernel version 0.1, and was developed by one person, Roger G. Doss, PhD. It is covered under the GNU Public License (GPL) and utilizes some source codes from the original Linux, as well as GazOS. The book "Operating Systems Design and Implementation" and Minix by Dr. Tanenbaum were also inspirational.

Welcome to OX Kernel

A small UNIX like kernel

Welcome to OX Kernel

Freely available for embedded systems on Intel IA-32.


Kernel Features

Download
File System

The kernel features a rudimentary UNIX like file system. It provides an implementation of most UNIX file system calls but not all. The system currently uses a block size of 512 bytes and is designed using inodes as its main data structure. It was tested in user space on Linux and then ported into the OX kernel.

Memory Manager

The kernel memory manager utilizes the underlying paging system but does not provide Virtual Memory. The memory space is split between kernel and user and each block of physical RAM is available to each process. The system provides a malloc/free interface for kernel and user.

Drivers

The kernel features a lowcore subsystem written in NASM Assembler for Intel IA-32 processors. Currently, only a handful of drivers are provided. These include console, keyboard, programmable interrupt timer (PIT), processor input/output (PIO) disk read and write, and i8259 support. Additionally, the system features a two stage boot loader also written in NASM.