Linux System Programming using c and c++
- Student should be familiar with C or C++ programming language
- Understanding or handling or PC and setup of environment and compiler would help
The course deals which in-depth understanding of system programming on Posix
Compliant system like Linux, Unix, Mac OS X, Windows and Free BSD.
Learn to code in c and c++ for system programming and visualize how linux or Unix works.
Become a better programmer and have upper hand compare to other students.
Setup development environment to compile and debug c and c++ code.
System programming are the basic building blocks and the underlying foundation on which any user APP is built upon hence this course deals with significant details about
Fork and its family
Pthread and its use, as well as different variants, parameter passing etc.
File operation and IO Handling unbuffered
File operation using buffered call like fopen, fwrite, fread, fseek, ftell, rewind
Reading and writing to console as well as file.
Buffered IO versus unbuffered IO
Semaphore, Mutexes and how to make a program thread safe.
How to write a producer, consumer application.
Directory and file navigation
Kill process signal
How system call works and how to implement a system call and interface with Kernel
Helps in better handling of C or C++ language
Emphasize students to write Linux, Unix, Mac OSX, Windows Course in concise and succinct way without memory leaks or resource leaks.
- System developer or programmer who wants to understand the nitty gritty of OS and underlying architecture
- Programmer who wants to know in details how the Posix API works.
- Alarm signal and signal handler
- readdir, opendir and recursively list directory part 1
- readdir, opendir and recursively list directory part 2
- readdir, opendir and recursively list directory part 3
- How to read a file line by line using getline
- Read a file part 1 using read call
- Read a file part 2 and errno handling
- Read a file part 3 and how to debug error in buffer
- File read and write
- fork system call and how to create a new process
- fork and pid status
- Fork and defunct or zombie process
- Pthread Part 1
- Pthread part 2
- How to write your own system call
- Socket Programming for server
- Socket Programming for client
Over 15 years of total experience in software development, focusing on C/C++/Linux/Symbian C++, different flavors of UNIX (SCO, HP-UX, SunOS, AIX and RedHat Linux). Knowledge of LINUX Internals/ System programming/Inter Process Communication and Shell Scripting.
Worked on Symbian OS features like TLS/descriptors/ threads/ semaphore/IPC/ Active Objects/ Dynamics Arrays/Cleanup Stack/Client –server/Binary Compatibility.
Experience in all stages of development of large project using C/C++/ Clearcase/Subversion/GIT on Linux and LynxOS platform.
Worked on Linux Device driver and System programming.
Worked on HP bootloader, Board Support Package and grub.
Knowledge of Virtual File system, ext3, I/O Scheduler.
Good knowledge of Socket, TCP/IP and routing protocol like BGP, RIP.
Good knowledge of porting and cross-compilation. Ported FreeBSD-libc to Symbian Platform.
Worked on Linux Device Driver(Parallel port Control panel, USB mass storage driver), System programming, ELF32,DWARF, binary optimization.
Worked on GNU Tools chain like Cross-Compiler, Makefile, Auto Conf.
Worked on drivers for SPI, UART, I2C, GPIO Bus as part of board bringup.
Good Knowledge of Multithreading, Semaphore, Message queue, Shared memory and other IPC mechanism.
Bring up of Board and enhanced product for power star energy consumption by implementing various sleeping mode in Devices like scanner, Fax, Hard drive etc.
Knowledge of GNU tool chain and cross compilation
Participated in Code reviews, Risk management, design document as well as implementation phase.
Good knowledge of Object oriented Analysis and design.
Good Knowledge of Xen/ Qemu and virtualization.
Worked on Malware Analysis and disassembly
Very good and through knowledge of Hypervisor like Xen, KVM.