Layman's Guide to Computing

Articles in the Season 12 category

Issue 144: Programs-in-a-vat

n 1999, VMware launched VMware Workstation, which allowed multiple operating systems to run off a single machine.

Published:

By J S Ng

Issue 145: What an app wants, what an app needs

Programs do not usually deal with the gnarly details of hardware, but instead access it through an interface. They access storage devices through a filesystem, and access hardware through drivers.

Published:

By J S Ng

Issue 146: Virtual hardware

Virtual hardware can be created in the form of drivers that respond to a program’s requests for hardware resources. If a bootup program enumerates hardware devices and receives a response, then as long as it continues to receive valid and correct responses, it can work with the virtual hardware to run an operating system.

Published:

By J S Ng

Issue 147: Operating systems on virtual hardware

Running a virtual machine is like running a physical machine, but within a window in your OS.

Published:

By J S Ng

Issue 148: History of commercial computing - cohosting

Renting out virtual hardware instead of physical hardware meant that instead of having to move hardware around and manage it, you could send the data for running an OS to the hosting company and have them be responsible for hardware operations.

Published:

By J S Ng

Issue 149: History of commercial computing - containerisation

Containers are one layer of virtualisation above virtual machines: containerisation systems virtualise access to the operating system, presenting a virtual interface that provides software with the resources it needs, without being aware of software running in other containers on the same system.

Published:

By J S Ng

Issue 150: System VMs vs Process VMs

System VMs provide a set of virtualised hardware that the OS interacts with. Process VMs provide a set of libraries that a program (written in that programming language) interacts with.

Published:

By J S Ng

Issue 151: the Java VM

The Java Runtime Environment (JRE) bundles the Java VM and supporting libraries. The JRE has to be installed on the user’s system for Java programs to work, unless the program bundles the supporting libraries. Solo programmers can start programming with OpenJDK for free with fewer features and less support, while commercial companies can license Oracle JDK for better support and features.

Published:

By J S Ng

Issue 152: Getting started with programming

Actually making a web application requires you to set up lots of supporting software and carry out lots of steps to create a suitable app environment.

Published:

By J S Ng

Issue 153: Using the cloud

The cloud offers standard digital business services, accessible through a web interface and API, which any developer (with a credit card) can use. Developers don’t have to reinvent the wheel, so long as they know how to use web APIs.

Published:

By J S Ng

Issue 154: Emulation

Programs that were not compiled for the instruction set of the host OS have to go through an emulation layer program. This program translates the instructions of that program into compatible instructions that its own processor can execute.

Published:

By J S Ng

Issue 155: Emulation performance

Translating a set of instructions before executing it will always lead to a slowdown, although sometimes this may not be noticeable to users.

Published:

By J S Ng

Issue 156: Translation

To speed up execution and avoid translation overhead, some systems employ ahead-of-time translation, storing the translated instructions to be executed in future. But many systems employ a mix of just-in-time (JIT) and ahead-of-time (AOT) techniques.