xOS

xOS is a compact, free and open source graphical operating system.


GitHub repository Latest release (v0.10) Latest unstable build

xOS is a hobbyist operating system project written mostly from scratch for the PC, entirely in FASM-style assembly. The principal goal of xOS is to be compact and lightweight, yet be suitable for use in the 21st century, in terms of speed, features and hardware support.

Most of the important things in the world have been accomplished by people who have kept on trying when there seemed to be no hope at all.

Features

Take a look

I commit regularly to the GitHub repository. Every time I commit, the file disk.hdd in the repository is updated, which can be considered the latest unstable build. Please give feedback using GitHub issues or by emailing me at omarx024@gmail.com.

Running xOS

Running xOS is very simple. Whether you have the latest unstable build or a release build, you will have an HDD file, which can be attached to the IDE or SATA controller in VirtualBox, where xOS runs best. For networking in VirtualBox, open the network settings page, set the adapter type to any one of the Intel Pro/1000 options, and set the "attached to" field to NAT. xOS needs about 32 MB of RAM to boot, while over 64 MB is recommended for networking.

Screenshots

YouTube videos of my progress.
Click on an image to enlarge it.


Startup screen.


Sample applications.


Prototype of web browser.


Building itself with FASM port.


Shutdown prompt.

Purpose

xOS is just a hobbyist project. It started some time in late 2016, after doing several rewrites to my previous projects. The main purpose of xOS is to learn about how hardware and software work together, while providing “eye candy” at the same time.

Why assembly?

I chose assembly language as the language to write the core (kernel, drivers) of my OS in, although many people will disapprove for different reasons. Some will say because assembly is not portable, others will say because assembly code is hard to maintain and read after a long time. They might be right, but what if xOS was never intended to be portable? The only platform I plan to support is the PC, and so writing in assembly suits me perfectly. Assembly code can be hard to maintain if it is badly commented, and so I be sure to always use constants in my code instead of just values, and I also leave many comments wherever useful, and label names are also a clear indication of what the function does.

About

Hi. I'm Omar Mohammad, a 15-year-old computer and OS hobbyist based on Cairo, Egypt. I like biology, chemistry, and the real-life application of them: pharmacy. You can contact me for any OSDev-related stuff, feedback or just to say hi, at omarx024@gmail.com. I am also user omarrx024 on the OSDev forum.

By the way, xOS is licensed under the MIT License, which should be in a file named license distributed with xOS. Flat assembler is copyright Tomasz Grysztar, and the license is in the appropriate folder.

That's all there is on this page.

while(1)
{
	if(success() == true)
		break;
	continue;	// try again
}


Copyright © 2016-2017 by Omar Mohammad.
The theme on this site was inspired by Cayman but written by me.