hazyuun / Hydrangea

An x86 operating system, written from scratch in C and assembly

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hydrangea (YuunOS)

An (almost) operating system for x86, written from scratch in C and assembly.

This is my first take on making a kernel from scratch, it's not the best, but I think it's not bad for a first try. The kernel runs in the lower half, and has a weired and inefficient memory layout, it has some syscalls even though not enough to make a usable user shell.

Disclaimer

I tested it in

  • Bochs
  • Qemu
  • VirtualBox
  • My main machine, until I made the ATA driver

I do not trust my code, so, to avoid any data loss or any problems in general, only try this in a VM/emulator, or in a computer that you don't use and you don't have any valuable data on its storage, do NOT boot it in your main machine.

And whatever you do : I am NOT responsible for your acts, do whatever you do at your own risk

Features

Drivers

  • UART serial driver
  • PS/2 keyboard and mouse driver
  • PATA driver
  • VESA driver
  • RTC clock driver
  • PIT timer
  • PCI enumeration

File systems

  • EXT2 filesystem (read only)
  • tar in initrd
  • devfs
  • tmpfs

Processes

  • Preemptive multitasking
  • ELF loading
  • Pipes
  • Spinlocks

Syscalls

Screenshots

Navigating the vfs

Reading files in the initrd

Running a usermode program

PCI enumeration

Parsing the MBR of a PATA drive

Mounting an EXT2 partition and reading files from it

Misc

About

An x86 operating system, written from scratch in C and assembly

License:MIT License


Languages

Language:C 96.8%Language:Assembly 2.1%Language:Makefile 0.9%Language:Shell 0.1%