On the love of Operating Systems

Only using original primary sources as a reference, here is a set of notes I've written on general-purpose OS scheduling and Symmetric Multiprocessing. The motivation was to know the why of things by tracking the evolution path of relevant ideas beginning from MIT's time-sharing efforts of the 60s. Another motivation was aiding me in building an SMP scheduling framework for a small project of mine.

As a summary, above notes discuss the origin of multi-level feedback queues (beginning form the 1962's CTSS system, and moving to the Unix jungle of SVR2/3, Solaris, and the BSDs), spinlocks (from VAX/VMS), general-purpose kernel preemption, per-CPU runqueues and data areas (VAX/VMS, DEC OSF/1, and WinNT), and thread scheduling soft and hard affinity (by the innovative DEC engineers again). All the papers discussed by these notes are cached here for convenience. If you're into such stuff, the Digital Technical Journal can be quite addictive.

Another set of notes I've written, following the same historical spirit, also exists for general-purpose File Systems. They start from the pure-theoretical models of early MIT file systems, up to Unix SVR2 file system design, up to BSDs Fast Filesystem, Linux Ext2/3, and the Windows FAT and NTFS.

Low-level debugging sessions