8 ms·
This kind of article develops a dangerous line of reasoning. The failure of Plan9 is not about what went wrong or right. It is about how the market evolved and
by uhura 4y ago
This kind of article develops a dangerous line of reasoning.
The failure of Plan9 is not about what went wrong or right. It is about how the market evolved and made decisions, which goes beyond the scope of this comment.
The first conclusion "...is not to try to fix things that are not broken..." is dangerous because what someone identifies as broken is not the same as someone else. As a Plan9 user you may identify Unix deficiencies as problems and a Unix user might disagree.
The second conclusion "...is to try to identify if there is a market..." and there are many things in life that contradicts this (maths, basic science, maybe the beginning of Unix itself...).
And the final conclusion is about backwards compatibility. This is sound in the authors perspective because of the first conclusion but does not hold against good reasoning. Plan9 broke some compatibility because it needed and kept others because they were already good in the POV of the developers/researchers.
The Plan9 effects to me is far different. It is about the fact that Plan9 is unable to die against all expectations.
9P is there to stay, 9front gets releases every year, /proc is everywhere, same for UTF-8, and so on.
Good ideas stick, they are hard to let go and even harder to ignore. Plan9 failed in the commercial OS sense, just as many others failed. "You may never know it's broken until you fix it" (I'm sure heard it somewhere).
- pjmlp 4y agoProcfs appeared originally on UNIX, see USENIX paper.
- yakubin 4y agoAnd BSDs removed it, deeming it a security risk. Personally, I don’t like that it’s more of parsing text files to get a number, when you could have functions returning structs (of variable length, to get extensibility, while preserving backwards compatibility).
- trasz2 4y agoNot just BSDs; no major operating system other than Linux uses procfs anymore.
- linksnapzz 4y agoSolaris has had procfs for years.
- trasz2 4y agoSolaris is a history at this point.
- linksnapzz 4y agoOracle and Fujitsu still sell and support it.
- nix23 4y agoReally? Tell that oxide computers...well it's not Solaris but Illumos.
- kelnos 4y agoSure, but Linux is also on more devices than any other OS in the world. Your statement would be more damning it Linux was a minority player or on the decline, but that's not the case. Procfs seems... fine, really.
- ectopod 4y agoBeing pedantic, isn't Minix more widespread because Intel embedded it in CPUs?
- trasz2 4y agoAlso most Linux machines, like phones, also contain instances of things like SEL4, often a couple of them. And Linux... well, it managed to accumulate a lot of historical baggage for something that young. Device numbers are another example.
- TristanBall 4y ago
- somat 4y agoA fair assessment, but at the end of the day it is all just a stream of bits, bits packed into a into a structure, how do you know the structure?, how do you know how wide each part is? or bits packed into an array of encoded bytes. what is the encoding? how do you parse it? The array of encoded bytes despite it's complexity overhead has an advantage in that is lays on the human visible side of computing, that part of computers designed for the human to use. I have to admit more often than not I prefer to eat the overhead and have an interface that I can see.
- marcus0x62 4y agoThe BSD approach at the time was to require setuid access for programs like ps to be able to read the kernel memory space via /dev/kmem to produce a running process list. That is infinitely more stupid than procfs.
- asveikau 4y agoThe stupidity of that is orthogonal to whether to use procfs or another sane, but less plan9 approved design like a syscall interface or an ioctl. I'm reminded of another thing that used to be file based but moved away, and towards syscalls: random number generation. One criticism of a /dev/random approach I've seen is that open(2) could have some fringe error case (descriptor table too big?), and you don't want your secure RNG to bail on you. In particular lazy initialization of a secure RNG where the caller may not be able to check for errors.
- ilyt 4y agoOverall it's far more universal interface, you app "just" needs to parse relatively simple texfiles instead of api call per data type. The text format is a problem on its own tho, "procfs but serialized using single format" would IMO be a best middle ground between tying your app to essentially kernel headers and parsing a bunch of random textfiles
- dopidopHN 4y agoThanks you to express in English my inconfort growing while reading this ( otherwise nice ) article. Market fit is insight 20/20 IMO, but you phrased it better. Overall, my discomfort is that it’s the type of reasoning that keep you with your two feets in the mud. Stuck. I’m stealing “you don’t know it’s broken until your fix it”
- matheusmoreira 4y ago> Good ideas stick, they are hard to let go and even harder to ignore. Horrible ideas are even stickier unfortunately. Like Unix, Plan 9 is also designed around forking processes and even has asynchronous signals.
- jolmg 4y agoA more agreeable example would be Windows forbidding specific file and folder names to reserve for device names, something it apparently inherited from CP/M.
- unwind 4y agoCan you please elaborate on why those two ideas are "horrible"? Forking processes seems like a rather elegant concept, to me. Granted, it's sometimes weird that in order to have a process running image A create a process running image B, it must first have a mirror image of itself for a while, then replace it. But the symmetry and simplicity at the conceptual level is nice, and the ability to have code for both parent and child in the same image is neat.
- jolmg 4y agoIt's called trolling. They're using the word "horrible" to bait a response on something that can be easily argued on.
- matheusmoreira 4y agoIt's called having an opinion and expressing it. You can accept my opinion, ask me to elaborate or convince me it's wrong. What you can't do is accuse me of trolling just because you disagree.
- jolmg 4y agoNo, I thought you were being hyperbolic, but after you've explained your problems with signaling, I agree with it. Kind of depressed at the state of that, now...
- B1FF_PSUVM 4y ago> Good ideas stick, they are hard to let go and even harder to ignore. That's a noble wish, but that doesn't make it true.
- nine_k 4y agoIf an idea does not stick, maybe it does not provide a benefit? Then it's not really good, but merely good-looking.