Corex

My hobby operating system written in C and Assembly (x86) – since 20XX :-)
About Features Screens / Shell Download Dev Notes
Welcome to the Corex homepage!  |  Experimental C/ASM kernel, simple shell, QEMU-friendly  |  Warning: lot of bugs, but also lot of fun :-)

About Corex

Corex is my hobby operating system project. It is written mostly in C and x86 Assembly. The goal is not to make a perfect OS, but to learn how everything works: booting, memory, interrupts, keyboard, shell and more.

Right now Corex:

  • boots on x86 PCs (and in QEMU/VirtualBox)
  • initializes basic kernel stuff (GDT, IDT, interrupts)
  • has a small text-mode shell with the prompt corex>
  • supports typing commands and using arrow keys

This site is oldschool on purpose. I like the 90's / early 2000's style of personal pages where people just share their projects.

  • Project name: Corex
  • Type: Hobby / learning OS
  • CPU: x86
  • Language: C & Assembly
  • Boot: custom bootloader
  • Video: text mode VGA
  • Status: Early work-in-progress

[ UNDER CONSTRUCTION ]

I will add screenshots and more technical details when I have time.

Kernel & Shell Features

Kernel (low level):
  • Switches to 32-bit protected mode
  • Custom GDT and IDT
  • Simple interrupt handlers
  • Basic timer / ticks
  • Keyboard driver for PS/2
  • Text-mode screen printing (C + ASM)
Shell (corex> prompt):
  • Command line editing with left/right arrow keys
  • Command history with up/down arrows
  • Built-in commands like help, clear, echo, reboot
  • Cursor stays exactly after the corex> prefix
  • Line buffer with length limits to avoid crashes

Shell Example

This is roughly how the Corex shell looks in the emulator (text mode). (This is just a simulated screenshot in HTML.)

Corex 0.2 (C/ASM) - test build --------------------------------- [boot] GDT loaded [boot] IDT loaded [boot] IRQs enabled [boot] Keyboard driver ready corex> help built-in commands: help - show this text clear - clear the screen echo - print a line of text reboot - restart the machine corex> echo hello from corex hello from corex corex> _ (cursor can move with arrow keys)

Download & Roadmap

Warning: Corex is experimental. It might crash, hang or do strange things. Please only run it in an emulator (QEMU, etc.) if you are not sure what you are doing.

Version Description Status Link
0.1 - First boot Kernel prints text after boot, basic setup. DONE Release page
0.2 - Shell build Shell with arrow keys & history. WORK IN PROGRESS (no public file)
0.3 - Drivers Better keyboard / timer, maybe serial output. PLANNED
Source code All C/ASM files and build scripts. COMING SOON Source repo

Example QEMU command line (32-bit):
qemu-system-i386 -cdrom corex-0.2.iso -m 128M -boot d

Developer Notes

I am still learning OS development. I read a lot of tutorials, OSDev wiki, forum posts and look at other hobby kernels. Corex is like my personal lab.

  • Focus right now: make the shell more comfortable (good cursor & history)
  • Next steps: clean up the C code and split files better
  • Future maybe: simple filesystem, more commands, basic multitasking

If you have ideas, suggestions or you like this project, you can write me an email. walter.muller.1708@gmail.com