Ahmed S. Darwish

Welcome …

New Blog:  chasingpointers.com

Relational Theory: PDF, LaTex source

Linux Kernel: merged commits, and LKML posts

PulseAudio: merged commits, and discussion posts

CuteOS: A 64-bit SMP-safe kernel for the PC architecture

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.

On the sidelines, here's also a quick 2-minute overview of paging, with a mini historical context.


Favourite quotes ;-)

Business-friendly résumé

User pages in the very nice OSdev and Agorithmist wikis

The original Intel's 80386 processor manual: 80386_reference.tgz

Notes on core Linux kernel code: Linux Kernel Notes