Binux is a minimal, POSIX-compliant operating system kernel written from scratch in C and Assembly. It aims to provide a simple and educational platform for understanding OS design, with a basic terminal interface and support for core POSIX syscalls.
- VT102-compatible terminal interface
- Basic POSIX syscalls (
read
,write
,open
,close
,execve
, etc.) - Kernel trap and exception handling
- Bootloader for switching to protected mode
- Simple userland process initialization
- GCC (C compiler)
- Binutils (for linking/assembly)
- QEMU or VirtualBox (for running Binux)
- Make
-
Clone the repository:
git clone https://github.com/Juoelenis/Binux.git cd Binux
-
Build the kernel and boot image:
make
This will compile the kernel and produce a bootable image (e.g.,
binux.img
).
qemu-system-i386 -drive file=binux.img,format=raw
Or, if your build produces a floppy/ISO image:
qemu-system-i386 -fda binux.img
- Create a new VM (choose "Other" or "Linux (32-bit)").
- Add a new virtual hard disk and attach
binux.img
as a virtual floppy or hard disk. - Start the VM.
- Binux is not a Linux distribution or a userland application. It's a standalone kernel intended for learning, hacking, and experimentation.
- You may need to provide your own userland programs for full shell/coreutils functionality.
- For development, Ubuntu 16.04 or newer is recommended as a build environment.
MIT