Introduction to Linux OS for MS Windows Users
Click on images to play videos
Detailed Syllabus
Module 1: Getting started. Getting familiar with tools, etc.
-
CentOS
-
Installation
-
Updates
-
Optional software
-
Features and characteristics
-
Graphical desktop environments
-
KDE
-
GNOME
-
Root user
-
Foreground vs. background
-
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
-
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
Multi-processing vs. multi-threading
-
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
-
Ports
-
Interrupts
-
Hard Interrupts
-
Soft Interrupts
-
Real-Time FIFOs
-
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