From owner-freebsd-current@FreeBSD.ORG Mon Aug 1 15:29:48 2005 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 19BF016A41F for ; Mon, 1 Aug 2005 15:29:48 +0000 (GMT) (envelope-from afields@afields.ca) Received: from afields.ca (afields.ca [216.194.67.132]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9FFC943D48 for ; Mon, 1 Aug 2005 15:29:47 +0000 (GMT) (envelope-from afields@afields.ca) Received: from afields.ca (localhost.afields.ca [127.0.0.1]) by afields.ca (8.12.11/8.12.11) with ESMTP id j71FTkZE092176; Mon, 1 Aug 2005 11:29:46 -0400 (EDT) (envelope-from afields@afields.ca) Received: (from afields@localhost) by afields.ca (8.12.11/8.12.11/Submit) id j71FTj63092175; Mon, 1 Aug 2005 11:29:45 -0400 (EDT) (envelope-from afields) Date: Mon, 1 Aug 2005 11:29:45 -0400 From: Allan Fields To: Poul-Henning Kamp Message-ID: <20050801152944.GB43753@afields.ca> References: <10379.1122816227@phk.freebsd.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <10379.1122816227@phk.freebsd.dk> User-Agent: Mutt/1.4i Cc: current@freebsd.org, reiser@namesys.com Subject: OT: Software's Orderly-Chaos (Re: build option survey) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Aug 2005 15:29:48 -0000 [Off-Topic alert:] OK.. time to let loose: arbitrary comparison of computer science to religion exception caught. Theory to follow. =) Keywords: BSD, Linux, life, chaos (Yes, I have a chaos theory :), disk encryption, file systems, physics, corn chips On Sun, Jul 31, 2005 at 03:23:47PM +0200, Poul-Henning Kamp wrote: > > I'm working on a script which will survey the various build options > (NO_FOO, NO_BAR etc) and what their impact is on the installed system > footprint. > > http://phk.freebsd.dk/misc/kernel_options/HTML/ > > The table shows size of the total installworld image, including > the GENERIC kernel. > > Delta is the number of blocks compared to a full installworld, and > no, I'm not quite sure yet why some of them take more space. > > Number of extra files and number of eliminated files (these link > to a "mtree -f -f" output file so you can see which they were. > > When done chewing, all the options will be tested for their effect > during "installworld only", "buildworld only" and "build+installworld" > usage. > > When completed, this script will end up under src/tools/tools > > Poul-Henning > > PS: Interestingly, this survey has theological implications as well > as it proves the long held belief that C++ is evil: The NO_CXX > option which prevents the installation of this evilness eliminates > exactly 666 files :-) Which reminds me: At the local Desktop, Linux conference I attended my pizza lunch came to exactly 6.66 CAD. (I'd recommend a Brio w/ pizza.) Since by the nature of my existence, I choose not to draw an inference on this fact correlated to a specific project at project granularity, I'll let you be the judge of further meaning. Just thought I'd let you know anyway.. > -- > Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 > phk@FreeBSD.ORG | TCP/IP since RFC 956 > FreeBSD committer | BSD since 4.3-tahoe > Never attribute to malice what can adequately be explained by incompetence. By the way the OLS was equally as good as BSDCan, lots of good, informative presentations, etc. Is it coincidence that both the BSD Kernel dev. and Linux Kernel developer summit were held in Ottawa? (I tried to sneak in, but the quite friendly USENIX people at the door asked me for my name and turned me back -- better social engineering required -or- I could just write some important kernel code for next year.) It must be one of those strange attractors alluded to in the physics / Chaos theory. Some time I should take a trip to Europe maintaining symmetry in the migratory patterns. So what's so mysterious/evil about 2/3 (e3) anyway? Other than it's an irrational number indicating dissonance between two small prime quantities (an infinite stream of sixes.) But then isn't 1/3 that much more evil? (threes forever! >:) I've already got the holy grail, so this one shouldn't be that difficult to puzzle out. (or there is always gg:666) OK so on the topic of evil: Chaos can seem pretty evil when it overwhelms our best attempts at the higher order. So how about Chaos as it pertains to Software? I found it astonishing to note the lack of a Universal symbol for Chaos in the Unicode mathematical table, yet Wikipedia has one for us: http://en.wikipedia.org/wiki/Symbol_of_Chaos I invented one of my own Saturday night, but since people are fixed on the idea of expansion from the singularity / big bang as representative of Chaos.. I guess that one sticks? I then tried in vain to merge the iconographies. ^ \|/ Chaos == <---0---> ? /|\ V Interesting: and isn't that similar to the Kline Star from a distance? A very greedy match? Maybe this symbol needs to be simplified if we are to eventually type it in 9-point font. Software engineering is the art of overcoming Chaos in preservation of the information order while supposedly achieving some end either computationally or otherwise. The art of infinity, this is to understand the nature of computation. The computational nature of life that is.. ;) "Spooky" action at a distance and the Quantum secrets. It's all out there for us. Just more Cryto-Computational-Philosophical- Religious-Technical-Analytical type stuff with deductions to draw and upon which to build our theories. Very Neal Stephenson or Larry Wall because everyday life starts to make technical sense and things like corn chips suddenly start to relate to man kinds larger technical pursuits. (The world is a complex place? But then it has to make sense, how else would it be implemented?) Note that there are a great number of books on these subjects: Chaos Emergence Infinity that you might have read or be interested in reading. If you have any ongoing questions that you've puzzled over that you think are worthy challenges I'd be interested to see them posted online. I can't remember if/what I was suppose to ask you yet, but perhaps you've been seeking some larger answer. Have you any unsolved problems or conCERNs? I have been developing some Universe theories and it just makes sense from a computational perspective. I'm also listening to Weinberg's Dreams of a Final Theory (audiobook). You're still not alone in recognizing the parallels, and they are VERY applicable ... ;) Simplicity,Generality,Clarity are probably the most religious comp-sci ideas yet, hopefully *NIX can continue to get it right. I know with talk of Plan 9 at OLS people are starting to become more bent on bringing higher theoretical purity to the operating system in what primitives are provided. Yet surprisingly the Linux community are still rather conservative as to what code actually makes it into the kernel to the exclusion of Reiser4 it seems. That's not to suggest Linus should open the flood gates to any and all code, wouldn't you also agree? There may be some implementation-centric technical reasons for that, but Stephen Tweedie doesn't buy it yet. :) So what can be learned from this resistance (w/o commenting on the validity of the logic.) Should we all be using FUSE and should it be ported to BSD? Then why not stop using filesytems all togeth and just use databases mapped to raw disks going through VFS to the userspace and finally back through VFS? There are reasons that people don't care for some of the ideas presented in these seemingly unnormal *nix-border-line cases that push the envelope. But can they be made kosher with the rest of the normative cases: i.e. clean in implementation. Abstract concepts can be drawn upon in finding answers - these could include: Closure Completeness (0..N Generality) Generality / Recombination Applied at multiple scopes. In the kernel the reason your ioctl reform makes sense from some theoretical angle is indeed because it offers generality and closure (of interfaces). These concepts are areas of traditional software design that could seek improvement. The most ingenious elements of current-day *NIX are the abilities to simplify and recombine primitives of operation on files. But a whole new phase/generation of function could be introduced with-out disrupting the theoretically minimalist underpinnings of the operating system (i.e. unnecessary code). Regulator: Given a pool of Chaos, the creator as the regulator assembles based on the patterns and stored memory available to them. The act of creation is an act of feedback between the system and the creator. Software developers are creative so the structility of each developer/author/committer and their decisions determines the extent to which software becomes chaotic at multiple scopes. But also the structility of the collective in cooperation to deliver the combined entity of software is dependent upon many factors. Scope: The importance of scope is key in regulating chaos: even today scope seems to hide that which could be done more efficiently. That which can be common but isn't or that which must be divergent but seeks some unification or common infrastructure. We have not yet exercised the full extent of the magic upon scope which is possible. Repetition: there are two types of repetition; necessary and unnecessary. The necessary brings redundancy, the unnecessary brings evil as in Spam or tasks which require continual repetition. At each scope of life some repetition can be helpful, but absent that which holds these entities commonly divergent the repetition is simply unecessary. In an ideal world there is no need for repetition. Software isn't always ideal and forks both in scope and solution space (at common scope) bring much developer challenge. Some challenge leads to insight while other challenge leads to drudgery and futility. I commented on how the BSD forks seem to paradoxically offer new opportunities for development. http://afields.ca/bsdcan/2005/reflection I'm still waiting to update the quotes of which a few are incorrect I'll rsync an updated version of the reflections and more info/check marks in the TODO boxes hopefully. I've started in on Wiki, as it seems the only logical format for the quick recording of my ideas and being able to keep them up to date. If some architecture was so cleanly coordinated that everything was done once only at one scope (no duplicate between device-level and vnode-level subsystems) then it would all "just fit". But take the contrary case where we are trying to implement fine-grain disk encryption to supplement device-level, how do we keep all the encryption in a single layer only? It makes sense instead to use the common kernel crypto infrastructure and build on that at multiple layers, unless we simply choose one or the other with it's various merits. Structility/Crystallinity (The structility of the regulator): This is important to BSD and is a traditional hallmark of *BSD. IMO, BSD should make it practical and simple, where it makes solid rational sense, but too much conservatism would stifle the potential for future innovation. The crystal regulator can separate and recombine in derivation of the purest form while maintaining fundemental qualities. Unification: Maintain the strength of Unix (while emphasizing the UNI-upon-*) Perhaps we got it backward, maybe it was suppose to be UNI* instead of *NIX. The age of the holy unification might bring us an advantage in the Open Source world that will leave those who wish failure and naysay based on software bedeviled by it's very exponential complexity/growth proven incorrect. This would imply a type of paradoxical software development: spiritually motivated reductionism/refactoring (a trend toward this would be the emergence of a new movement.) Reductionistic software development: The software author that seeks not to add new features but only to bring closure, order and general calmness to the existing solution space. One who seeks enhance the logical where the process of creation has left it's chaotic signatures in the amorphus elements of the incarnation. It would be a refinement of the software design which would improve and further strength or rebuttress the walls and add that so desired strength back into the more unsettled areas of the OS. FreeBSD needs this not because it's failed, but because it has areas to which improvements can be found which weren't available at the time of genesis of the creation. Linux definitely needs this and even GNU needs this. I've got a few projects in mind. But really, I'll have to start spooling some of these ideas off, cause the queue is severely backed up and the bottle-neck is _me_ (in my mortal incarnation). I continue to focus on what is obtainable in the theoretical (abstract) and more pragmatic elements (concrete), and the quest marches onward.. I have ideas, but it's the barrier between the abstract and concrete. More...: Even all these ideas are a subset expedited in specific for the purposes of software contemplation. So I need a Concurrent-Distributed-Process-Forking-Exec thingy. Since we are cellular automata of a sort, I can simply toss it into the ether and hope that some pattern matches occur resulting in construction of the ideas with-in the digital-upon-physical realm by an entity of similar, specific disposition. Some ideas it seems we cannot yet fathom, as the concrete incarnation and it has been a challenge to try to practically convey these to those who, understandably just want to maintain the current stability/state of the kernel, filesystem, etc. But these ideas should be SIMPLE. I'm convinced these are sufficiently important concepts that if we don't solve the fundamental disorder we'll end up with the current situation of userspace bloat and systems upon systems in compensation. Suprisingly this may provide a higher barrier for entry in scientific-computing and why can't we easily use the pool of knowledge available on the Internet? Ted Nelson might know why, and it's also a problem in the OS space. So, enter the age of nanophasic computing? I think eventually BSD/Linux developers and companies like Google might show an interest. But missteps (why system architecture matters) will only set us all back (as a race), and it's all about what makes the most rational sense for the OS, the core libraries, the userland: the technology. Have a happy non-denominational (belated) comp-sci/*NIX religious day.. -- Allan Fields