Norost B is an object-oriented OS built around a microkernel. It is mainly focused on isolating processes from the rest of the system to improve security, portability ∧ scaling.
Files, network sockets … are all objects and have a common API. This keeps the interface simple & comprehensible while providing a great amount of flexibility and power.
Any process can create new objects. IPC is performed via operations on objects.
Processes can only perform operations on objects they have a handle to. This makes it trivial to isolate processes from the rest of the system by simply giving it only handles to objects it needs.
Minimal applications can use the synchronous API to keep the binary small while more advanced applications can take advantage of asynchronous I/O to more efficiently perform batch work.
Applications can also take advantage of shared memory with specialized I/O structures to further reduce overhead.
Some basic support for networking is present. A basic SSH server and HTTP server are available.
Applications can allocate a window and draw any arbitrary pixels to it. The tiling window manager automatically handles layout to optimize screen estate.
Once the compiler is properly configured, mkiso.sh
will create a bootable image.
run.sh
will run the OS in QEMU.