TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Plan 9: The Way the Future Was (2003)

78 pointsby ktamuraover 9 years ago

8 comments

Isamuover 9 years ago
&gt; it looks like Plan 9 failed simply because it fell short of being a compelling enough improvement on Unix to displace its ancestor.<p>I really don&#x27;t think so. Unix caught on because it was (initially) available for free with source code. It was freely available at the time because the Bell System, as a regulated monopoly, was prohibited from getting into the software business. Universities loved it as an object of study, and it spawned many derivatives, also freely available. After the breakup of Bell, they started marketing Unix.<p>Plan 9 in contrast was not released for free, had restrictive licensing, because Bell Labs was now under AT&amp;T. I think it is hard to overstate the impact of this difference.<p>Linux became popular first because it was free, and because it invited hacking, and then because the combination of these caused a snowball effect.<p>I would like to add that Plan 9 is in fact very compelling, but the advantages are maybe hard to appreciate. A big issue was also that it initially supported a limited set of hardware because they didn&#x27;t use the hardware BIOS.
评论 #10756549 未加载
twotwotwoover 9 years ago
Go has connections back to Plan 9. Pike and Thompson are credited as designers on Plan 9 and Russ Cox did a ton of work on it. (Pike&#x27;s wife Renée French drew Plan 9&#x27;s bunny mascot Glenda, and the Go gopher.) Go was in Plan 9 C until it became self-hosting. I think it even inherited that quirky asm syntax that that poor illumos dude didn&#x27;t like. Plan 9 introduced UTF-8 and of course Go uses it, though most new projects today would use UTF-8 anyway.<p>I wonder if the team members&#x27; experience designing an OS made them a bit bolder doing some things differently from most of the ecosystem around them, like starting with their own ABI (everything on the (variable-sized) stack) and static linking.<p>There&#x27;s certainly a focus on networked uses in both Plan 9 and Go, and the lightweight threading (for apps that juggle a lot of clients but spend a lot of time waiting on other machines) and the servers in the stdlib (including HTTP2 by default in 1.6!) are part of that.<p>&quot;Everything is a file&quot; makes me think of interfaces like io.Reader&#x2F;Writer in Go. I remember as a newbie being impressed how it was elementary to string together a pipeline. I suppose you can string together pipelines fine in other languages too, but I still think Go does a pretty good job keeping it simple (a couple of method definitions get you started) but clear on essentials (when things block, how errors look).<p>Anyhow, I&#x27;d really love to hear more about the connections back to Plan 9 from someone who knows about them.
评论 #10757492 未加载
评论 #10757253 未加载
geowwyover 9 years ago
<p><pre><code> &gt; Some Plan 9 ideas have been absorbed into modern Unixes, particularly the more &gt; innovative open-source versions. FreeBSD has a &#x2F;proc file system modeled &gt; exactly on that of Plan 9 that can be used to query or control running &gt; processes. FreeBSD&#x27;s rfork(2) and Linux&#x27;s clone(2) system calls are modeled on &gt; Plan 9&#x27;s rfork(2). Linux&#x27;s &#x2F;proc file system, in addition to presenting process &gt; information, holds a variety of synthesized Plan 9-like device files used to &gt; query and control kernel internals using predominantly textual interfaces. &gt; Experimental 2003 versions of Linux are implementing per-process mount points, &gt; a long step toward Plan 9&#x27;s private namespaces. The various open-source Unixes &gt; are all moving toward systemwide support for UTF-8, an encoding actually &gt; invented for Plan 9. </code></pre> This is interesting. Anyone know of other ways Plan9 has influenced Linux etc. since 2003?
评论 #10756768 未加载
评论 #10757655 未加载
评论 #10757277 未加载
shaunshaunshaunover 9 years ago
Plan 9&#x27;s spiritual successor is Inferno, which is open source. <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Inferno_%28operating_system%29" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Inferno_%28operating_system%29</a><p>Inferno seems like the obvious choice for the IoT.
评论 #10757261 未加载
评论 #10758151 未加载
white-flameover 9 years ago
One of the core problems of Unix is this focus on textual streams.<p>Every configuration file, every proc-style file, every interchange format ends up with its own unique take on what format is easiest for it to present&#x2F;consume. Every program has its own text parser &amp; generator that generally is the minimum bar to deal with the text that it assumes.<p>And at some point, when taking a bird&#x27;s eye view at all of this, it just turns into an unpredictable and insecure mess.
评论 #10757180 未加载
评论 #10761640 未加载
评论 #10757200 未加载
zubirusover 9 years ago
While I agree with the article&#x27;s reasoning, I never seen the argument on performance. Could it be that the overhead of Plan9 &quot;everything is a file&quot; abstraction was too much to handle when compared with the more pragmatic UNIX sockets?
评论 #10757465 未加载
jernfrostover 9 years ago
So perhaps Plan9 at least can serve as a clear definition of where Linux ought to move over time. I often work with old software this way. I try to figure out first what I actually want regardless of the limitations of existing software is. Then I look at what we have an try to figure out if there is a gradual path that can take one to the ultimate goal. I prefer this over just incremental improvements without any clear end goal.
csenseover 9 years ago
I was sure this article was going to mention FUSE, but I guess it was still in the future in 2003.
评论 #10756654 未加载