about
blog
github

Milestone 4
The Year of the Brutal Desktop

Graphical User Interface Library

In the last milestone post, we said that milestone four would focus on the network and storage stack. Well, we got a bit sidetracked and instead got a GUI rolling.

The BRUTAL Desktop

We are introducing brutal-GUI, a cross-platform user interface library for BRUTAL, Linux, macOS, and probably any other platform where SDL is supported. It supports flexbox-inspired layout, right-to-left, left-to-right layout, and simple widgets like icons, images, buttons, and labels.

We built brutal-GUI on top of brutal-GFX, a vector-based graphic library implementing affine transforms, SVG paths, vector fonts, and gradients. This library was a joint effort of me (sleepy_monax), Supercyp, which helped improve performance, and Feliwir, who worked on vector fonts support.

Demonstration of SVG support

Demonstration of Vector fonts support

New Website

You might have noticed, but we have a new website! It's built on state-of-the-art web technologies like Next, React, TailwindCSS, and MDX. This might look overkill for a simple blog, and you might be correct, but we have big plans for the future ;)

Compiler

Our compiler got a lot of love during this release cycle, and one of the highlights is the error reporting inspired by the rust compiler:

Error reporting

This is still a work in progress and at a PR state.

Storage Stack

While disks and file systems were finally not the focus of this milestone, BRUTAL gained rudimentary support for AHCI and EXT2 thanks to Supercyp. And this effort will continue onto milestone five.

RISC-V Support

We started working on RISC-V support, it's still early, but we have VMM, interrupts and device tree, and UART working.

IPC Subsystem

Our IPC subsystem got a substantial overhaul. Now the system is split into components that communicate using capabilities. Each one has a manifest that describes which system capabilities are needed to start and the list of rights it possesses. Components and capabilities are wired together by the system server using the manifest. This architecture is mainly inspired by the Fuchsia operating system built by Google.

General Improvements

On top of everything stated above, the system received countless bug fixes and minor refinements, a documentations effort was started, and our build system got many improvements.

Acknowledgements And Contributing

I (sleepy_monax) want to thank everyone who continued to help Brutal grow. Like every milestone before, I'd like to thank Supercyp for all his work around the system, Feliwir, who just joined the project and worked on Compression, Vector fonts, and the IO stack. And everyone else who contributed to this milestone!

We welcome all contributions even if they don't fit into our milestones. The Git repository is available on GitHub, and you can discuss the project on our discord server.

Thanks for reading, and happy hacking :^)