Chroma/README.md

48 lines
1.6 KiB
Markdown
Raw Normal View History

2020-07-10 09:47:16 +00:00
![Chroma Logo](https://gemwire.uk/img/chroma/logo/480p.png)
# Chroma
The Chromatic OS
## About
Chroma is an x86_64 kernel, soon to be Operating System.
It uses the [bootboot](https://gitlab.com/bztsrc/bootboot) bootloader.
## Features
It can currently:
- [x] read keyboard input
- [x] draw to the screen, including text and basic images.
- [x] output audio over the PC Speaker
- [x] manage physical memory
- [x] manage virtual memory
2020-07-10 09:47:16 +00:00
- [ ] switch to ring 3
- [ ] switch tasks
- [ ] schedule tasks
- [ ] handle processes and threads
- [ ] handle mouse input
- [ ] display a basic 3D object
- [ ] display a basic 3D world
- [ ] display a basic 3D world *in VR*
Once we reach this point... well, the world is our oyster.
## Building
Chroma can be built on Windows or Linux.
### Windows
I (Curle) use Windows for developing Chroma.
2020-08-27 00:57:59 +00:00
Simply have an [x86_64-elf-gcc](https://github.com/lordmilko/i686-elf-tools) and ld (included!) in your PATH, run `cmake` in the source directory, then `make`.
It will compile the kernel, and create an OS image with `mkbootimg`.
2020-07-10 09:47:16 +00:00
### Linux
The system for linux is a lot easier, but you *do* need an x86_64-elf-gcc cross compiler. You can get one from the AUR on Arch-based distros (like Manjaro), or make one yourself using [the OSDev Wiki guide](https://wiki.osdev.org/GCC_Cross-Compiler)
2020-08-27 00:57:59 +00:00
Simply run the `init.sh` to generate a makefile, then `make` to create the image file.
2020-07-10 09:47:16 +00:00
2020-08-27 00:57:59 +00:00
The generated IMG works in QEMU, or on a physical test device (unlike a lot of other hobby OSes!)
This means you can use any emulator or hypervisor to run it.
2020-07-10 09:47:16 +00:00