Home Contact

Introduction to Linux OS for MS Windows Users

Dept. of Computer Science, University of Maryland, College Park, MD, USA.

GTAC 2007
Click on images to play videos
GTAC 2008

Detailed Syllabus

Module 1: Getting started. Getting familiar with tools, etc.

  • CentOS
  • Installation
    • Updates
    • Optional software
  • Features and characteristics
    • Graphical desktop environments
  • KDE
  • GNOME
    • Users and Groups
  • Root user
    • Processes
  • Foreground vs. background
    • Memory layout
  • Protected memory
  • Filesystem
    • Filesystem Hierarchy Standard (FHS)
    • Root filesystem
    • Privileges
    • Links
  • Soft links
  • Hard links
    • Mounting filesystems
    • Some important folders
  • /etc
  • /dev
  • init.d
  • Defensive programming
  • Debugging aid
  • Documentation in code
  • Eclipse IDE
    • Customizing for C
  • Strings & buffers
  • Milestone: complete project 1

Module 2: Network programming and Sockets.

  • Pipes
    • Pipes and the Linux Shell
    • Under the Hood
    • Pipes and File Descriptors
    • Example Programs
  • Sockets
    • Client-Server Paradigm
    • Writing a Client-Server Program via Sockets
  • Milestone: complete project 2

Module 3: Concurrent programming.

  • Processes
    • fork()
    Multi-processing vs. multi-threading
    • Pthreads
    • Threads
  • Milestone: complete project 3

Module 4: Locking and synchronization mechanisms.

  • Implementing your own locks
  • Mutexes
  • Condition variables
  • Barriers
  • Semaphores
  • Milestone: complete project 4

Module 5: Hardware devices, ports, and buses.

  • Hardware and User Space
  • Devices
  • Kernel and hardware
  • I/O Ports
  • Buses
  • Milestone: complete project 5

Module 6: Real-time programming.

  • RTLinux Introduction
    • What is RTLinux?
    • Hard Real-time?
    • What’s Wrong with Linux?
    • RTLinux Philosophy
    Writing Modules
    • Threads and RTLinux
    • Hello World Example
    Time and RTLinux
    • Thread Scheduling
  • Ports
    • Example Program
  • Interrupts
    • Hard Interrupts
    • Soft Interrupts
  • Real-Time FIFOs
    • Example Program
  • Shared Memory
  • Milestone: complete project 6

The gcc compiler & an Introduction to its Optimizations

  • Compilers and Interpreters
  • The Analysis-Synthesis Model of Compilation
  • The Phases of a Compiler
  • Lexical Analyzer
  • Syntax-Directed Definitions
  • Procedure Activation and Lifetime
  • GCC High Level Structure
  • GCC Compilation Passes
  • GENERIC & GIMPLE
  • RTL
  • SSA
  • GCC Optimizations
  • Debugging Optimized Code

The gdb debugger

  • Loading & Stepping through Program, Breakpoints, Watchpoints, Catchpoints, Signals, Tracepoints, Examining a trace
  • Debugging Remote Programs
  • Core Files
  • Debugging an Already-running Process
  • Debugging Multiple Inferiors and Programs
  • Debugging Programs with Multiple Threads
  • Debugging Forks
  • Setting a Bookmark to Return to Later
  • Debugging a kernel crash
  • The Crash Utility

Linux Booting Procedure

  • How Linux boots
  • System startup
  • Boot loader, GRUB, LILO
  • Loading the kernel and runlevels
  • rc#.d files
  • init.d