Clocks, Timers and Virtualization

The aim of this post is to learn the kinds of clocks and timing mechanism’s available on an x86 system, how they are virtualized by different hypervisors (with a focus on Hyper-V and WSL2) and what is the practical resolution of clocks and timers in both virtualized and bare-metal x86 systems accessible via programming languages like C or Golang. Clocks and Timers A system might have two kinds of clocks available to use in the system, a Wall-Clock Timer and a Monotonic Clock.
Read more →

Understanding x86 Virtualization

Virtualization enables a computer system to run multiple operating systems simultaneously and isolated from each other. x86 is the Instruction Set Architecture found in most PCs and Servers today, we will take a look at how x86 hardware is virtualized by applications like VMWare Workstation and QEMU. Virtualized Ubuntu 19 running via VMWare on Windows 10 Advantages of Virtualization Developers can have multiple virtual machines running various environments required for development and testing.
Read more →