Microsoft Azure

Microsoft Azure is one of Watson's Five Computers.

Computers have traditionally been big things standing in large rooms being watched over by tiny technicians reporting to a very large general.

This never changed.

Azure is Microsoft's name for their big computer, which consists, as big computers do today, of thousands of small computers pretending to be one big computer pretending to be thousands and thousands of small computers.

It all starts with virtualisation.

Today, everything is virtualised.

A program does not really draw on the screen.

It tells the operating system where to draw and the operating system calculates how that location relates to the program's window and draws inside it at the newly calculated final location. The program knows this. The program cannot avoid drawing like that because any attempt to draw without using the operating systems's functions would require accessing specific physical memory locations directly and that doesn't work because...

A program does not really access a specific memory address.

It sees a large amount of memory and if it attempts to access any of it, the processor will pause the program and jump to a place in memory where operating system code lies that will return a physical address based on the address the program wanted and a complicated algorithm involving segment registers, page tables and kobolds. (Not all computers use all three mechanisms.)

The processor will then jump back into the program and the program will continue working as if it had really accessed memory at the address it thought, unless...

A program cannot really access even the newly calculated memory addresses.

The memory the program sees consists of areas local to the program and areas mapped into all programs' address space. This is done so the program can call the operating system (perhaps to draw on the screen) without the processor having to reconfigure itself to access a different address space every time it happens.

By the way, and I feel almost sorry to tell you this, the terminal a program outputs text to is also not a real terminal (unless you have such a beast in your room). It's a virtual terminal emulated by the operating system to allow a program to know how to use one terminal but use lots of different possible terminals because the operating system will translate for it. It also allows for several programs running "at the same time" (meaning the processor switches between running each based on a built-in clock that stops the processor every now and then for the switch), all talking to the one terminal while indeed there are several terminals connected to the computer or, more likely, emulated by the operating system.

But the network adapters are real and so are the hard disks and the processor and it turns out they might not be...

Even an operating system does not necessarily access real hardware.

There are products called hypervisors that are either operating systems in their own right or programs running on an operating system that will hook into the same kind of mechanisms the processor uses to regulate memory access to virtualise the entire computer system. The hypervisor is a very special type of kobold, incapable of doing anything that is usually expected of computer kobolds, like running video games or playing music.

This is mainly done so a small computer can pretend to be a mainframe computer and run lots of tasks completely separate from each other (because programs running in a normal operating systems can still annoy each other in many ways since they use the same disks and the same network etc.).

It looks like this.


But since that single computer could break, some hypervisor operating systems allow for co-ordinating several computers to run virtual machines in an organised way, restarting them on working hardware if a computer breaks, moving them from one computer to another or even run them on two computers at once to be really sure that nothing can happen to the Minecraft server that took days to set up.


It is important that all the kobolds jump at the same time all the time.

Such computers pretending to be a big computer pretending to be lots of small computers can be run locally (in the kitchen or server room) or commercially.

Microsoft Azure is Microsoft's commercial computer. You can rent time on it. You can build programs for it. In fact you can just build programs for normal existing computers because Microsoft Azure will create computers that are virtual versions of normal computers running Windows Server or Linux. Here is the Web site running on mine.

You can simply create the virtual server you want.


You can select an operating system.


Or you can get a machine already configured for a specific likely application.


You can size the computer.


And then you can define where your computer should run (somewhere in the Americas, Western Europe, wherever else Microsoft saw it fit to put part of their kobold centre).

Finally, you can configure a firewall between your computer and the Internet and allow Secure Shell (for Linux) or Remote Desktop (for Windows Server) to go through, although you won't be able to teach your computer to answer pings. You can also give it a name visible to the Internet's name system.

Apart from Microsoft, Amazon and Google also offer similar services in their respective clouds.

This overlaps with Microsoft, Google and Apple offering cloud-based applications directly to the end user. (These include Web-based email, Web-based productivity software, and Web-based calendars, all synchronised with personal computer or mobile device applications.)

Incidentally, you pay for using the computer resources per minute and using a complex fee scheme. It's not expensive and it's certainly cheaper than running your own servers. But you should figure out what you can afford.

Next: IBM Bluemix, which looks pretty much the same.


To be continued...

 © Andrew Brehm 2016