What is HighlightOS? 🤔#

HighlightOS is a project I started earlier this year.
It’s a x86_64 operating system (kernel) made from scratch in Rust and Assembly.

Well, to be fair, it’s not 100% from scratch. It still uses libraries like:

  • volatile, which provides wrapper types for various raw pointers
  • x86_64 for x86_64-specific instructions support
  • uart_16550 for UART devices support

and other libraries from rust-osdev so huge thanks for their amazing work.

(HighlightOS)

The History 📅#

Commits Activity on GitHub

Q1 of 2024#

Originally, HighlightOS was supposed to be an Assembly-based kernel with a bundled bootloader (+ some C additions) but I gave up on this idea when it came to string comparison that’s essential for a shell to work.
I quickly gave up on the project, I had more important stuff to do at the time.

July 2024#

I finally mastered Rust. That’s what I thought, at least.
I’ve decided to write the kernel fully in Rust. I stumbled upon this guide by Philipp Oppermann and I felt like I had the power to finally do something.

Until.
I encountered a lot of issues. And I mean a lot.
Memory allocation, interrupts, VGA, serial connection, linked lists, etc.

But I’ve managed to actually create something that worked.
I released The first release (v0.3.0) at July 20th. It was bad. Lots of bugs, nothing to see there. 113 different commits to main since then.

With the help of different contributors the project skyrocketed.

August 2024#

Yet another burnout. The last release I did was v0.3.3 on August 5th.
HighlightOS went radio-silent for about 3 months; and that leads us to…

Now (v0.3.4)#

v0.3.4 is kind of an update / yea I'm still alive-type release.
I got myself together and thought: no, I can't just leave it like this.

So here we are.
I plan on finishing the arrow keys system and overall improving the UX / performance for now.

The Future 🗓️#

My main goals for the future:

  • Fixing any known bugs
  • Separating HLShell from the kernel
  • Improving compatibility / device integration
  • Dropping rust-osdev/bootloader and creating an independent one (?)
  • Supporting UEFI
  • Multiple TTY-like shell instances (when the shell is detached)

Contributing 🛠️#

The project is fully open-source (licensed under GPL-3.0).
To anyone reading this: if you find any bugs / want to help with development or add some new features, please feel free to contribute = open Issues or Pull Requests through GitHub. ❤️