Just a UNIX-like kernel build on caffeine and sleep deprivation. I call it yanix (Yet Another uNIX clone) The goal is to make it as POSIX compliant as possible and self sustaining.
Now able to run doom!
This project is a hobby os so this is not perfect, I am currently trying to make the codebase as clean as possible so others can learn from this os and build their own. However some parts, especially the older parts of the os, are not the prettiest / most well documented code ever.
You are welcome to make any pull requests and help build this os further.
If you are starting out I really recommend the osdev.org wiki as a lot of the code here is build on the information found on that wiki. For more helpfull links check the bottom of this page
x86
x86-64
arm
Multitasking
Multiprocessing
User mode
Right now we are working hard on porting other unix software to this operating system. The first port ever completed is FIGlet and it runs perfectly on yanix!
__ __ _ _
/ /_ _ _ __ (_)_ __ (_)___ __ ___ _____ ___ ___ _ __ ___ ___
V / _` | '_ | / / | / __| / _` / / / _ / __|/ _ | '_ ` _ / _
| | (_| | | | | |> < | __ | (_| | V V / __/__ (_) | | | | | | __/
|_|__,_|_| |_|_/_/_ |_|___/ __,_| _/_/ ___||___/___/|_| |_| |_|___|
In order to build and run yanix you will need the following items:
The last two can be found here. Just put both files in the main yanix/ directory.
First mount maindisk.iso like so:
sudo make mount_disk
Then to build yanix run
make clean && make run
To start yanix in qemu run make run in terminal and it should start running in qemu.
A big thanks to anyone that helped on one of the articles found bellow without those people this project would not have been possible.
A few notes about these tutorials: I personally would not recommend these articles if you just are starting out as these generally do not explain the material very deeply and you are at risk of just copying code that works and not really understanding what happens under the hood. The tutorials also have some bugs in them check (this page)[https://wiki.osdev.org/James_Molloy%27s_Tutorial_Known_Bugs] this page for more information
This is a pdf that explains all the beginnings of an os and it's bootloader, the document explains the material very good.
This page is also very good if you are just starting out although it is mostly based on the document by Nick Blundell that explains everything, so you might as well use that.
If you still struggle to understand something our want to implement something that is not listed in any of these documents you can still search the web. Sadly enough a lot of os development sites and articles are now down because of various reasons but there is still a lot just lying around waiting for you to find it.