This document provides an introduction to microkernel-based operating systems using the Fiasco.OC microkernel as an example. It outlines the key concepts of microkernels, including using a minimal kernel to provide mechanisms like threads and address spaces while implementing operating system services like filesystems and networking in user-level servers. It describes the objects and capabilities model of the Fiasco.OC microkernel and how it implements threads and inter-process communication. It also discusses how the L4 runtime environment builds further services on top of the microkernel to provide a full operating system environment.