To try it out, download the source, build it, and run it in a VM like this:
qemu-system-i386 --cdrom basekernel.iso
The key organizing principle of NunyaOS is hierarchical containment. This means that each process lives within a security container. Within that container, the process has complete authority to manipulate its resources. It also has the power to create sub-containers and then place child processes within them. The containment can be applied to each of the resources within the system -- currently the filesystem, the window system, and the memory allocator. As a result, each process lives a in a sort of a lightweight virtual machine, where it perceives itself to be the superuser.
For example, here are a few nested containers, each with their own filesystem root, display, and memory allocation:
Ideally, every child process will live in a container, so that we can eliminate attack vectors between code provided from different sources. For example, your desktop should run your web browser in a container, your web browser should run each tab in a container, and each tab should run downloaded code (like a video codec) in yet another container. In this way, untrusted code has very little leeway to affect other elements of your system.
Of course, this idea changes the customs by which processes interact with each other. We can no longer build programs that scatter data all over the filesystem, and expect others to read it. There are many challenges here, and we have only begun to dig into them.
This comment has been removed by the author.
ReplyDeleteand can you give me a example of plot_pixel(); function
ReplyDelete