Friday, March 18, 2005

Failure oblivious computing

As I continue to labor under the delusion that people find what I have to say interesting, I've decided to restart my (shudder) blog, originally titled "Confessions of an Operating Systems Junkie." (Perhaps in a few decades, when blogs are considered as normal as cell phones or small yappy dogs, I'll leave out the "shudder" part.) First, a quick recap of past episodes... In order to avoid the usual fate of blogs - e.g., random complaining about roommates leaving the dishes in the sink - the main theme of my blog is "Cool systems papers I've read lately," leavened with "Cool other things I've read lately" and very occasionally, "Cool things I've written lately."

While I spent the last few months primarily sleeping on planes and controlling the urge to throttle the sales creature on the other end of the phone, I also read a few systems papers. (Do I sound bitter? Heavens.) Today's cool systems paper is the utterly delightful Failure Oblivious Computing from Martin Rinard at MIT. A safe C compiler creates code that dynamically checks for out-of-bounds memory accesses and terminates the program; this converts, e.g., buffer overflow attacks into mere (?) denial-of-service attacks. Martin wondered what would happen if the compiler instead generated code to transparentally mask bad memory accesses - for a bad read, return some made-up data, for a bad write, silently throw it away. In a lot of cases, the answer is that the program behaves almost as if it had no bug at all, and better than either the safe C compiler case (program termination) or the normal C compiler case (successful security exploit).

Sounds crazy? Read the paper, you'll enjoy it even if you don't agree. Here's a little taste to whet your appetite. In failure-oblivious computing, writes are just thrown away, but how do you decide what value an invalid read should return? In his talk at OSDI 2004, Martin gave the sequence of return values as this: 0, 1, 2, 0, 1, 3, 0, 1, 4... This is because (a) eventually it will cycle through all possible values, allowing things like searches for a particular ASCII character to eventually succeed, and (b) 0 and 1 are the most common data values loaded by programs. This got a big laugh from the audience. In fact, Martin won the unofficial Best Talk award as judged by the Val Henson Laugh-O-Meter. The Laugh-O-Meter was inspired by a talk I gave at the Silicon Valley Linux Users Group a few weeks before. Somehow I managed to make the audience laugh about every 3 minutes while talking about... the history of UNIX file systems. Wild. With any luck, I can repeat the performance at the LUGOD this upcoming Monday night. Imagine what I could do if I were talking about an actually interesting topic!

Martin told me that the only reason he could think up failure oblivious computing was because he hadn't written any code for 10 years. Depressingly, I think he's right. On the other hand, I've only written a couple of test programs and a few scripts over the last 6 months, so perhaps I'm on the road to greatness as well.

If you're reading backwards, you've just hit the end of this blog. I have an earlier blog I wrote while I was at Sun:

Confessions of an Operating Systems Junkie

Hopefully they won't notice I've quit and delete it any time soon.

7 Comments:

Blogger Katie said...

Martin told me that the only reason he could think up failure oblivious computing was because he hadn't written any code for 10 years.

Why's that? Does he think he needed a step-back-and-look-at-the-big-picture view in order to think that up?

9:29 AM  
Blogger sfllaw said...

As I continue to labor under the delusion that people find what I have to say interesting, I've decided to restart my (shudder) blog, originally titled "Confessions of an Operating Systems Junkie."

Huzzah! I've been waiting with bated breath for your weblog to come back.

6:09 PM  
Blogger T said...

Oh, wow, I wish I'd noticed this blog entry when it was written. I just wrote a paper on a related idea (blocking off sections of code but keeping things running rather than terminating the process). Oh well, at least I've got it now!

Another very good person to look up, on this topic, is Angelos Keromytis from Columbia University. I just saw him give a talk on self-healing software that was really neat. The result that really got me is that apparently they went around forcing different functions to terminate with an error in apache, and 90% of the time the one dis-allowed function didn't cause the server to crash -- it even returned correct results with a function missing! His work is converting buffer overflows to regular errors, so the application can handle them itself, and apparently some are robust enough that they can recover from having functions return errors rather than buffer overflows.

I'm not sure if the excellent results are because of server software like apache being super-robust, but it's still interesting!

And yes, I only got to hear the talk after I'd done the paper too. Ah well.

9:08 AM  
Blogger E-A said...

Hey, nice blog! I'm definitely going to bookmark you!

Check out my ascii site if you have time: www.ascii.ws

Have Fun.

12:29 PM  
Blogger hypnosis said...

Great blog. If you like you can visit subliminal messages.

2:03 PM  
Blogger fish said...

