M9601- Mumble

The tree that looks like it is made out of pasta is a result of my lack of skill with Inkscape. Just treat it like an ordinary tree.

mumbles9601

mumbles9601

Rise of Virtual Machines

Synopsis: some thoughts on the impact of virtual machines

Virtual Machines were invented in IBM in the early seventies , but it appears that it was only VMWare started much later in 1998 that figured out how to make money purely out of virtualization. However, with Xen and Microsoft Virtual Server also entering the fray, things are getting interesting.  The green pastures of Virtual Machines, often misnamed virtualization (which is actually
a broader term) now appear poised to support a large herd of bulls.

Although it is hard to predict all the ways in which a new technology will change the world– think of telephones and sex hotlines for example — here are some thoughts on how VM’s can have an unforeseen impact, arranged roughly in order of increasing ambitiousness:

  • VM’s can break the HW/SW Red Queen Effect
  • VM’s can break vendor “lock-in”
  • Processors can become commoditized
  • Operating systems can become commoditized
  • Rise of virtual appliances
  • Rise of virtual machine swarms

VM’s can Break the HW/SW Red Queen Effect.

Software vendors and hardware vendors are in a mutually beneficial race, leading to an exponential spiral: customers are forced to buy ever more powerful computers to run ever more resource-hogging versions of software. But with a Virtual Machine this collusion can be broken. First of all, customers will balk at buying bloated software, as happened with Microsoft Vista. Secondly, marginally bloated software can be tolerated without having to replace the virtual servers with more powerful machines. For example, a VM can
be virtually upgraded to larger memory or more CPUs without making new purchases.
Thus, the existence of virtualized servers brings genuine economic pressure for software developers to be more frugal with CPU and memory consumption in their products. This works in conjunction with the next point.

VM’s can Break Vendor “lock-in”

When a software product is on a virtual machine, it is easy and non disruptive to try
out a competing product on another virtual machine, even if it
requires different type of hardware. However, this effect is not as powerful
as it can potentially be, because todays virtualization is too focused to x86
architecture.

Processors can Become Commoditized

The time is ripe for the evolution of a standard virtual processor,
just like TCP/IP is for network protocols. Consider the advantages: Considerably reduced development and testing costs (write once run anywhere); potentially longer software product life (delinked from hardware obsolescence); clean room environment for “dusty decks” (very old software can continue to run in a virtual environment). I am thinking of a more abstract kind of virtual processor that is also extensible or mutable in ways that hardware processors cannot be. It may not need to make hard choices between various hardware tradeoffs.
The Java virtual machine is an example.

Operating Systems can Become Commoditized

As the virtual processor evolves towards higher levels of
abstraction, so should virtual devices that it connects to. This should reduce the complexity of the virtual operating system; then it should not need a team consisting of thousands of progammers to maintain a virtual operating system.
For example, a virtual OS does not need bootstrapping code – it can boot of a virtual network boot service. Similarly, there is no need for every virtual Operating system to implement its own file system and to interact only with (virtual) hard disks. All it needs is a simple file system client to discover and connect to the correct virtual Network Attached Storage (NAS) devices.

Rise of Virtual Appliances

General-purpose operating systems can be replaced with lean-and-mean
tailor-made variants designed for specific applications. For example
an OS built specifically for a web server, or different one for a
database.

Rise of Virtual Machine Swarms

The trend towards multi-core, multi-thread programming can be fitted
better to a virtual machine designed to work in swarms. The Transputer of late 1980’s comes to
mind: multiprocessor meshes could be built from multiple Transputers just by physically connecting built-in serial links between pairs of Transputers. The
standard virtual processor’s simple network interconnect could support
easy interfacing within a swarm. I think PVM and grid computing concepts can be considered precursors of VM swarms.

Karmanye – An excerpt From the IT Gita

Arjuna the development engineer was frustrated.
“We are behind schedule, the architecture sucks, there are too many
high pri bugs, but they will not delay the release so that we get time
to get to the right quality.”
He pushed away the keyboard, and groaned,  “I cannot bring so much
pain and misery to so many of our faithful users.”
Krishna, his mentor, smiled and said,

“कर्मण्येवाधिकारस्ते माफलेषु कदाचन”
(you have control over the actions, not over the rewards)

As it so happened, Arjuna and his team burnt the midnight oil, made
the release on schedule, and very few users complained after all, so
that everybody was happy.

Arjuna was made manager.

In the fullness time and several sprints, the time for the next
release drew near. Arjuna the manager was sick with worry.
“We are behind schedule, the architecture sucks, there are too many
high pri bugs, the team is already putting in long hours that they
cannot stretch more. But I cannot delay the release so that we get
time to get to the right quality”, he e-mailed Krishna.

Krishna, his mentor, was now VP. He mailed back,

“फलेवाधिकारस्ते माऽपेक्षास्वकर्मत्वम” 🙂
(you have control over the rewards, not over the actions)

Arjuna drove down to the plaza and brought back pizzas for the team.
He stayed at the office through the night, although he couldn’t
directly contribute to the work going on. When dawn broke the next
Monday, the team had completed the release.

– section 47, The IT Gita

P012 The rectangle

A rectangle is cut into smaller rectangles such that the cuts are parallel to the sides. Each sub-rectangle has the property that at least one pair of parallel sides has integral length.

Prove that the property holds for the original rectangle as well.

Several different proofs are known.

Hard Disk Sulking

Today’s disks are such prima donnas, they sulk when shouted at! Check out the video, and the technical explanation, at this blog entry by Gordon Haff.

Thanks to Avinash Patil for this link!