Note: This is a read-only mirror of the main repository hosted on Gitlab. All development, CI/CD, and issue tracking happens on Gitlab.
⚠️ No Longer in Development - This project was a final year College paired project.
Hako is a browser-based, Unix-inspired educational operating system designed to teach students fundamental systems programming concepts through a simplified execution environment.
Try it out: hakoapp.com
NOTE: This is a self hosted website, and although effort is put in to keep the website up, it is subject local network outages and alike.
Hako is a fully client-side web application that blends the familiarity of traditional desktop interfaces with the structure and philosophy of Unix-like systems. It aims to reduce the abstraction commonly found in modern programming environments, helping learners understand how code interacts with the underlying system.
- Code Execution Environment: Embedded Lua interpreter for writing and running code.
- Graphical Desktop Interface: A windowed desktop with a taskbar.
- Core Applications:
- Terminal & Shell: Lightweight shell with support for redirection and piping.
- Core-Utils: Core-utils inspired by GNU, for a useful and educational CLI experience.
- Text-Editor: Minimalist editor with syntax highlighting.
- File Manager: GUI for browsing and managing the filesystem.
- System APIs:
- Filesystem operations
- Process management
- Window management
- Terminal management
- Error handling
- Processes: UNIX-Inspired processes powered via webworkers.
- Persistent File Storage: Built on the browser's IndexedDB.
- C
- WebAssembly
- Meson
- Javascript + Typescript
- Lua
- Web Workers
- IndexedDB
- Emscripten
- Go
Hako is a teaching tool built around the principles of systems literacy. It offers a hands-on, minimalist environment that bridges the gap between beginner-friendly tools and full-fledged operating systems.
- Niall Ryan
- Cathal O'Grady
