Sync, but easier to develop.
Go to file
Curle 73b51c851d
Add basic PCI support.
Currently can only enumerate the PCI bus with a basic process, and retrieve basic details on every valid device.
2020-08-23 00:50:10 +01:00
chroma Add basic PCI support. 2020-08-23 00:50:10 +01:00
img/boot Move from CD-ROM images to Hard Disk images. 2020-08-19 22:57:06 +01:00
iso/boot fix compilier warnings 2020-07-08 00:38:59 +01:00
.gitignore Add Windows version of mkbootimg for platform agnosticity 2020-08-19 23:39:30 +01:00
boot_hybrid.img Move from CD-ROM images to Hard Disk images. 2020-08-19 22:57:06 +01:00
buildImage.ps1 Move from CD-ROM images to Hard Disk images. 2020-08-19 22:57:06 +01:00
chroma.img Move from CD-ROM images to Hard Disk images. 2020-08-19 22:57:06 +01:00
chroma.json Move from CD-ROM images to Hard Disk images. 2020-08-19 22:57:06 +01:00
CMakeLists.txt fix compilier warnings 2020-07-08 00:38:59 +01:00
font.psf Attempts at fixing paging. 2020-04-11 22:59:39 +01:00
init.sh Add shebang lines to scripts 2020-07-07 20:07:01 -04:00
linker.ld Attempts at fixing paging. 2020-04-11 22:59:39 +01:00
makeiso.sh Add shebang lines to scripts 2020-07-07 20:07:01 -04:00
mkbootimg Move from CD-ROM images to Hard Disk images. 2020-08-19 22:57:06 +01:00
mkbootimg.exe Add Windows version of mkbootimg for platform agnosticity 2020-08-19 23:39:30 +01:00
README.md Create README.md 2020-07-10 10:47:16 +01:00
setup.bat Added Windows build script 2020-07-07 01:24:54 +01:00

Chroma Logo

Chroma

The Chromatic OS

About

Chroma is an x86_64 kernel, soon to be Operating System.
It uses the bootboot bootloader.

Features

It can currently:

  • read keyboard input
  • draw to the screen, including text and basic images.
  • output audio over the PC Speaker
  • manage physical memory
  • manage virtual memory
  • 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.
Simply have an x86_64-elf-gcc and ld (included!) in your PATH, and run setup.bat.
You will need to use WSL to generate the iso; copy the created kernel.elf file to iso/boot/ as initrd, and run grub-mkrescue -o chroma.iso iso/.
A new system is in the works for creating this ISO natively on Windows.

The generated ISO works in QEMU, or on a physical test device (unlike a lot of other hobby OSes!)

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
Simply run the init.sh to generate a makefile, then make to create the kernel.elf file.
Same thing applies as Windows now - copy the kernel.elf file to iso/boot/ as initrd and run grub-mkrescue -o chroma.iso iso/.