Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

Program Catalogue

Deep Skilling & Problem


Solving on Embedded Linux
By Raghu Bharadwaj

www.techveda.org
www.techveda.org

About TECH VEDA PROGRAMS


Delivering specialized skill building
INCLUDED
programs since 2003, exclusively on the
Linux System
Linux kernel Programming
Problem Solving
Mastery

Advanced IPC for


High-Performance
Linux and IoT
Systems

Linux Kernel
Infrastructure &
Programming

HIGHLIGHTS Linux Device


Driver
Architecture
Programs delivered by Lead Linux
Mentor, Consultant, Skill Building
Embedded
Expert & Pubic Speaker, Raghu
Linux with Yocto
Bharadwaj Project

Delivering upskilling programs Building Real-


Trained: Time Embedded
Over 40 corporate clients Systems with
04
Zephyr project
Over 10k professionals and
students from over 7 nations
PROGRAM 1

LINUX SYSTEM
PROGRAMMING
PROBLEM SOLVING
MASTERY

www.techveda.org
PROGRAM 1

Linux System
Programming Problem
Solving Mastery

Take your Linux system


programming skills to the
next level with Raghu
Bharadwaj's problem-
solving approaches.

A break-through
fundamental re-learning
program

-Raghu Bharadwaj

Program Contents
Gnu compiler distribution Process management
Understanding compile & Introduction to program loading
build process Process, defined
Tool chain Understanding process address
Object file analysis space
Executable Images Kernel process descriptor
Introduction to Linux Process
Libraries scheduler
Introduction to libraries
Creating Static & Shared
Libraries
Using Libraries
Managing dynamic libraries
www.techveda.org
PROGRAM 1

Program Contents

Stack Analysis Linux I/O architecture


Introduction to stack Introduction to components
How stack grows and shrinks of I/O architecture
How function parameters are Objectives of Linux I/O model
passed Virtual file system
How stack frames are created File system services
and destroyed I/O cache
Understanding file descriptors
Application programming & inode structures
Interfaces (API)
Understanding need of API File I/O operations
API vs system calls Introduction to common file
User mode/ kernel mode APIs
transitions Accessing file attributes
APIs and application Standard I/O operations
portability File control operations

Managing process address space Signal management


Introduction to virtual address Introduction to Signals
space Linux signal types & categories
Stack allocations Signal generation and delivery
Heap/Data segment Linux signal management
management data-structures
Memory maps Switching signal dispositions
Dynamic memory allocation & Writing async signal handlers
de-allocation Using signals for process
Memory locking communication
Blocking & Unblocking signal
delivery

www.techveda.org
PROGRAM 1

Program Contents

Concurrent application designs Posix Threads


Introduction to concurrent
applications
Understanding need for
concurrent apps
Standard Concurrency models

Process creation calls


Process creation calls (fork,
vfork, execve)
Monitoring child process
Linux kernel process creation
routines
Copy-on-write resources
Handling child process
termination events
Linux threads interface (clone)

www.techveda.org
PROGRAM 2

ADV. IPC FOR HIGH-


PERFORMANCE LINUX
& IOT SYSTEMS

www.techveda.org
PROGRAM 2

Adv. IPC for High-


Performance Linux & IoT
Systems

Gain good understanding


of the key process
communication
mechanisms used in Linux
applications and
messaging mechanisms
used in IoT applications

-Raghu Bharadwaj

Program Contents
Introduction Message Queues
Overview of process Introduction to message queues
communication mechanisms Creating and using message
Importance of process queues
communication in Linux IPC message structure
applications
Basic concepts of IPC Shared Memory
Introduction to shared memory
Pipes Creating and using shared
Introduction to pipes memory segments
Creating and using pipes Synchronization and protection
Named pipes (FIFOs) of shared memory

www.techveda.org
PROGRAM 2

