Skip to content

A sweet hobby made operating system written in C++ for x86 CPUs with GUI

License

Notifications You must be signed in to change notification settings

MacaronOS/Macaron

Repository files navigation

Macaron OS

Progress

Macaron OS

Features

Kernel

  • Higher Half Kernel
  • Keyboard, mouse, ATA, PCI and BGA drivers
  • VFS with Dev and Ext2 FileSystem support
  • Paging, physical and virtual memory managers
  • Userspace processes and threads

Userspace

  • Libc - At this moment contains Posix syscalls and malloc
  • Libsystem - Custom MacaronOS syscalls, logging and EventLoop
  • Libipc - Low level one to many connections sending bytes to each other
  • Tools/protocol_generator.py - Genrates a complex serializable messages what works on top of Libipc
  • System/WindowServer - Compositing window server for applications
  • Libgraphics - Android-like library for graphcis primitives
  • Libui - Android-like GUI library
  • Macaronlib - A library that's shared beetween userspace and kernel. Declares the system's ABI and contains STL-like templates

Build instructions

Get fuse-ext2 tools

MacOS

The building process is described here. Just follow the top answer.

Linux

apt install fuseext2

Get Ext2 formatter

MacOS

brew install e2fsprogs

Linux

apt install e2fsprogs

Get qemu

MacOS

brew install qemu

But the best option for mac is to build it yourself. More info here.

Linux

apt install qemu-system-i386 qemu-utils

Get a crosscompiler:

MacOS

brew install i686-elf-gcc

Linux

./Scripts/i686-elf-tools.sh

Get NASM

MacOS

brew install nasm

Linux

apt install nasm

Macabuilder is a build system developed to simplify Macaron OS building process. You can find build instructions here.

Run Macaron OS

After everything's set up, just launch Macabuilder executable from the root project directory. It will find MacaronOS.maca file, build and run MacaronOS.