Luminary is a small x86 real-time operating system written in C and assembly. Its goal is to implement a kernel that includes a hard real-time scheduler that can run time-sensitive tasks.
It takes concepts from an existing operating system by the same author called Ulysses.
Written by Sam Kingston.
Latest version: 0.10.0
- Small codebase
- Hard priority-based preemptive scheduler
- Flat memory model (no virtual addresses)
- Support for basic I/O drivers
Some architecture notes and gotchas are located in NOTES.md.
You may configure the build by editing the $DEFINES variable at the top of src/Makefile.
Available options are:
-DDEBUG: produce debugging output to the console. You probably want this with-DTURTLE-DTURTLE: scale the scheduler down to 1 task per second-DUSE_SERIAL: enable the serial subsystem, which writes console output to COM1. This may be used withqemu -nographic.
First, ensure all build requirements are met:
gccand GNUascompilers that are capable of producing 32-bit executablesglibc-devel.i686
Then, building the kernel is as simple as running the included Makefile:
$ make -C srcAfter building, you may run the kernel in QEMU with some shortcuts:
To have QEMU load the kernel image directly, opening an SDL window (fastest):
$ make -C src qemuOr to build a bootable ISO image with Grub2 Multiboot and boot that way (requires xorriso):
$ make -C src qemucdYou may also redirect output to the terminal by using:
$ make -C src consoleNote that the kernel must be built with the -DUSE_SERIAL option for this to work or you will
get no output from the kernel.
