Skip to content
Bryan Maynard edited this page Mar 17, 2024 · 6 revisions

Welcome to the HOS wiki!

HOS is an operating system focused on running games built using Bevy.

The name HOS has two meanings:

  • Happy Operating System
  • Hydrogen, Oxygen, and Sulphur

FAQ

1. What is HOS?

HOS is the fulfillment of a dream I've had since I was 13 ☺️

HOS is an OS dedicated to running games - specifically, games built using Bevy.

HOS is intended to be a game as well; the goal is that the UI will be a game, initially something akin to a top-down 16bit RPG.

The plan is to target Raspberry Pis initially, then expand to retro handheld consoles (like the Miyoo Mini).

2. Why Bevy?

HOS is an experiment. I want to see if it makes sense to build an OS around a game engine. As an example, My plan is to implement the various pieces of HOS (like the file system) using the ECS pattern. Bevy ECS is a good implementation of the ECS pattern, and so seems like a good platform to build on.

Similarly, Bevy has a highly performant rendering engine and integrates well with libraries like Rapier.

3. Why Rust?

Well ... this.

I've wanted to build an OS since I was 13, and I've been eager to learn Rust for a while now - so it seems like a natural choice!

Community Rules

This project, and its community, are a helpful, supportive, encouraging place for people to ask question, learn, explore, and grow.

Yes, the goal is to build a cutting edge, super-performant, awesome-to-use operating system. Parallel to that, the goal is to build an onramp for anyone interested in building their own operating system - or just curious to learn more about what goes into building an OS. In support of building the onramp patient, detailed, explanations for stories/issues/pr comments/etc are greatly appreciated.

Also, please keep in mind, I'm learning all this too - this project is a learning experience for me.

Toxic behavior will not be tolerated.

Contributing

Anyone interested is welcome to contribute! I'm working out style guidelines for issues, pr comments, and the like. I'd appreciate help/pointers regarding that.

I'd greatly appreciate any insight/guidance anyone with OS design/development could offer.

As a starting point, I'd recommend reading through this blog series - it's been super helpful to me and has bootstrapped this project. Additionally, I've read through Modern Operating Systems and am currently reading Operating Systems: Three Easy Pieces.

I'm adding stories to the project as the need arises. If you see one you'd like to work one - take it and run with it!

Clone this wiki locally