3 ms·
Your comment made me look up Plan 9 on wikipedia (http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs). I like
by reirob 16y ago
Your comment made me look up Plan 9 on wikipedia (http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs). I like very much the philosophy of Plan 9 and the evolution from the Unix base and it is really a pitty that Plan9 did not have much success. I hope that some of it designs will find its way to Unix though.
I discovered that at least one Plan 9 invention had success and is found today everywhere: UTF 8 encoding.
- dexen 16y agoNo place for the past tense :-) The OS is under development, and as more people jump in [1], the pace increases. A lot of software has been ported natively or to APE; you can get a pretty decent UNIX workstation with P9 alone those days. On the other hand, if you want to try it the easy way, consider http://swtch.com/plan9port/ http://swtch.com/plan9port/ Runs on virtually any POSIX environment, but it's just a teaser of Plan 9. I'm using the Acme editor from it daily. Linux adapted quite a bit, the clone() syscall, the --bind option for mount (only partly implemented, thou), the pervasive namespacing, the XRender API (modeled after BitBlt) and some more. In a way Git's storage resembles Venti [2] but probably is just convergent evolution. -- [1] http://9fans.net/archive/ http://9fans.net/archive/ search powered by grep :D [2] http://en.wikipedia.org/wiki/Venti http://en.wikipedia.org/wiki/Venti EDIT Re: UTF-8 It's a funny story; Linux only imported half of the Unicode support from Plan 9. In P9, UTF-8 is used on-the-wire and on-the-storage. However, in case a process wants to deal with sizeable amount of text (say, a text editor, a grep etc.), it converts the UTF-8 into `Runes' -- strings of 32bit integers (till recently 16bit) directly denoting Unicode characters, for fast access by offset. And back to send over wire or write to storage. Another nice story, you get a network connection with just one libcall: dial(). For example, int fd = dial("tcp!news.ycombinator.com!http", 0, 0, 0); and that's it :D
- anant 16y agoFor folks looking for a really fast and easy way to play around with Plan 9, I would encourage you to look at 9vx: http://swtch.com/9vx/ http://swtch.com/9vx/ No virtual machine, just a tarball (available for freebsd, linux and mac os x) that uses vx32 (http://swtch.com/9vx/ http://swtch.com/9vx/) to dynamically execute plan9 code in a sandbox.
- dexen 16y agoThanks for the great pointer; totally forgot about this project :D