The personal development industry has never been bigger! It consists of a myriad of authors basically telling us how to improve our lives. We are constantly being told self help and self improvement has never been easier. New techniques, gadgets and potions adorn the shelves of new age shops and the 1 billion dollar industry, that is personal development, offers many different approaches to help better our lives. They offer ways to increase our bounty and ultimately alter our own reality. A great example of this is how to develop a Prosperity Consciousness. But does this state really exist and if it does will it bring the effortless unlimited wealth promised?
A lot has been written about prosperity and how to attain it. We have been told by many religious traditions and every personal development guru that the Universersal Source (God, Spirit, Cosmic Mind or whatever label you chose to give it) is boundless wealth. We are also told that abundance, wealth and prosperity are our birthright! Why then are so many people ill, broke, frustrated and unfulfilled? Can a person really develop a prosperity consciousness and effortlessly attract wealth? Well as with everything in life there is only one way to find out. Test it for yourself!

Before we can attain and then test the effectiveness of having a prosperity consciousness we need to understand some basic truths. Let's start by explaining three fundamentals of personal development namely; 1. The Universal Source is all wealth, abundance and prosperity; 2. Prosperity is our birthright; 3. You get more of what you focus on.

1. Why are we told that the Universal Source is unlimited wealth? - Because the Universal Source is the consciousness of the Universe - a universe that is still expanding. It is the driving force behind physical reality. It created everything you see, hear, touch and smell as well as all that we are unaware of (microwaves, radiation, air etc.). It has been stated in religious and metaphysical traditions that this intelligence is not only the Source of everything but that it is also the substance of it! It creates the Universe from itself! It is omnipresent (everywhere present). That means that the entire seen and unseen aspects of the universe are a part of this Universal Source. Science reaffirms this theory as it states that nothing is solid and everything is just one mass of pure energy that vibrates at different frequencies and gives the illusion of separateness.
So we can now claim that the Universal Source is unlimited wealth, abundance and prosperity with some belief. For if this Source is the very substance of everything then it is all the wealth, abundance and prosperity that exists at this very moment!
Ok so far? Now lets look at the second point - prosperity is our birthright.

2. If this Universal Intelligence is the source and substance of all things then there can be only one intelligence in the Universe. Jesus said to his disciples "know ye not that you are the temple of the living God?" Buddha attained enlightenment and "oneness". The list of these religious teachings are too numerous to mention but their message remains the same - God (Universal Substance) resides within and around us. It's very substance makes up our physical body and the world around us - "For in him we live, move and have our being" Acts17:28. Therefore, if this Universal Source is at the very core of our being and is the substance from which we take physical form then it stands to reason that we are connected to everyone else and in fact everything else around us - we are a part of all the wealth, abundance and prosperity of the universe. Just as your hand or foot is a part of your body, so every grain of sand, blade of grass, wisp of wind, bar of gold and brick that is laid in a mansion is part of you. The unlimited wealth of the universe is yours for the claiming. It is already yours, always has been and always will be. It is a part of you.
Ok let's go the third point - you get more of what you focus on.

3. "It never rains but it pours", is a saying I have used myself in the past. Have you ever wondered why such a statement appears to be true? Well metaphysics and religion tell us that "as a man thinketh in his heart, so is he" or as Job cried out to God "For that which I greatly feared has come upon me". What we focus our conscious attention on increases! Don't believe me? Test it for yourself! If you can muster up the strength to do it then think in negative terms for a week. Judge everything that happens to you in negative terms and think only of a negative outcome and watch what happens in your world!!! This is a relatively easy experiment as we are conditioned to think negatively by the world. A word of warning though - once you prove that your focus determines your reality stop thinking negative thoughts as best you can.
I will not go into the 'hows' of why our focus has such a profound influence on our lives (that would be the subject of a book or perhaps a future article) just prove to yourself that it does. A clue can be found in the teachings of Jesus when he said "The Kingdom of heaven is within".
So now we have the three principles of the prosperity consciousness explained let's put it to work. The attainment of a prosperity consciousness is relatively simple - just think on the first two principles until you fully understand them and integrate them into your consciousness. As you focus on them you will discover that your feelings of lack disappear and you begin to feel a connection with everything around you. It is really just an attitude shift - nothing metaphysical or mystical about it at all. You begin to consciously realize that everything is a part of you. Your focus changes from poverty to wealth.
If it helps make a list of affirmations that correspond to the two principles outlined e.g. "God is the Source and substance of everything", "I am at one with everyone and everything around me", "I am a part of all the wealth, abundance and prosperity of the Universe" etc. Don't just rhyme them off in a parrot like manner, think on them and realize the scientific or spiritual truths behind them.

Will it work? Well I can say now that if you follow the above instructions a real change will happen in you. You will start to see the beauty of the world and the unlimited resources that are available within and around you. Will you attain wealth, abundance and prosperity? Test it for yourself! personal-development.info

5:52 PM  
Blogger Vinitha said...

Best wishes

Work from home

2:03 AM  

Post a Comment

<< Home