You are on page 1of 12

Embedded Linux Upskilling

with Raghu Bharadwaj


Unmatched Training Experience

INCLUDES

Mastering Linux System Programming

Mastering Linux Kernel Programming

Embedded Linux Drivers & Yocto

www.techveda.org
www.techveda.org

About TECH VEDA


Delivering specialized skill building
programs since 2003, exclusively on the PROGRAM
Linux kernel SEQUENCE
Prerequisite Skills:
C programming &
Linux basics

Linux System
Programming

Linux Kernel
Programming
HIGHLIGHTS
Programs delivered by Lead Linux
Mentor, Consultant, Skill Building
Expert & Pubic Speaker, Raghu Linux Device Drivers

Bharadwaj Embedded Linux


& Yocto
Delivering upskilling programs
Trained:
04
Over 40 corporate clients
Over 20k professionals and
students from over 7 nations
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
PROGRAM 1

Mastering Linux
System Programming
“Linux system programming is
the bedrock for programmers
on Linux. More than the
concepts, the kind of
perspective and insights
participants gain here will
leverage the much needed
appreciation and intelligence
to pursue advanced concepts
like Kernel, Device Drivers and
Embedded Linux"

-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 IPC
Understanding need for Message Queue
concurrent apps Semaphore
Standard Concurrency models Shared memory

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

Mastering Linux
Kernel 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 2

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 3

Embedded Linux
Drivers & Yocto

Comprehend Device Driver


Architecture
Decipher any driver code
seamlessly
Covering over 7 various
types of drivers
Practical Embedded Linux
Working with Yocto buid

-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 3

Program Contents

DMA USB Drivers


USB driver classes
Hardware access Comprehensive hands-on with
Device Addresses USB drivers
Port mapped I/O
Interacting with port mapped PCI Drivers
devices Comprehensive hands-on with
Memory Mapped I/O PCI drivers
Reserving address space
MMIO Block Driver Model
MMIO Access Understanding the block
Device Access side effects driver model
Device access from u-space
Network Driver Model
Interrupt handling Understanding the network
Understanding Interrupts driver model
Linux Interrupt handlers
Implementing Driver ISR Embedded Linux System
Need for deferred routines Introduction to embd. Linux
Linux Deferred Routines Key components
Interrupt event management Bootrom
Bootloader
Drivers Application binaries & rootfs
I2C Init package
SPI Build steps
GPIO
Build Systems
Input Drivers Build practices
Understanding and hands-on Need for a build system
with input drivers How build systems are
structured
Popular build systems
www.techveda.org
PROGRAM 3

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
Introduction to Yocto project Kernel recipes
Yocto project Linux Yocto kernels
Openembedded core Managing kernel patches
Poky Kernel configuration
Bitbake Kernel classes
Setting up the host system
Installing Poky Images
Organization of image recipe
Classes Image FS types
Introduction to classes Creating an image
Common classes
Base class SDK
Keywords Yocto project SDK
Types of SDKs
SDK format
SDK installation
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