From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Brian L. Stuart" To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Date: Thu, 13 Nov 2008 17:28:45 +0000 Message-Id: <111320081728.9357.491C63CD000CBE0C0000248D22230682229B0A02D2089B9A019C04040A0DBF9B9D0E9A9B9C040D@att.net> In-Reply-To: <140e7ec30811130855l3defca3cof48a336b6c7de46a@mail.gmail.com> References: <7D122EF9133395AC4DEA0396@192.168.1.2> <140e7ec30811130855l3defca3cof48a336b6c7de46a@mail.gmail.com> Subject: Re: [9fans] Do we have a catalog of 9P servers? Topicbox-Message-UUID: 41454976-ead4-11e9-9d60-3106f5b1d025 > It's a matter of approach. Linux takes what I like to call the cookie > monster approach, which is MORE MORE MORE. More syscalls, more ioctls, > more program flags, more layers of indirection, a constant enumeration > of every use case. Rarely is there a pause to check whether several > use cases can be coalesced into a single more general way of doing > ... > More to the point, I'm yet to see a richer set of abstractions come > out of another system. Private namespaces, resources as files... they I often try to explain it to people this way. There's a big difference between mechanisms and features. Well designed software gets a lot of features out of a few mechanisms. Poorly designed software creates a new mechanism for each feature. You can see the difference in the code, and you can feel the difference when using it. For example, the design decision to use a standard protocol across all resources and a mechanism to import name spaces doesn't seem like all that much if you're judging by the release notes. But it's hard to even list all the "features" you get from it. The discussion about /net is one. It makes dealing with graphical displays across a network so elegant as to make X look positively gross. It makes using a remote disk for off-site mirroring trivial. And the list goes on. Your homework assignment is to figure out which of those two characterizations best fits the software you use daily. BLS