This repository has been archived on 2024-06-25. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2024-06-25 19:05:55 +03:00
fs Initial TAR filesystem support 2022-07-27 05:49:06 +03:00
kernel Initial TAR filesystem support 2022-07-27 05:49:06 +03:00
libc Paging improvements (still borked), grub memory 2022-07-24 07:16:00 +03:00
.gitignore Paging 2022-07-22 17:50:10 +03:00
build-toolchain.sh Build script fixes 2022-07-30 17:55:30 +03:00
build.sh Initial commit 2022-07-18 09:59:04 +03:00
clean.sh Initial commit 2022-07-18 09:59:04 +03:00
config.sh Make build system more portable 2022-07-20 16:42:13 +03:00
default-host.sh Initial commit 2022-07-18 09:59:04 +03:00
headers.sh Initial commit 2022-07-18 09:59:04 +03:00
iso.sh Initial TAR filesystem support 2022-07-27 05:49:06 +03:00
LICENSE Add LICENSE 2022-07-21 21:59:23 +03:00
qemu.sh Initial commit 2022-07-18 09:59:04 +03:00
README.md Update README.md 2024-06-25 19:05:55 +03:00
target-triplet-to-arch.sh Initial commit 2022-07-18 09:59:04 +03:00

Deprecated, see continuation project Asagiri

rockOS

Welcome to rockOS project, a hobby OS that aims to run rogue and nethack.

Currently implemented

  • GDT
  • IDT
  • PIC initialization
  • PIT timer
  • Keyboard driver
  • Paging and Kheap

Usage

Just grab the latest ISO from the releases and run it on a virtual machine such as QEMU or Virtualbox, bare-metal not tested.

Build

Dependencies

  • a decent compiler such as gcc or clang
  • grub2 (if under GNU/Linux)
  • xorriso
  • make
  • tar

Dependencies for compiling toolchain

  • wget/curl

If it is your first time building, you need to compile the toolchain first. For that, you just need to run build-toolchain.sh, which will download binutils, gcc, grub if youre on macOS, and then compile them to $HOME/opt/cross-i686 by default which can be changed from the prompt.

After you compiled the toolchain and added $PREFIX/bin to your PATH as instructed by the script, you can run qemu.sh to compile and open the OS on QEMU or iso.sh to just generate the ISO.

Credits

  • Furkan Mudanyalı
  • Uko Kokņevičs

Acknowledgements

  • osdev.org community for huge documentation on OS Development
  • musl for libc implementation
  • James Molloy for his paging and kheap tutorial
  • Free Software Foundation for multiboot specification

License

This project is licensed under GPLv3.0 or later.