Skip to content

ffwff/lilith

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7e65366 · Apr 27, 2020
Jan 5, 2020
Jan 5, 2020
Jan 5, 2020
Jan 6, 2020
Jan 15, 2020
Jul 26, 2019
Nov 29, 2019
Mar 7, 2020
Jan 2, 2020
Jan 5, 2020
Jan 1, 2020
Dec 23, 2019
Jan 1, 2020
Jan 5, 2020
Aug 13, 2019
Oct 27, 2019
Aug 13, 2019
Aug 9, 2019
Dec 8, 2019

Repository files navigation

lilith

A POSIX-like x86-64 kernel and userspace written in Crystal.

Screenshot

screenshot

Building

See BUILDING.md.

Running

A CPU with x64 support is required to run the OS. The Makefile provides a script which will run QEMU on the kernel:

make run

To run with storage, an MBR-formatted hard drive image with a FAT16 partition must be provided in the running directory with the name drive.img. The kernel will automatically boot the main.bin executable on the hard drive, or panic if it can't be loaded.

Issue this command to run with gdb attached:

make rungdb_img

Features

  • Basic x86-64 support
  • Hybrid conservative-precise incremental garbage collector
  • IDE/ATA support (well, it can only load from primary master)
  • FAT16 support
  • Unix syscalls (open, read, write, spawn,...)
  • Preemptive multitasking!
  • Userspace C library written in Crystal (mostly)
  • A window manager and some graphical programs (terminal emulator, file manager)
  • And much more as I go...

License

Lilith is licensed under MIT. See LICENSE for more details.