Introduction:
Linux System Programming is an art of writing programs on a Linux system such that the programs interact with the OS kernel (Linux) and used its features for facilitating applications, networks or devices. System programming could also be used to configure, maintain and upgrade the existing software, machine or tools for the same. When System programming is done to create or configure networks/protocols, it is called network programming.
Salient Features:
Training Objective:
Linux System Programming, "A Project based Training Program" is designed to ensure that students of Engineering College or working professionals should have the skills needed to deal with the challenges involved in real-world projects involving Linux based system and network programming to meet the needs of industries both today and in the future.
Pre-Requisite:
- Education: B E, B Tech. MCA persuing or passout
- Proficency in C programming, able to use Linux OS, Shell Scripting using Bash
- A prior knowledge of a basic system commands, general understanding about operating system concepts will be helpful.
Agenda:
The Duration of training would be 15 working days. There would be:
- 15 Classroom Sessions of 2 hours each
- 20 Lab Sessions of 4 hours each
- 110 hours of Training
Training Topice in Brief:
Sl |
Topics |
1 |
Linux System Architecture
- Introduction to Unix/Linux Philosophy
- Linux System Architecture
- Execution Context Within The Kernel
|
2 |
Memory Management
- Virtual memory
- Process Memory Layout
|
3 |
Resources and Allocation
- Resources Allocation and Limits
- Granularity of Resource Limits
- Hard and Soft Links
|
4 |
Dynamic Memory Allocation and Linux Memory Issues
- The glibs malloc api family
- Advanced Memory Management Concepts
- Linux Memory Issues
- Debugging Tools for Memory
- Tool Types and usage
|
5 |
Process Management
- Process Credentials: The Traditional Unix Process Model
- Process Capabilities: Modern POSIX Capability Model
- Process Execution: Converting program into Process, Process Replacement, exec family of apis
- Process Creation: Process Duplication
|
6 |
Signalling
- The Signal Mechanism
- Standard Signals
- Signal Handling
|
7 |
Timers
- Interval Timers
- New Interval Timer Mechanism
- Application Workflow
|
8 |
Multithreading
- Multithreading Concepts
- Thread management
- Thread Attributes
- Thread Joining
- Parameter Passing among Threads
- Thread Stacks
- Thread Locking Concepts
- Thread Synchronization
- Thread Safety
- Thread cancellation and Setup
- Thread and Signalling
|
9 |
CPU Scheduling
- The Linux OS and The POSIX Scheduling Model
- Exploiting Linux Soft Realtime Capabilities
- Linux as An RTOS
|
10 |
Advanced File IO
- The Kernel Page Cache
- Scatter-Gather IO
- File IO via Memory Mapping
- DIO and AIO
|
Deliverables:
After the training is over, the Trainee should be able to:-
- Understand the concepts absorbed during the training and should be able to implement the concepts into the real world projects.
- EmbLogic would issue/provide the following:-
- Work Report for Submitting into their college (if required).
- A presentation and demonstration assistance(if required).
- Completed tasks (by the trainee).
- Certificate of Completion for the training and Project as mentioned above
Training and Project Resources: click here ...