Skip to content
/ yaos Public

Yet Another Operating System - a simple and small x86 operating system

License

Notifications You must be signed in to change notification settings

haltode/yaos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yaos

The name yaos stands for Yet Another Operating System. This is my first attempt at making a simple and small x86 operating system to learn more about OS development.

How to use yaos?

Requirements

To compile and run yaos, you will need:

  • A cross-compiler for i686-elf
  • A virtual machine to run the OS (I used qemu in this project)

Running yaos

Simply use the Makefile provided as follows:

# Compile the OS
$ make

# Run yaos in a virtual machine (qemu)
# You may need to use the manual command according to your system:
# qemu-system-YOUR_ARCH -cdrom yaos.iso
$ make run

What you should see

yaos running in qemu

Resources used for this project

Lessons learned

Since this is my first attempt at making an operating system, I learned a lot about OS development. But, I also made a tons of mistakes, and because I am planning on creating another OS in the future, here are some tips for my future self:

  • Plan ahead: since I had no idea of what I was going to implement and how, I pretty much had no design for my OS, and I thought I didn't really need one because I wasn't aiming for a big operating system after all. But, I was totally wrong. Planning the design of the OS and the implementation of its components is a necessity, otherwise you will have a hard time building it because of huge design flaws. I often had to rewrite parts of the kernel, but at a point, it would need to be rewritten from scratch because of this lack of planning.
  • Code everything by yourself: GRUB is great, but I would have learned even more by doing a small bootloader by myself, and I would have been much more in control of my OS. Also, don't follow specific tutorials too much, since almost all of them are either outdated, incomplete, or simply wrong, and sticking too much to one tutorial's design is again a mistake. Read as much documentation and information on the topic as possible, plan the implementation, and then code it your way.
  • Take time for testing: each component should be heavily tested/reviewed before moving on to another one, and you should know the limits and the possible improvements you can make on components.

License

All the source code is licensed under the MIT license.

About

Yet Another Operating System - a simple and small x86 operating system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published