ByteOS is a 32 bits operating system designed for educational purposes for those (me) interested in low-level systems programming.
NOTE
This project is still in very early stages. Test on real hardware at your own risk.
This OS aims to provide a minimalistic and simple operating system that covers the basic functionalities expected from an OS.
To maintain control and ensure that the system operates almost entirely from scratch, standard libraries are being rewritten. This approach helps in understanding the inner workings of these libraries and how they interact with the OS.
- string.h: String manipulation utilities.
- stdio.h: Basic input/output functions.
- stdlib.h: Standard utility functions.
- time.h: Time management functions.
ByteOS uses an i686-elf-gcc
cross-compiler. The versions used to build the project are:
- binutils-2.40
- gcc-12.2.0
For detailed instructions on building and using a cross-compiler, refer to the OSdev Wiki.
Note: Ensure you configure your cross-binutils with the
--with-sysroot
option.
Make sure you have the following tools installed:
- i686-elf toolchain.
- qemu-system-i386 for virtual machine.
- GCC (GNU Compiler Collection).
- LD (GNU Linker).
-
Clone the repository:
git clone https://github.com/iyksh/ByteOS && cd ByteOS
-
Build and run the project:
./run.sh # This will automatically clean, build and run the project with QEMU
Contributions are welcome! Whether it's reporting bugs, suggesting new features, or submitting pull requests, your involvement is appreciated. In this project, i am following this Github Project Roadmap.
This project is licensed under the GPL3 License. See the LICENSE file for more details.