AvyOS - a Linux-based OS exploring a new userland design

Hey everyone

I wanted to share a project I’ve been working on called AvyOS.


What is AvyOS?

AvyOS is a Linux-based operating system that keeps the Linux kernel, but replaces most of the traditional userland with a new implementation written in Go.

Instead of building on top of existing GNU/POSIX components, the goal is to experiment with alternative designs for core parts of the system.

I also make sure the code is easy to read, write, and manage. It’s all written in Go.


What changes I’ve made


1. New userland (written in Go)

Instead of using GNU tools or POSIX-based utilities:

  • most core tools are written in Go
  • no libc / coreutils / busybox
  • not trying to follow POSIX strictly

The idea is to keep things simple and easier to build and maintain.


2. New filesystem layout

Instead of the usual /usr, /etc, /var mix, AvyOS uses a cleaner layout:

  • /avyos → system core (read-only)
  • /avyos/cmd → commands (nodev, nosuid) (run as user)
  • /avyos/apps → System defaults apps (nodev, nosuid) #containerized
  • /avyos/services → System services (nodev,nosuid) privileged dedicated user,
  • /avyos/config → system default config (noexec, nodev, nosuid) ini/json only configs
  • /avyos/data → like /usr/share, (nodev,noexec,nosuid)
  • /apps → installed apps
  • /config → modifiable configs
  • /users → users home directories
  • /cache → temp/runtime data
  • /cache/kernel/ → kernel pseudo filesystems (processes, devices, shared, sysfs)
  • /cache/runtime/ → like /run

This makes it easier to understand, capabilities separated, and more organised.


3. Read-only system core

The main system (/avyos) is read-only with modifiable counter-parts at /


4. Services instead of direct access

Apps are not supposed to touch system resources directly. instead use access controlled services.


5. Sutra - Decentralized IPC

Its one of the main component, its like DBus but decentralized, means no single bus, but each service expose there address via sockets, and clients talk to services via Sutra protocol.


6. New graphics system and display protocol

No X11 or Wayland or mesa, yeah no GPU for now! I have created a new graphics framework and display protocol,


8. Optional Linux compatibility

To still run normal Linux apps, a Linux environment can run inside /linux isolated from main system and not required, but available.


Screenshots

(will update as UI improves)

Desktop

Terminal


If anyone wants to try it or take a look, feel free. I’m open to questions, feedback on design, or anything that doesn’t make sense.


Links

2 Likes

Hi @itsmanjeet Awesome. Thanks for sharing with us.

1 Like

Wow, that looks exciting. Kudos for programming everything in Go.

1 Like