This course will give students an insight into the implementation of an operating system from a programmer’s perspective using C programming construct. It will help developing abilities in students to use a variety of components of system libraries in design of system application considering concurrency, communication, portability, optimization and security concerns. The major topics covered are: writing make files, using cmake, creating your own static/dynamic libraries, debugging techniques, versioning tools, file system architecture, inode structs, I/O redirection, advisory/mandatory file locks, hard/soft links, terminal attributes, canonical/non-canonical I/O, system configuration files, Process Creation, process scheduling, zombies, orphans, exec calls, designing of shell, daemon processes, writing/ignoring/masking signal handlers, programming CPU timer, PIPEs, FIFOs, message queues, shared memory, memory mapped files, threads, synchronizations using mutexes/condition variables/semaphores, socket programming, remote procedure calls, and operating system security.
Email: arif@pucit.edu.pk
Web: http://www.arifbutt.me
Sample Codes: https://bitbucket.org/arifpucit/spvl-repo/src