https://github.com/juoelenis/binux
Binux is an Operating System Kernel based on POSIX principles and based some components slightly on the first version of Linux
https://github.com/juoelenis/binux
c cpp ez h kernel mit-license os
Last synced: 2 months ago
JSON representation
Binux is an Operating System Kernel based on POSIX principles and based some components slightly on the first version of Linux
- Host: GitHub
- URL: https://github.com/juoelenis/binux
- Owner: Juoelenis
- License: mit
- Created: 2024-11-20T11:33:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-15T14:16:10.000Z (6 months ago)
- Last Synced: 2025-12-18T18:19:25.613Z (6 months ago)
- Topics: c, cpp, ez, h, kernel, mit-license, os
- Language: C
- Homepage:
- Size: 153 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Binux
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.
## Features
- 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
## Requirements
- GCC (C compiler)
- Binutils (for linking/assembly)
- QEMU or VirtualBox (for running Binux)
- Make
## How to Compile
1. **Clone the repository:**
```sh
git clone https://github.com/Juoelenis/Binux.git
cd Binux
```
2. **Build the kernel and boot image:**
```sh
make
```
This will compile the kernel and produce a bootable image (e.g., `binux.img`).
## How to Run Binux
### Using QEMU
```sh
qemu-system-i386 -drive file=binux.img,format=raw
```
Or, if your build produces a floppy/ISO image:
```sh
qemu-system-i386 -fda binux.img
```
### Using VirtualBox
1. Create a new VM (choose "Other" or "Linux (32-bit)").
2. Add a new virtual hard disk and attach `binux.img` as a virtual floppy or hard disk.
3. Start the VM.
## Notes
- 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.
## License
MIT