# Nanite A Very small OS that can run on X86 Hardware. Good luck figuring out the spagetti code i write... (sorry not sorry ;D) Designed for older computers such as a Pentium (i586) Class Machine. I however would recomend atleast a Pentium 2 Class System or higher. ## Features - Support for the GNU GRUB 2 Bootloader and Multiboot V2 - Custom Theme for GRUB (Not Complete Yet!) - Basic Memory Management - Support for Floppy Disk Drives (FDDs) - Basic Serial (RS-232) Support - Keyboard Input ### Serial: Runs at 9600 baud (as its fairly standard) Serial is mostly used as a debug output (In the future this will be able to be enabled/disabled) #### Note: Kernel is currently under very heavy development. All things are subject to change at any time. ## Building Run `./build.i686` inside main directory of repo, however you may first need to run `make toolchain TARGET=i686-elf` (you can also build for `xtensa-esp32-elf`) i would DEFINITELY use more than one job (building GCC takes forever) To write to a disk, use `./write.sh` just enter a disk in at the prompt and it will build & flash nanite to it (ex. `/dev/sdb`) You could also run `make all` but the scripts a bit better tbh, it even automates starting QEMU and building an image. Theres also a way to debug it with BOCHS if need be, just run `./debug.sh` instead of the normal build script. ### Build Requirements - make - gcc (or really any C compiler) - nasm #### Only Required to Build the Image - grub2 - parted ## How is Testing Done Testing is mostly done with QEMU at this point as its easier, but I do sometimes pull out my Dell Latitude D610 to test on real hardware (for anyone wondering its completely maxed out. [2GB of ram Pentium M @ 2.23GHz]) I Also do some testing on a Dell Dimension 8110 (its at my desk 24/7 and has its serial port hooked to my desktop, lol) ## Resources I've Used Throughout the Project - Nanobyte's Youtube Channel: https://www.youtube.com/@nanobyte-dev (Used to start off learning about OSDev) - OSDEV Wiki: https://wiki.osdev.org/Expanded_Main_Page (INSANELY Helpful like SUPER USEFUL basically any info i've needed i've pulled from here) - BrokenThorn: http://www.brokenthorn.com (Used to learn about memory management!)