Program Contents
Semaphores ZeroMQ
Introduction to semaphores Introduction to ZeroMQ
Creating and using Creating and using ZeroMQ
semaphores sockets
Binary and counting Different messaging patterns
semaphores in ZeroMQ: request-reply,
publish-subscribe, etc.
Sockets
Introduction to sockets DBus
Creating and using sockets Introduction & Overview of
Different socket types: stream DBus
and datagram Creating and using DBus
services and clients
Remote Procedure Calls (RPC) Signal handling with DBus
Introduction to RPC Security considerations with
Creating and using RPC DBus
Implementation of RPC using
sockets IoT Messaging Mechanisms
Introduction to messaging
Distributed Message Passing mechanisms in IoT
(MPI) applications
Introduction to MPI MQTT protocol and its
Creating and using MPI implementation in Linux
Communication modes in MPI: CoAP protocol and its
point-to-point and collective implementation in Linux
communication AMQP protocol and its
implementation in Linux

Conclusion
Review of key concepts
Best practices for process
communication in Linux
applications
www.techveda.org
PROGRAM 3

LINUX KERNEL
INFRASTRUCTURE &
PROGRAMMING

www.techveda.org
PROGRAM 3

Linux Kernel
Infrastructure &
Programming

"The need to spend time


to comprehend the various
key subsystems of the
Kernel is extremely crucial
for anyone who aspires to
become an effective
Kernel, driver and
embedded developer"

-Raghu Bharadwaj

Program Contents
Linux kernel programming Modules programming basics
Essentials of Linux kernel Building kernel module binary
architecture Tools for module management
Understanding need for kernel Tracking module dependency
programming Module parameters
Modifying kernel sources Kernel symbol table
Kernel configuration and Exporting Module symbols
compilation
Introduction to kernel
modules

www.techveda.org
PROGRAM 3

Program Contents

Scheduling in Linux Memory sub-system


Exploring various scheduling Linux kernel memory
aspects & policies in Linux subsystem
Decipher how efficiently Linux Memory representation data
manages scheduling under structures
many-core systems Memory Allocators
Allocating Boot memory
Concurrency and Race Page Tables and Address
Conditions Translation
UP vs. SMP Issues
Combating Race Conditions Time measurement & Delays
Atomic Operations Need for time measurement
Semaphores Kernel tick
Spin Locks Need for delays
Introducing delays

www.techveda.org
PROGRAM 4

LINUX DEVICE DRIVER


ARCHITECTURE

www.techveda.org
PROGRAM 4

Linux Device Driver


Architecture

Acquiring a conclusive
understanding of the Linux
driver architecture and its
interfaces, along with key
concepts like interrupt
handling, memory
management, and kernel
synchronization

-Raghu Bharadwaj

Program Contents
Linux Driver Architecture Char Driver Model
Device Drivers defined Synchronous drivers defined
Linux Driver model Driver registration and de-
Types of Linux drivers registration
Driver stacks Driver file interface
Device file operations
Driver data structures
Device Configuration ops
Wait Queues & polling
Memory mapping

www.techveda.org
PROGRAM 4

Program Contents

DMA Input Drivers


Understanding and hands-on
Hardware access with input drivers
Device Addresses
Port mapped I/O USB Drivers
Interacting with port mapped USB driver classes
devices Comprehensive hands-on with
Memory Mapped I/O USB drivers
Reserving address space
MMIO PCI Drivers
MMIO Access Comprehensive hands-on with
Device Access side effects PCI drivers
Device access from u-space
Block Driver Model
Interrupt handling Understanding the block
Understanding Interrupts driver model
Linux Interrupt handlers
Implementing Driver ISR Network Driver Model
Need for deferred routines Understanding the network
Linux Deferred Routines driver model
Interrupt event management

Drivers
I2C
SPI
GPIO

www.techveda.org
PROGRAM 5

EMBEDDED LINUX
WITH YOCTO PROJECT

www.techveda.org
PROGRAM 5

Embedded Linux
with Yocto Project

A fully hands-on program


at creating custom Linux-
based operating systems
for embedded devices
using the Yocto build
system

-Raghu Bharadwaj

Program Contents
Embedded Linux System Build Systems
Introduction to embd. Linux Build practices
Key components Need for a build system
Bootrom How build systems are
Bootloader structured
Application binaries & rootfs Popular build systems
Init package
Build steps

www.techveda.org
PROGRAM 5

