BVOS — Barely Visible OS

A minimal 32-bit x86 operating system written in Assembly and C, designed as a learning project to explore bootloaders, protected mode, and kernel basics.
It does almost nothing… and that’s the point.


Features

  • Boots from BIOS via a custom MBR boot sector
  • Loads a tiny kernel from disk into memory
  • Switches to Protected Mode and runs C code
  • Writes “Hello, world!” directly to VGA text memory
  • Fits in just a few sectors

Build & Run

Prerequisites

  • nasm (Netwide Assembler)
  • gcc (with 32-bit support)
  • ld (GNU linker)
  • qemu-system-i386 (or another emulator)
1
sudo apt-get install -y nasm gcc-multilib qemu-system-x86

Build

1
make

Run

1
make run

Clean

1
make clean

Project Structure

b k k l M o e e i a o r r n k t n n k e . e e e f a l l r i s _ . . l m e c l e n d t r y . a s m # # # # # B S M L B o w i i u o i n n i t t i k l l c m e d o h a r a e l r d s s u e C c l r t r e o k i s - e p p r t l r n o o e f a t l o d e r s c t f t e l h d a e t m k o b e d i r e n n , a e r l j y u m p s t o C k e r n e l

How It Works

  1. Bootloader (boot.asm)

    • Runs in 16-bit real mode
    • Uses BIOS interrupts to load the kernel from disk
    • Switches to 32-bit protected mode
  2. Kernel Entry (kernel_entry.asm)

    • Sets up the stack
    • Calls the C kernel function
  3. C Kernel (kernel.c)

    • Writes text to VGA memory
    • Halts the CPU in an infinite loop

Disclaimer

This project is for learning purposes only.
It is not a complete operating system — it’s just enough code to demonstrate the boot process and run simple C code on bare metal.


Github

https://github.com/simocoder/bvos/