| Courses Hardware Training / Software Training / Embedded Systems | Locality Chhoti Barandari |
ITRONIX SOLUTION PVT. LTD. JALANDHAR
Learn Linux/Unix System Programming to become Systems Developer
Linux/Unix System Programming training transforms an IT-Professional or a Student into a Linux/Unix Systems Developer.
COURSE CODE: ITR-501
COURSE DURATION: 6 weeks
COURSE OBJECTIVES:
• Participants will be writing lots of Linux system programs to learn installing signal handlers for various signals, writing daemon processes, mapping of memory/files into process address space, etc.
• Use GDB to debug applications.
• Write a simple shell.
• Participants will be designing and developing applications using C and learn how processes talk to each other within a system using Linux IPCs – Pipes, FIFOs, shared memory, semaphores and message queues programming. Focus will be on designing and developing programs and troubleshooting synchronization issues, races and deadlocks.
COURSE CONTENTS
CHAPTER 1: INTRODUCTION TO UNIX /LINUX
• History
• Linux Layered Architecture
• Type of Kernels•
• Boot up Sequence
• Shell and Services
• Essential Developer tools
o Gnu compiler collection
o Gnu linker
o Binary dis-assembler tools
o Static and shared libraries
CHAPTER 2: FILE TREE & TYPES
• File Systems – VFS
• Super Block & Inode
• Device Special Files
• File Types
• File descriptor table
• System calls
• System Vs Function Calls
• System Call Sequence
CHAPTER 3: FILE MANAGEMENT
• Files and File Attributes
• File related System Calls
• File Control Operations
• File Locking
• select(), poll(), fcntl() calls
CHAPTER 4: PROCESS MANAGEMENT
• Process Control Block (PCB)
• States of Process
• Mode of Execution
• Context Switching
• Scheduling & Priority
• Process Creation & Exec
• fork(), exec() calls•
CHAPTER 5: MEMORY MANAGEMENT
• Physical memory & Virtual Memory
• Paging & Demand paging & Segmentation
• Memory Mapping & TLB
• Swap in & Swap out
• Internal &External Fragmentation
CHAPTER 6: THREADS CONCEPTS
• User level Vs. Kernel level Threads
• How to create and cancel threads?
• Threads Vs. Process
• User Level Threads
• Kernel Threads
• Thread APIs
CHAPTER 7: SIGNALS VS. INTERRUPTS
• Introduction to Signals
• Linux signal types & categories
• Receiving a Signal
• Handling a Signal
• Signal System Calls
• Using signals for process communication
CHAPTER 8: USER VS. DAEMON PROCESS
• Characteristics of a Daemon
• Writing a Daemon
CHAPTER 9: TIMERS & RESOURCE LIMITS
• Interval Timers
• Resolution Timers
• System calls for Timers
• Resource Limits
• Hard Limit / Soft Limit
CHAPTER 10: PRIMITIVE IPCS
• PIPES
• FIFO
CHAPTER 11: SYSTEM V IPCS
• Shared Memory
• Message Queues
• Semaphores
CHAPTER 12: NETWORKING AND TCP/IP APPLICATIONS
• Network Structure and its Classifications and Topologies
• Switching and Routing mechanism
• OSI & TCP/IP Protocol Layers
• Physical & Logical Addresses (MAC Address and IP address)
• ARP & RARP Protocol
• Routing Protocol and IP Datagrams
• Error and Control Messages (ICMP) UDP
• Transfer Control Protocol
• TCP Networking Applications
• (FTP, TFTP,TELNET,DNS,DHCP,SNTP,POP3,IMAP,SNMP)
CHAPTER 13: SOCKET PROGRAMMING
• Overview
• Types of Socket
• UDP /TCP/IP based Socket
• Iterative Server
• Concurrent Server
• Programming Interface
• Client / Server Design
• Socket Calls for TCP and UDP
• Implementation of TFTP