Program Contents
Buildroot Layers and Recipes
Introduction to Buildroot Introduction to layers
project Types of layers
Structure of Buildroot and Key configuration files
build trees Introduction to recipes
Toolchain configuration ypes of recipe files
Kernel configuration Writing a recipe
Rootfs configuration Operators
Sources
Deployment and Test Writing tasks
Boot from SD card Extending recipes
TFTP and NFS Masking recipes
Initramfs
Deploying applications BSP Layers
Creating BSP layer
Yocto Configuration
Bootloader recipes
Kernel recipes
Introduction to Yocto project
Linux Yocto kernels
Yocto project
Managing kernel patches
Openembedded core
Kernel configuration
Poky
Kernel classes
Bitbake
Setting up the host system
Images
Installing Poky
Organization of image recipe
Image FS types
Classes
Creating an image
Introduction to classes
Common classes
SDK
Base class
Yocto project SDK
Keywords
Types of SDKs
SDK format
SDK installation
www.techveda.org
PROGRAM 6

BUILDING REAL-TIME
EMBEDDED SYSTEMS
WITH ZEPHYR
PROJECT

www.techveda.org
PROGRAM 6

Building Real-Time
Embedded Systems with
Zephyr project

Learn how to build real-


time embedded systems
using the Zephyr Project,
including configuring the
OS, selecting hardware
platforms, and developing
applications using the
Zephyr SDK.

-Raghu Bharadwaj

Program Contents
Introduction to the Zephyr Zephyr Project Architecture and
Project Configuration
Overview of the Zephyr
Project Architecture of Zephyr Project
History and evolution of the Understanding the Zephyr
project kernel and libraries
Key features and benefits of Configuring the Zephyr Project
using the Zephyr Project for specific hardware platforms
Comparison with other RTOS Hands-on exercises: Setting up
platforms and configuring the Zephyr
Project development
environment

www.techveda.org
PROGRAM 6

Program Contents

Developing Applications with Project Design and


the Zephyr SDK Implementation

Overview of the Zephyr SDK Designing and implementing


and its components an embedded system using
Building applications with the the Zephyr Project
Zephyr SDK Best practices for Zephyr
Debugging applications using Project development
the Zephyr SDK Testing and debugging
Hands-on exercises: Building techniques for embedded
and debugging simple systems
applications using the Zephyr
SDK

Advanced Topics in Zephyr


Project Development

Advanced configuration
options and features of the
Zephyr Project
Developing real-time
applications with the Zephyr
Project
Security considerations when
using the Zephyr Project
Hands-on exercises:
Developing real-time
applications and exploring
advanced features of the
Zephyr Project

www.techveda.org
MUST READ

Frequently Asked Questions (FAQs)

Q. I'm looking to learn Linux Device Drivers/Embedded Linux. Should I


enroll for the 3rd module directly (Embedded Linux Drivers & Yocto)?

A. We have found that over 90% of participants who wish to learn


Drivers/Embd. Linux do not have proper understanding of Linux system &
kernel infrastructure, which are essential to comprehend Drivers. So we
recommend all 3 modules, unless you are really good at Linux kernel and
all fundamental programming concepts on Linux

Q. I'm good with Linux system programming can I directly join from
Kernel programming?

A. Most participants mistake knowledge of IPC, semaphore, mutex etc. as


system programming. In reality 90% of these participants carry just a
superficial understanding of these concepts, and they also lack proper
understanding of Stack, Virtual addressing, Intricacies of Synchronization
etc. which are at length discussed in system programming.

Over 90% of participants who directly enroll from 2nd program, come
back and enroll for system programming - Based on enrollment records
from the last 20 years

Q. Does these programs ensure career transition?

A. In fact these programs are designed specifically to achieve real, deep


skills and career transition. We also support participants with placement
support at top tech companies

Q. On which platform the training will be delivered?

A. Training will be delivered on Ubuntu x86 and ARM based platforms.


Recommended target hardware for the program is Beagle Bone Black

www.techveda.org
Upgrade Your Skills
& Career Now

HOW TO REGISTER
1) Visit www.techveda.org and click on register now
option on any of the programs, and we will contact
you back

2) Just call or Whatsapp at +91-9885808202

www.techveda.org | Hyderabad

You might also like