Linux offers the best development enviroment. This course attempts to train linux programming. This course has 3 sections 1.Commands and shell scripting. 2. System calls 3. Linux Kernel details. commands section has essential commands learning with practice. The file commands , process commands and commands related to user are done. The permission and umask are covered. make and Makefile are explained. Next in system calls , the fie system (creat, open,read,write,lseek link stat etc..), process mgmt(fork,exit, wait , kill signal ..etc), and ipc( pipes,msg queues,shared memory and semaphores) calls are covered in great detail. Posix threads give an idea of light weight tasks. Thread mutex and real time threads are covered.
Next over to kernel. Here how system boots , how task start and end is dealt with. The activites that happen for file managemtn calls , the descripters , file tables and in core inodes are clearly explaineds identites and relatives and connectors of a task are shown. How memory is managed for a task the virtual and phys addresses are understood,The linux scheduler which recognizes both realtime and conventional tasks is explained, Interrupts handling and defering( soft irqs and tasklets) and spin ocks are expained in detail. Finally course throws light on various parts of kernel making it a good learning experience...