Thursday, November 25, 2010

The Perfect Virus principle #3: Self Awareness

As indicated in my post of Monday, 11/22/2010, I am extrapolating Jeff Walker's Principles for the Perfect Application into a discussion of The Perfect Virus. Since Jeff's monograph on the subject did not anticipate stealth or suicide mechanisms, any errors or lapses into stupidity are solely my additions and should not reflect poorly on what I consider to be the biggest single contribution to software application design since the invention of computers. And Jeff, thanks for giving me permission to do surgery on your baby.
THE PRINCIPLE OF SELF AWARENESS: This is the second-most difficult principle to enforce in a virus (the most difficult of which will be #7, that of Black Box Portability). Please do not confuse self awareness with consciousness, that metaphysical quality of being that's only achievable by sentient beings. What I call self awareness, IBM's Paul Horn described on October 15, 2001 as "autonomic computing." Specificaly, self awareness is that quality that allows The Perfect Virus to not only generate/re-generate/heal itself, but flawlessly maintain itself in the absence of oversight from any outside source. In its roughest sense, this would be analogous to performing an appendectomy on yourself (I used this image in a Forté ad before they were acquired by Sun, who was subsequently acquired by Oracle):

At a more advanced level, a self-aware/self-healing/self-modifying entity would change its own DNA on the fly. Yeah, I know. Talk about Dangerous with a capital "D".

I've been thinking about self-healing systems for a good many years. Autonomic computing concepts existed long before IBM got around to pontificating on the subject. I was intrigued with systems that self-generated, like the Forth process control language in the early 1970s. I met Elizabeth Rather in early 1971 as she generated Forth for Data General Computers located at the National Radio Astronomy Observatory. Because Forth literally generated itself, it was frequently used to quickly make new computer architectures productive. This was also the period during which I wrote my own real-time operating system in assembly language for the Data General Nova computer. Interestingly, the entire operating system took just over 700 12-bit words of memory (I'll talk about the significance of this experience in tomorrow's post on Performance). Less than 5 years later, I morphed from a mathematician into an electrical engineer (an electrical engineer is just a mathematician who learns Ohm's law) to invent the Hagoth voice stress analyzer. Then, completely full of myself and prodded forward by my friend and science fiction author Frank Herbert (Dune), I sold the company and ran for U.S. Congress in 1978.

By the mid 1980s, I'd morphed into a guerrilla warfare hit man specializing in technology companies. It was during this time I met Morris Jones, an Amdahl wizard who became chief scientist for SEEQ and then for Chips and Technologies. Morris shared with me the Silicon Valley secret, how a very small group of hardware-design wizards moved from company to company, bringing their own tool kits with them from job to job. They actually used those same tools to re-generate themselves for whatever new platform, language or architecture was required by their new jobs. Again, self-generation technology pinged that little spot in my brain that dwelt on cyber self awareness.

But my major insight into software self awareness came during my tenure at TenFold with Jeff Walker. TenFold applications were actually self aware applications. Not only did they generate themselves, but they could modify themselves without blowing up. That's because the TenFold system generated perfect applications every time. To be sure, the underlying operating system could still fail (thanks Microsoft, for that blue screen of death), but adherence to Jeff's 22 Principles for the Perfect Application virtually assured perfect applications every time. I still have a shelf full of documentation detailing how this was achieved, and this isn't the place to regurgitate to that level of detail. I can, however, encapsulate the methodology in very few points:
  1. The Perfect Application (and The Perfect Virus) is analogous to a Microsoft Excel spreadsheet. It does whatever you want it to do, and does it perfectly. Whatever hardware or operating system underpinnings support the spreadsheet, those are invisible to the application. Furthermore, the spreadsheet user can immediately see if it's doing what he wants it to do, because it runs instantly. No compilation. No human errors introduced through punctuation errors in assembly language or C++ coding. No SQL infinite loops because of mistyped syntax in queries.
  2. The Perfect Application functioned in a bullet-proof virtual machine, independent of hardware architecture, network protocol, or operating system.
  3. The Perfect Application was written in itself, which meant that it could self-diagnose and change its own DNA as it were.
Yes, there's more. And those points will be covered in the remaining 19 principles of The Perfect Virus, because they are derived from the same principles Jeff used in his Perfect Application architecture. The most important revelation in today's posting is that the principle of Self Awareness is not pie-in-the-sky conjecture. It's not science fiction. Because I've seen it in full, glorious operation. I've seen how Jeff did it, and I can clearly see how the right applications architecture can achieve it in any domain, including the domain of The Perfect Virus. 

No comments:

Post a Comment

Implementation suggestions for THE MORGAN DOCTRINE are most welcome. What are the "Got'chas!"? What questions would some future Cyber Privateering Czar have to answer about this in a Senate confirmation hearing?