Linux Operating System and Programming
Objectives:
- Operating System
- Linux Basic Commands
- Linux System Programming
- Linux Device Driver Programming
- Linux Network Programming
- Real – Time Operating System (RTLinux) Programming
- ARM9/ARM11 – Linux Programming
- QT Creator-OpenCV-ARM9/ARM11
- Kernel Mechanisms
- Beagalbone black
Detailed course contents:
         Operating System
Introduction
Processes
Threads
CPU Scheduling
Process Synchronization
Deadlocks
Memory management
Virtual Memory
File management and Disk management
- Linux Basic Commands
- Linux System Programming
- Program, Process, Process IDs,
Processes Priorities, Process States, CPU Scheduling
Process Management API – fork, vfork, exec, wait and exit.
Zombie and Orphan Process
pthread Programming and Thread Attributes
Process Synchronization Techniques.
Semaphores, Mutex, Spinlock, Memory Barriers
Inter Process Communication Techniques
Pipe, FIFO, Signals, Shared Memory
Timer API – Jiffies, kernel Timers, wait queues, sleeps
Interrupt and Exception API – Task lets, Work queues
Kernel Debugging – kgdb, printk, jprobs, kprobs
- Linux Device Driver Programming
Introduction to Device Drivers
Device Number, Major and Minor Numbers
Inbuilt and Modular Drivers
User Space and Kernel Space Communication
Dev directory and device files
Character, Block and Network Driver
Advanced Driver API – fcntl,ioctl
Unified Device Model (udev)
Proc File System, sys file system
usbfs file system.
Character Device Driver Programming
Block Device Driver Programming
Serial Port Driver Programming
Parallel Port Driver Programming
USB Device Driver Programming
Network (Ethernet) Driver Programming
Flash Drive Driver Programming
- Linux Network Programming
Networking Architecture in Linux
TCP/IP defector model and layer in kernel.
Client – Server Programming API.
TCP, UDP, RAW, UNIX, FTP, TFTP
VOIP Protocol Programming.
Arithmetic Server, Concurrent Server.
Broadcast Server Programming
Wireless Architecture and Programming
- Real – Time Operating System (RTLinux) Programming
Real Time Concept, RTLinux Installation.
Scheduling and Preemption Programming.
GPOS and RTOS API Programming.
FIFO and Round Robin Scheduling Programming
Task Management, synchronization, Intertask Communication
Timers, Interrupt API in RTOs.
Signals, Events handling API in RTOs.
Priority Inversion/Inheritance.
- ARM9/ARM11 – Linux Programming
ARM Architecture and ARM Processor family.
ARM Microcontroller ICs in Market.
ARM Development Boards and features.
Friendly ARM Development Boards.
Mini2440, Mini6410, Mini210 Development Boards.
Raspberry Pi Development Board.
Beagle Bone Development Board.
Boot loader Configuration and Compilation for ARM
Kernel Configuration and Compilation for ARM.
File System Configuration and Compilation for ARM.
Porting Linux / Android OS on Development Boards.
DNW Tools, USB Push, Hyper Terminal Tool.
- QT Creator-OpenCV-ARM9/ARM11
Installing QT Framework
Installing Opencv and Pocket Sphinx.
Application Development Using QT Creator.
Sensors and modules Programming in QT Creator.
Wireless Protocol Programming in QT Creator.
Image and Video Processing Programming in Opencv.
Audio Processing Programming in Pocket Sphinx.
Interfacing Opencv with QT Creator.
Interfacing Pocket Sphinx with QT Creator.
Creating HTML and HTTP pages for ARM Board.
Setting Cross Compiler in QT for ARM.
Executing Cross Compiled project file on ARM Board.
- Kernel Mechanisms
Kernel Threads
Kernel Timers
Delaying Execution
Tasklets
Workqueues
- Beagalbone black
Intro to BBB
Applications
Â