Course Code: ECC-TRG-EMB-5003

CONTENTS

1 Operating Systems:

Learning of operating system concepts will help you in understanding Desktop, Embedded & Real-time Operating Systems easily in less time.

• Introduction

• Processes

• Threads

• CPU Scheduling

• Process Synchronization

• Deadlocks

• Memory management

• Virtual Memory.

• File management & Disk management

2 Linux System programming:

Linux is used in almost all system domains (Networking/Telecom) and also most of the RTOS are very similar to Linux. So learning of Linux programming will help you in understanding and work easily in system domain as well as in embedded systems.

• The GNU C Library and System Calls:

• Program Arguments and Environment

• Building Libraries

• Time Functions

• Process Management

• Memory Operations

• Debugging

• Basic File Operations

• Communicating with Pipes

• Managing Signals

• Programming with Threads

• Advanced File Operations

• Interprocess Communication

3 Linux Device Drivers:

• Introduction to Device Drivers

• Module Programming

• Kernel Configuration and Compilation

• Character Drivers

• Kernel Features

• Interrupts and Exceptions

• More on Modules

• Debugging

• Timers

• Synchronization techniques

• ioctl’s

• The proc filesystem

• Unified Device Model and sysfs

• Memory Management and Allocation

• User and Kernel Space communication

• Sleep and Wait Queues

• Interrupt Handling

• Block Drivers

• PCI

• Direct Memory Access

• Network Drivers

• USB Drivers

• MTD

• Asynchronous I/O

• I/O Scheduling

4 Network Programming:

• Introduction to Networking

• Need/Uses of Networking

• Use of Layered architecture

• OSI Protocol layers

• TCP/IP protocol layers

• Internet Protocol (IP)

• Sockets: