Home

Awesome

Umka OS

"I'll make my own Operating System, with blackjack and hookers"

A proof of concept operating system written in Umka. (With blackjack and hookers (maybe just blackjack))

Windows in the OS

Table of Contents

Usage and Installation

Currently, this OS uses a legacy BIOS bootloader, so it's unlikely to run on actual hardware. Later I'll make an effort to port this to UEFI.

To try it out, I recommend to go to the release pages, download the latest sys.img, and run the following command:

qemu-system-x86_64 -m 128 -drive file=sys.img,format=raw

You need to install QEMU for this to work. Alternatively you can try any other virtual machine software such as VirtualBox (but I did not test it).

Building

To build, use the Makefile provided in the repository. Dependencies are:

Upon clone, install submodules: git submodule init --recursive

Why and how

Because I can :P

It started as a random idea, it was going to be a lot of work from the start.

I started with re-implementing libc subset used by Umka, which you can find under sys/mock_libc. A few basic things had to be implemented, for the most part a simple allocator and a virtual file system. After that was done, I implemented the formatting functions (which took me longer than I expected.)

When it came to the OS, I scraped some of my old code, found my old bootloader, fixed it, and booted into Umka. And it didn't go all that smooth, there was a lot of trouble. I'm going to need to write a dedicated post for that later. This took me about a week to make, it's a bit rushed, but it works.

Technology

The standard library:

Moving on to the system:

The system has a kernel, written mostly in Umka, with exception for IRQ handling (due to multithreading constraints).

From this point, most of the code is handled in Umka, you can find it in fs/

And extra:

Limitations:

There's not much advanced things here, but it all somehow works, and that feels really good.

Contributing

Always welcome =) Please mind the 480 KB limit.