PinkOS
Back to Projects

PinkOS

PinkOS is a simple operating system written in C and assembly language, designed to be educational and demonstrate basic OS concepts.

Working In Progress 2024

The best OS ever

PinkOS is a simple operating system written in C and assembly language. It is designed to be educational and to demonstrate basic operating system concepts. It includes a shell, a basic file system in ram, support for multiple processes, a permission system and a simple user interface.

The project started as a uni TP, but soon became a personal project for us, with many things we wanted to implement for learning, testing ideas and for fun. Because of that we tried to make the code and architecture really modular, allways thinking about what the project may become in the future, and we are quite proud of how we designed things becouse in fact we were able to add new features in a very simple way, and now PinkOS support themes, fonts, font sizes, shortcuts, time zones, songs, images, connection to the outside world via serial, and a lot of stuff that is way out of the initial scope of the project.

Shell

Roadmap

As next milestones (cosistas are coming):

  • A complete UI framework with a custom language and compiler, PICTURE.
  • Installing programs in runtime by bringing the binary via serial (Successfull tests have been done).
  • Complete overlay system (for mouse, alt+tab, etc…).
  • More complete mouse support (now scrolling is supported but not clicking, dragging, etc…).
  • Languages (I mean since we already have files we can do whatever we want)
  • Events 2.0, the idea is to take the Event Manager to another level and support synchronous events and creating new events in runtime and offer event providers (it’s all desinged, we just need to code it).
  • With Events 2.0, it is super easy to implement a high level TRY CATCH. We would have custom exception types and everything would be super high level. Even with modals in case a process throws an execption without a try catch. Even allowing the process to register a handler to be able to terminate in a neat way like SIGINT in Linux (literally a: last words?!?!).