Diploma Practice C Online People
Certificate Contact Us
1. Advanced C and Data Structures for System Programmers

Understanding a computer and a Program
  • CPU
  • Memory
  • I/O controllers
  • Executable Image contents
  • Text/Code, Read only Data, Data, BSS
  • Loading and running a program in Physical memory
  • Loading and running a program in Virtual memory
Program with Multiple C files
  • Why multiple C files
  • Definition Vs Declaration
  • Hiding data and functions
  • Header files
Development tools in Linux

  • Compilation Stages
  • Object file format
  • Function of Linker
  • Static linking Vs Dynamic linking
  • Executable file format
  • Executable file vs Executable Image in memory
Archive or Libray utility
Make utility

Pointers and Its Applications
  • Pointers Vs Integers
  • Pointer type
  • Pointer de-reference
  • Pointers and arrays
  • Pointer arithmetic
  • Array of pointers
  • Pointers and Dynamic memory
  • Compound type
  • Packing of elements within a structure
  • Alignment and hole in the structure
  • Structure pointers
  • Accessing elements of a structure using structure pointers
  • Dynamic allocation of memory for structures
  • Self referential structures
  • Passing structure parameters to functions
  • Returning a structure or struct pointer by a function
  • Differences between union and structure
  • Uses of unions
Bit Operations
  • Binary, Decimal and Hex conversions
  • Logical versus Bit wise operations
  • Masking a bit
  • Testing a bit
  • Setting a bit
  • Testing a set of bits
  • Setting a set of bits
  • Conversion of numbers from Binary to String and vice versa
  • Definition, Declaration/prototype, Invocation
  • Function type and return value
  • Output parameters
  • Pass by value and pass by reference
  • Local variables
  • Static variables
  • Function pointers
  • Thread of execution(stack frames)
Module Concepts
  • Module concept
  • Interface functions
  • Unit testing of module
  • Test Driver
  • Test Stub

Managing data in Arrays
  • Operations on arrays
  • Arrays Vs Strings
Managing data in Linked lists
  • Single linked lists
  • Operations on linked lists
  • Double linked lists
Maintaining data with order
  • Stack(LIFO) order
  • Queue(FIFO) order
  • Stacks using Arrays and Linked lists
  • Queue using Arrays and Linked lists
  • Circular queues
Maintaining data for Search
  • Linear search
  • Binary search
  • Hash based search
Understanding and Using Messages
  • Message concepts
  • Text Vs Binary messages
  • Framing of messages
  • Parsing of messages
2.Linux System and Network Programming

Operating Systems Concepts
  • What is OS
  • Components of OS
  • OS vs Kernel
  • Kernel Services
  • Types of operating systems
  • Introduction to Linux
File and I/O Services
  • File descriptors
  • File types
  • Stdin, Stdout and Stderr File descriptors
  • Link or Relationship between File Descriptor and File or device
  • File descriptors of same file but from multiple processes
  • File I/O system calls (unbuffered i/o)
  • open, create, close, lseek, read, write, dup, dup2
  • fcntl, ioctl
  • File types, IDs and Access permissions
Standard I/0 Library Functions
  • fopen,fread,fwrite,fclose,fseek
  • Relationship between file descriptor and FILE pointer
  • Character at a time I/O
  • Line at a time I/O
  • Formatted I/O
  • Multi-threaded programming
  • Synchronization and Mutual exclusion for threads
  • POSIX Semaphores
  • POSIX Mutexes
  • Process Identifiers
  • fork, exit, wait, waitpid, execv
Initial Process Relationships
  • Terminal Logins
  • Signal Concepts
  • Signal(), kill(), raise(), alarm() and pause()
Inter Process Communication
  • Pipes
  • FIFO (Named pipes)
  • Message Queues
  • Semaphores
  • Shared Memory

Network Programming
  • Concept of socket / socket pair
  • Concept of Client and Server
  • Concept connectionless and connection oriented protocols (UDP/TCP)
  • Socket calls for UDP server and client
  • Socket calls for TCP server and client
  • Algorithms and Issues in Client software design
  • Algorithms and Issues in Server software design
  • Iterative, Connectionless Servers
  • Iterative Connection-Oriented servers
  • Concurrent, Connection-Oriented servers
  • Serving multiple clients with a single process
  • Serving multiple clients with one thread per client
Standard UDP/TCP Applications
  • TFTP
  • POP3
  • SMTP
3. Embedded and Real-Time OS Programming

Introduction to Embedded System
  • What is Embedded System?
  • Embedded Applications
  • Embedded System Hardware
  • Embedded System Software

Embedded Development Environment
  • Cross Development Tools
  • Host Target Environment
  • Downloading methods
  • Debugging tools
  • Module stacking

Understanding ARM Architecture
  • ARM Architecture
  • ARM Instructions
  • ARM Development Board Hardware

Embedded Programs
  • Driver Programs
    • Digital I/O
    • Timers
    • Serial Controller
    • Interrupt controller
    • DMA Controller
    • Network Controller
  • Application Programs

Introduction to RTOS
  • What is RTOS?
  • Why do we need RTOS?
  • RTOS Vs Linux

  • What is Task?
  • Scheduling in RTOS
  • Task System Calls

Task Synchronization and Communication
  • Inter-task Synchronization, Mutual Exclusion and Communication
  • Semaphores
  • Message Queues

Interrupt Management
  • Understaning Interrupts
  • Writing Interrupt Service Routines
  • Limitations of Interrupt Routines

Accessing I/O devices and Files
  • System calls for accessing I/O devices and Files
  • Device Drivers in RTOS
  • Serial device driver for RTOS

4. TCP/IP Stack Internals

Introduction to Networking
  • Networking concepts
  • OSI layers Vs TCP/IP layers
  • LAN and WAN for Physical and Data link layers
  • LAN or Ethernet Driver

ARP, IP and ICMP protocols
  • Address Resolution Protocol (ARP)
  • Internet Protocol (IP)
  • Internet Control Message Protocol

Transport Layer Protocols
  • User Datagram Protocol (UDP)
  • Transmission Control Protocol (TCP)

#401, Sai Sushma Homes, 23/A, S.R. Nagar Main Road, Hyderabad-500038, India.
Ph: +91-40-48508764, 7702028989, depik.help@gmail.com