HighlightOS Is Back
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.
The History 📅#
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.
❤️