Embedded Linux Programming & Device Drivers
Module-1: OS concepts
Software components, System software vs Application software, operating systems Interfaces, Real-time systems
Module-2: Linux Basic and Utilities
UNIX / Linux / Windows History, GNU Project, Booting Process of OS, Advantages and disadvantages of Linux, Features of Linux, Linux root File System, Virtual File system.
Module-3: Shell and Shell Commands
Linux Terminals & Shell, Concept of Process in Linux, Regular Expressions, Process Commands, Editors in Linux, Regular Commands in Linux
Module-4: Linux Shell Programming and Scripts
Types of shells, Bourne shell Overview, User, Shell, And Read-Only Shell, Variables, Environmental variables, Positional Parameters, Control Constructs, Switch case, if else and Loops.
Module-5: Linux Compilers, Debugger, and Utilities
Gcc compiler, Compiler switches, Creating Object code,GNU C library, GDB debugger, GDB commands, Static library, Dynamic library.
Module-6: Linux Internals Programming – File System
Linux Kernel Structure, System Calls, File Sub-System, Inodes and file permissions, File symbolic Links, File handling functions, Library functions vs. system calls
Module7: Linux Kernel Programming – Process Management
Linux Kernel Architecture, User & System Mode, Process Management, pid, fork , vfork, exec zombie process
Module-8: POSIX Thread Programming & IPC
POSIX standards, POSIX Threads, pthreads, pthread attributes, POSIX Message Queues, POSIX Semaphores,
Module-9: Linux Synchronization Programming
Need of Synchronization, Deadlock problem, Race condition, Critical section problem, Conditional variables, Mutex, Semaphores, System v API, POSIX API.
Module-10: Linux IPC (Inter Process Communication) Programming
Need of IPCs, pipe, FIFO, Shared Memory, message queue, signals & communication,signal handlers,
Module-11: Linux Network Programming OSI Reference Model
Introduction to OSI Ref Model, Physical Layer Protocol Functions , Data Link Layer Protocol Functions , Network Layer Protocol Functions , Transport Layer Protocol Functions , Session Layer Protocol Functions , Presentation Layer Protocol Functions, Application Layer Protocol Functions
Module-12: Understanding TCP / IP
Origin of TCP/IP, TCP/IP Model, IP Addressing, Subnet masking, Assigning IP, Overview of Routing process, TCP/IP Stack,
Module-13: Linux Socket Programming
Socket API, Client Server Architecture, TCP Socket, UDP Socket, RAW Socket, Unix Socket, FTP Programming, Communicating using Sockets, Concurrent Server Programming
Module-14: Briefing Linux Device Drivers
Linux Driver Module ,Role of Driver, Inbuilt and Modular Drivers,Types of Device Driver, Relationship between Kernel and Driver, Major and Minor Number, Modular Program Vs. Application Program ,
Module-15: Driver Module & Concurrency & Race conditions
Compile & run module, Registering & Un-registering driver, Creating a device file, module creation, passing arguments to module.Concurrency and its Management, Semaphores and Mutex, Completions, Spinlocks.
Module-16: Developing Character Device Drivers in Linux
Memory Allocation and Freeing with in modules, IO Port and IOMEM allocation, Registering and Freeing , Interrupt Handling , Random Access to the character device, Using Capabilities,Implementing Kernel Locking Mechanism
Module-17: Advanced Character Device Driver
IOCTL ,Implementing IOCTL Commands, Blocking I/O, poll and select, Asynchronous notification.