FrostByte (sometimes refered to as "FrostByte OS" or "FBOS") is a hobbyist from-scratch operating system made by HarryDoesTech. FrostByte is the sucessor of CakeOS.
If you encunter any issues please open an issue ticket or email frostbyte.operatingsystem@gmail.com
This repository currently contains the entire opearting system, including the userland. But that is a subject to change very soon, THis repo will only contain the kernel and init system,standard C library,coreutils etc will be in seperate repositories
- GNU make (BSD make won't work)
- i686-elf-gcc or i386-elf-gcc
- nasm
- qemu-system-i386 (optional, but if you want
make runto work)
recommended to build on Linux (I personally use Mint so i'm not too sure about other distros) but any other unix-like, e.x freeBSD, mac osx will work
git clone https://github.com/FrostByteOS-project/FrostByteOS.git
cd FrostByteOS
makeIf you're on a BSD:
gmakeif you want to run it in QEMU
make runnote, this'll also rebuild it
if you'd like to use i386-elf-gcc
make CC=i386-elf-gccif you run
make -j$(nproc)it will build the kernel, but fail on the userspace because of a race condition in the Makefiles
i just can't fix.
just run make after make -j$(nproc) without the -j flag and it'll build the userspace, initramfs and iso
- a VM or physical machine with BIOS or alternatively UEFI with CSM
- for real hardware like any PC made since ~1998 should work:
- 6MB of ram minimum (conservative value, depends on the size of the initramfs and grub configuration)
- An IA-32 or amd64 CPU
- PS/2 keyboard and (optional) mouse
- VESA-capable GPU
- (optional) an IDE hard drive
- The execution path by default is /bin/init -> /bin/login`.
- Currently only supports BIOS and x86, amd64 and UEFI support will be added in the future.
- Uses GRUB, will probably create a custom bootloader in the future.
- Uses ELF32 for binaries
- Forces VESA 1024x768x32 for the TTY console; will add fallback to standard VGA text mode later via kernel parameters
- FrostC is very basic, it you really want to run alot of POSIX software on the OS just compile newlib for it
- Add UEFI support
- Add USB support
- Improve scheduler
- ATAPI support
- SATA and AHCI support
- PCIE detection
- TCP/IP subsystem and network card drivers
Special thanks to:
@papaj2139 for helping out refactor the code