Hacker Newsnew | comments | show | ask | jobs | submit login

I think the most important design criteria in the evolution of Unix to Plan 9 to Inferno was that each step consciously made things _simpler_. Simplify the programming model, use fewer different concepts, get rid of workarounds and hacks by bringing useful features into the OS. Remove redundant utilities and even options to utilities, focus on improving the one may to get something done so it hardly takes any effort to do it, and integrate all the various bits well with each other. It's not an approach that asks for newcomers to hack on all sorts of things to "improve" the OS by adding everything possible to it, which is part of why it doesn't foster a big community.

I think the biggest difference between Plan 9 and Unix is that Plan 9 rids systems programming of many special cases by reusing the filesystem metaphor as far as possible. This is a deep and pervasive change, and makes doing most things on the system just a matter of reading and writing to files. This leads to neat things like the /env filesystem, which is a per-process view of the contents of shell variables as files. (This makes it easy to write make (mk) rules that depend on shell variables, just by listing the files/variables as prerequisites.)

Inferno's biggest difference is that it runs the entire OS on a virtual machine called emu. Kind of like Java, but not just a language. (Inferno has a language too, called Limbo, which is closer to Go than C.)

> Inferno has a language too, called Limbo, which is closer to Go than C.

Well, probably not surprising given Rob Pike's involvement in both Limbo and Go.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact