SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Linux Driver and
Embedded Developer

Course Highlights


The flagship training program from Veda Solutions, successfully being conducted from
the past 10 years



A comprehensive expert level course covering all aspects of system programming like
Linux Programming, Kernel Programming, Embedded Linux , Network Programming,
Linux Device Drivers



Most attended and recommended by working professionals (from over 100 companies
and 8 nations)



From corporate trainers to over 20 major technology and embedded companies



Available in regular, full-time, weekend workshops, audio-video and online training
modes

301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad
Ph:040-66100265 Email: info@techveda.org
www.techveda.org
1
Who should attend?





Working professionals expecting projects/work assignments on Embedded Linux, Linux
kernel programming, Device Drivers or other core system development requirements
Working professionals looking to upgrade their system development skills on Linux
Programmers from Windows OS platform interested to add/migrate to Linux and
Embedded Systems
Microcontroller based embedded developers who are willing to upgrade their skills and
enhance their career positions

Course pre-requisites



Proficiency in C programming
Knowledge of basic Linux commands

What you will learn?






Linux programming essentials, for understanding the key Linux; issues, concepts and
finer nuances of programming to get a proper grounding before getting deeper into
core system development
Linux Kernel Programming and Internals for getting a complete grip on core OS concepts
and module programming
Linux Device Drivers and Embedded Drivers enabling you to start writing Driver
programs for embedded and GPOS targets
Practical Embedded Linux enablement skills for any target hardware like ARM and so on.

Course Duration



Regular mode – 3 months (1.5 hrs. per day, five days a week)
Also available in Full time, Weekend Workshops, Audio-Video and Online mode (refer
website/counselor for details)

Why Veda Solutions?







Most recommended training organization by working professionals
10 years of training experience in Embedded Linux and Linux system programming
Delivered corporate training to over 20 technology majors including Sasken, NCR, UTCFS, Xilinx and so on
First institute in Asia to start online courses on Linux Kernel, Device Drivers and
Embedded Linux
Participants from over 8 nations and 100 companies
2
Course Contents
This course is divided into three logical modules to enable easy and effective understanding of
the entire course

Linux Programming Essentials
Gnu compiler distribution
Process management
 Understanding compile & build process
 Introduction to program loading
 Tool chain
 Process, defined
 Object file analysis
 Understanding process address space.
 Executable Images
 Kernel process descriptor.
 Binary Portability
 Accessing kernel process descriptor
information
Exploring object files
 Introduction to Linux Process scheduler
 Need for understanding object files
 Scheduling policies & priorities
 Introduction to the Binary File Formats
 Process scheduling for multi/many
(ELF, COFF, XCOFF).
core systems
 Understanding ELF file format
 Process affinity
 Inspecting object files
 Linux process privileges
 Extracting sections from object files
 Introduction to process resource limits
 Converting executable to other
 Use cases & standard practices
formats (srec, ihex, binary)
 Use cases
Stack Analysis
 Introduction to stack
Exploring Linkers and Build process
 Understanding how stack grows and
 Build process defined
shrinks
 Role of Build scripts in build process
 Understanding how function
 Build script syntax
parameters are passed.
 Need to modify Build scripts
 Understanding how stack frames are
 Use cases & standard practices
created and destroyed.
Libraries
 Introduction to libraries
 Creating Static Libraries
 Creating Shared Libraries
 Using Libraries
 Managing dynamic libraries
 Use cases & standard practices

Application prg. Interfaces (API)
 Understanding need of Api
 API vs system calls
 User mode/ kernel mode transitions
 Unix common API standards (Posix,
BsD , SYS V)
 APIs and application portability
 API design practices
 Use cases and standard practices

3
Managing process address space
 Introduction to virtual address space
 Stack allocations
 Heap/Data segment management
 Memory maps
 Dynamic memory allocation & deallocation routines
 Choosing right memory allocation
mechanism
 Manipulating memory blocks
 Swapping Memory Areas
 Memory locking
 Use cases & standard practices
Linux I/O architecture
 Introduction to components of I/O
architecture
 Objectives of Linux I/O model
 Virtual file system
 File system services
 I/O cache
 Understanding file descriptors & inode
structures
File I/O operations
 Introduction to common file APIs
 Accessing file attributes
 Standard I/O operations
 File control operations(fcntl())
 Alternate File I/O models
 Huge file I/O
 Monitoring File and directory events
 Use cases
I/O operations of special files
 Handling Device Files
 Handling Pipe files
 /proc file system
 /sys file system

I/O multiplexing
 Need for Multiplexed I/O
 Standard methods
 Linux support for I/O multiplexing
 Use cases & standard practices
Signal management
 Introduction to Signals
 Linux signal types & categories
 Signal generation and delivery
 Linux signal management datastructures
 Switching signal dispositions
 Writing async signal handlers
 Using signals for process
communication
 Blocking & Unblocking signal delivery
 Use cases & standard Practices
Concurrent application designs
 Introduction to concurrent applications
 Understanding need for concurrent
apps
 Standard Concurrency models
 Comparative analysis of concurrency
models
 Use cases & standard Practices
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)
 Use cases & standard Practices

4
Posix Threads
 Introduction to posix thread interface
 Thread creation and management
 Thread attributes
 Detecting Race conditions
 Atomic operations
 Mutual exclusions methods (mutex,
semaphores, spinlocks)
 Detecting and handling deadlock
events
 Choosing right Mutual exclusion
method
 Designing scalable critical sections
 Exploring Thread synchronization
methods (signals, condition
variables...)
 Choosing correct Thread
synchronization method
 Thread local data
 Thread cancellations & exit handlers
 Linux Native posix threading support
(NPTL)
Time keeping & Timers
 Calendar Time
 Time conversion routines
 Software time keeping
 Process time
 BSD Interval Timers for running
periodic tasks
 Accuracy of timers
 Posix clocks
 Posix interval timers
 Linux interval timer interface
 Use cases & standard practices

Inter-process communication
 Introduction to IPC subsystem
 Linux kernel IPC resources
 IPC communication resources (pipes,
msgqs., shared memory)
 IPC synchronization resources
(semaphores)
 Comparative analysis of SYSV and
POSIX IPC Implementations
 IPC kernel data structures
 Use cases & standard Practices
Network programming
 Introduction to networking
 Categories of Network Applications
 Network communication application
designs
 Understanding Protocol stacks
 Understanding TCP/IP networks
 Exploring Linux kernel network
subsystem
Linux socket abstraction layer
 Introduction to socket layer
 Overview of socket APIs
 Programming TCP/IP apps using socket
APIs
 Programming UDP/IP apps using socket
APIs
 Exploring socket data structures
 Understanding socket attributes
 Introduction to Raw sockets
 Programming apps using Raw sockets
 Alternate models for implementing
network apps
 (Without using Socket APIs)
 Use cases & standard Practices

5
Process communication with UNIX domain
sockets
 Stream sockets in Unix domain
 Datagram sockets in Unix domain
 Abstract socket namespace

Build automation tools
 Introduction to build automation
 Make tool & Makefiles
 Make syntax
 Make default rules
 Use cases

Linux Kernel Internals and Device Drivers
Linux kernel programming
 Essentials of Linux kernel architecture
 Understanding need for kernel
programming
 Kernel programming models
 Modifying kernel sources
 Kernel configuration and compilation
 Introduction to kernel modules
 Kernel modules vs. Applications
 Exploring kernel module architecture
Modules programming basics
 Building blocks of a kernel module
 Building kernel module binary
 Tools for module management
 Tracking module dependency
 Module parameters
 Kernel symbol table
 Exporting Module symbols
Kernel message logging infrastructure
 Need for kernel message logging
 Kernel message ring buffer
 Kernel message Log priorities
 Message Ring buffer management
 Accessing messages from user mode
apps
 Linux message logging daemons

Linux driver architecture
 Device Drivers defined
 Linux Driver model
 Types of Linux drivers
 Driver stacks
Synchronous driver model
 Synchronous drivers defined
 Driver registration and de-registration
 Driver file interface
 Device file operations
 Driver data structures
 Device Configuration ops
 Wait Queues & polling
 Memory mapping
 Use cases
Concurrency and Race Conditions
 UP vs. SMP Issues
 Combating Race Conditions
 Atomic Operations
 Semaphores
 Spin Locks

6
Memory allocations
 Linux kernel memory subsystem
 Memory representation data
structures
 Memory Allocators
 Allocating Boot memory
 Page Tables and Address Translation
DMA mappings
 Need for DMA
 Linux DMA mappings
 Use cases
Hardware access
 Device Addresses
 Port mapped I/O
 Interacting with port mapped devices
 Memory Mapped I/O
 Reserving address space MMIO
 MMIO Access
 Device Access side effects
 Device access from u-space

Linux net device subsystem
 Network driver model
 Types of network drivers
 Driver hands-on
Block driver subsystem
 Block device model
 ramdisk driver hands-on
PCI device drivers
 PCI basics
 Linux PCI bus stack
 PCI device access
USB






USB basics
Linux USB bus stack
USB driver classes
Interacting with USB devices from
drivers
Driver hands-on

Interrupt handling
 Understanding Interrupts
 Linux Interrupt handlers
 Implementing Driver ISR
 Need for deferred routines
 Linux Deferred Routines
 Interrupt event management
Time measurement & Delays
 Need for time measurement
 Kernel tick
 Need for delays
 Introducing delays
 Use cases

7
Embedded Linux
Introduction to embedded Linux
 Benefits of using Linux and open
source tools for embedded systems
 SOC overview
 Embedded Linux system architecture
 Software components for embedded
development

Kernel






Cross-compiler tool-chains
 Need for cross tool-chain
 Different tool-chains’ build procedures
 Using pre-build cross tool-chain
 Building our own cross tool-chain

Embedded Drivers
 Linux Driver stack for embedded
devices
Platform devices Stack
I2C stack
SPI stack
MTD stack

Machine emulator and virtualizer
 Why emulator
 Installing emulator
 Using emulator for ARM
Linux booting process
 Linux booting sequence
 Components of Linux booting
 Tweaks and changes
 Use cases
U-boot
 Introduction to u-boot
 Overview of U-boot source
 Building U-boot for target
 Booting target with U-boot
 Understanding U-boot environment
 Transferring images to target using Uboot



Supported hardware architectures
Using predefined config files
Cross-compiling the kernel for target
Understanding kernel boot arguments
Understanding NAND/NOR flash
File system for flash

File system
 Understanding Unix File system
hierarchy
 Creating file system
 Porting application
 Mounting file system as initrd
 Integrating file system and kernel
image
 Cross-compiling applications and
libraries
 Creating jffs2 file system
Flashing Images
 Flashing kernel image
 Flashing file system

301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad
Ph:040-66100265 Email: info@techveda.org
www.techveda.org
8

Contenu connexe

Similaire à Linux Driver and Embedded Developer Course Highlights

Visual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & VirtualisationVisual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & Virtualisationwangyuanyi
 
Red Hat Certified engineer course
  Red Hat Certified engineer course   Red Hat Certified engineer course
Red Hat Certified engineer course Ali Abdo
 
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System zShawn Wells
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernelguest547d74
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net FundamentalsAli Taki
 
Presenter manual embedded systems (specially for summer interns)
Presenter manual   embedded systems (specially for summer interns)Presenter manual   embedded systems (specially for summer interns)
Presenter manual embedded systems (specially for summer interns)XPERT INFOTECH
 
Lichtenberg bosc2010 wordseeker
Lichtenberg bosc2010 wordseekerLichtenberg bosc2010 wordseeker
Lichtenberg bosc2010 wordseekerBOSC 2010
 
Lecture 3,4 operating systems
Lecture 3,4   operating systemsLecture 3,4   operating systems
Lecture 3,4 operating systemsPradeep Kumar TS
 
Lecture 3,4 operating systems
Lecture 3,4   operating systemsLecture 3,4   operating systems
Lecture 3,4 operating systemsPradeep Kumar TS
 
linux training in Chandigarh
linux training in Chandigarhlinux training in Chandigarh
linux training in Chandigarhashish34a
 
How devops exhausts itself, and what will happen next
How devops exhausts itself, and what will happen nextHow devops exhausts itself, and what will happen next
How devops exhausts itself, and what will happen nextKirill Vechera
 

Similaire à Linux Driver and Embedded Developer Course Highlights (20)

Visual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & VirtualisationVisual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & Virtualisation
 
Red Hat Certified engineer course
  Red Hat Certified engineer course   Red Hat Certified engineer course
Red Hat Certified engineer course
 
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
 
Powering up on PowerShell - BSides Greenville 2019
Powering up on PowerShell  - BSides Greenville 2019Powering up on PowerShell  - BSides Greenville 2019
Powering up on PowerShell - BSides Greenville 2019
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
NewGenLib 3.0 Presentation
NewGenLib 3.0 PresentationNewGenLib 3.0 Presentation
NewGenLib 3.0 Presentation
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
Windows 2000
Windows 2000Windows 2000
Windows 2000
 
Presenter manual embedded systems (specially for summer interns)
Presenter manual   embedded systems (specially for summer interns)Presenter manual   embedded systems (specially for summer interns)
Presenter manual embedded systems (specially for summer interns)
 
Lichtenberg bosc2010 wordseeker
Lichtenberg bosc2010 wordseekerLichtenberg bosc2010 wordseeker
Lichtenberg bosc2010 wordseeker
 
.Net Session Overview
.Net Session Overview.Net Session Overview
.Net Session Overview
 
Lecture 3,4 operating systems
Lecture 3,4   operating systemsLecture 3,4   operating systems
Lecture 3,4 operating systems
 
Lecture 3,4 operating systems
Lecture 3,4   operating systemsLecture 3,4   operating systems
Lecture 3,4 operating systems
 
CH04.pdf
CH04.pdfCH04.pdf
CH04.pdf
 
linux training in Chandigarh
linux training in Chandigarhlinux training in Chandigarh
linux training in Chandigarh
 
App A
App AApp A
App A
 
Case study windows
Case study windowsCase study windows
Case study windows
 
How devops exhausts itself, and what will happen next
How devops exhausts itself, and what will happen nextHow devops exhausts itself, and what will happen next
How devops exhausts itself, and what will happen next
 

Dernier

Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsKarakKing
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxPooja Bhuva
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Pooja Bhuva
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...Amil baba
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 

Dernier (20)

Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 

Linux Driver and Embedded Developer Course Highlights

  • 1. Linux Driver and Embedded Developer Course Highlights  The flagship training program from Veda Solutions, successfully being conducted from the past 10 years  A comprehensive expert level course covering all aspects of system programming like Linux Programming, Kernel Programming, Embedded Linux , Network Programming, Linux Device Drivers  Most attended and recommended by working professionals (from over 100 companies and 8 nations)  From corporate trainers to over 20 major technology and embedded companies  Available in regular, full-time, weekend workshops, audio-video and online training modes 301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad Ph:040-66100265 Email: info@techveda.org www.techveda.org 1
  • 2. Who should attend?     Working professionals expecting projects/work assignments on Embedded Linux, Linux kernel programming, Device Drivers or other core system development requirements Working professionals looking to upgrade their system development skills on Linux Programmers from Windows OS platform interested to add/migrate to Linux and Embedded Systems Microcontroller based embedded developers who are willing to upgrade their skills and enhance their career positions Course pre-requisites   Proficiency in C programming Knowledge of basic Linux commands What you will learn?     Linux programming essentials, for understanding the key Linux; issues, concepts and finer nuances of programming to get a proper grounding before getting deeper into core system development Linux Kernel Programming and Internals for getting a complete grip on core OS concepts and module programming Linux Device Drivers and Embedded Drivers enabling you to start writing Driver programs for embedded and GPOS targets Practical Embedded Linux enablement skills for any target hardware like ARM and so on. Course Duration   Regular mode – 3 months (1.5 hrs. per day, five days a week) Also available in Full time, Weekend Workshops, Audio-Video and Online mode (refer website/counselor for details) Why Veda Solutions?      Most recommended training organization by working professionals 10 years of training experience in Embedded Linux and Linux system programming Delivered corporate training to over 20 technology majors including Sasken, NCR, UTCFS, Xilinx and so on First institute in Asia to start online courses on Linux Kernel, Device Drivers and Embedded Linux Participants from over 8 nations and 100 companies 2
  • 3. Course Contents This course is divided into three logical modules to enable easy and effective understanding of the entire course Linux Programming Essentials Gnu compiler distribution Process management  Understanding compile & build process  Introduction to program loading  Tool chain  Process, defined  Object file analysis  Understanding process address space.  Executable Images  Kernel process descriptor.  Binary Portability  Accessing kernel process descriptor information Exploring object files  Introduction to Linux Process scheduler  Need for understanding object files  Scheduling policies & priorities  Introduction to the Binary File Formats  Process scheduling for multi/many (ELF, COFF, XCOFF). core systems  Understanding ELF file format  Process affinity  Inspecting object files  Linux process privileges  Extracting sections from object files  Introduction to process resource limits  Converting executable to other  Use cases & standard practices formats (srec, ihex, binary)  Use cases Stack Analysis  Introduction to stack Exploring Linkers and Build process  Understanding how stack grows and  Build process defined shrinks  Role of Build scripts in build process  Understanding how function  Build script syntax parameters are passed.  Need to modify Build scripts  Understanding how stack frames are  Use cases & standard practices created and destroyed. Libraries  Introduction to libraries  Creating Static Libraries  Creating Shared Libraries  Using Libraries  Managing dynamic libraries  Use cases & standard practices Application prg. Interfaces (API)  Understanding need of Api  API vs system calls  User mode/ kernel mode transitions  Unix common API standards (Posix, BsD , SYS V)  APIs and application portability  API design practices  Use cases and standard practices 3
  • 4. Managing process address space  Introduction to virtual address space  Stack allocations  Heap/Data segment management  Memory maps  Dynamic memory allocation & deallocation routines  Choosing right memory allocation mechanism  Manipulating memory blocks  Swapping Memory Areas  Memory locking  Use cases & standard practices Linux I/O architecture  Introduction to components of I/O architecture  Objectives of Linux I/O model  Virtual file system  File system services  I/O cache  Understanding file descriptors & inode structures File I/O operations  Introduction to common file APIs  Accessing file attributes  Standard I/O operations  File control operations(fcntl())  Alternate File I/O models  Huge file I/O  Monitoring File and directory events  Use cases I/O operations of special files  Handling Device Files  Handling Pipe files  /proc file system  /sys file system I/O multiplexing  Need for Multiplexed I/O  Standard methods  Linux support for I/O multiplexing  Use cases & standard practices Signal management  Introduction to Signals  Linux signal types & categories  Signal generation and delivery  Linux signal management datastructures  Switching signal dispositions  Writing async signal handlers  Using signals for process communication  Blocking & Unblocking signal delivery  Use cases & standard Practices Concurrent application designs  Introduction to concurrent applications  Understanding need for concurrent apps  Standard Concurrency models  Comparative analysis of concurrency models  Use cases & standard Practices 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)  Use cases & standard Practices 4
  • 5. Posix Threads  Introduction to posix thread interface  Thread creation and management  Thread attributes  Detecting Race conditions  Atomic operations  Mutual exclusions methods (mutex, semaphores, spinlocks)  Detecting and handling deadlock events  Choosing right Mutual exclusion method  Designing scalable critical sections  Exploring Thread synchronization methods (signals, condition variables...)  Choosing correct Thread synchronization method  Thread local data  Thread cancellations & exit handlers  Linux Native posix threading support (NPTL) Time keeping & Timers  Calendar Time  Time conversion routines  Software time keeping  Process time  BSD Interval Timers for running periodic tasks  Accuracy of timers  Posix clocks  Posix interval timers  Linux interval timer interface  Use cases & standard practices Inter-process communication  Introduction to IPC subsystem  Linux kernel IPC resources  IPC communication resources (pipes, msgqs., shared memory)  IPC synchronization resources (semaphores)  Comparative analysis of SYSV and POSIX IPC Implementations  IPC kernel data structures  Use cases & standard Practices Network programming  Introduction to networking  Categories of Network Applications  Network communication application designs  Understanding Protocol stacks  Understanding TCP/IP networks  Exploring Linux kernel network subsystem Linux socket abstraction layer  Introduction to socket layer  Overview of socket APIs  Programming TCP/IP apps using socket APIs  Programming UDP/IP apps using socket APIs  Exploring socket data structures  Understanding socket attributes  Introduction to Raw sockets  Programming apps using Raw sockets  Alternate models for implementing network apps  (Without using Socket APIs)  Use cases & standard Practices 5
  • 6. Process communication with UNIX domain sockets  Stream sockets in Unix domain  Datagram sockets in Unix domain  Abstract socket namespace Build automation tools  Introduction to build automation  Make tool & Makefiles  Make syntax  Make default rules  Use cases Linux Kernel Internals and Device Drivers Linux kernel programming  Essentials of Linux kernel architecture  Understanding need for kernel programming  Kernel programming models  Modifying kernel sources  Kernel configuration and compilation  Introduction to kernel modules  Kernel modules vs. Applications  Exploring kernel module architecture Modules programming basics  Building blocks of a kernel module  Building kernel module binary  Tools for module management  Tracking module dependency  Module parameters  Kernel symbol table  Exporting Module symbols Kernel message logging infrastructure  Need for kernel message logging  Kernel message ring buffer  Kernel message Log priorities  Message Ring buffer management  Accessing messages from user mode apps  Linux message logging daemons Linux driver architecture  Device Drivers defined  Linux Driver model  Types of Linux drivers  Driver stacks Synchronous driver model  Synchronous drivers defined  Driver registration and de-registration  Driver file interface  Device file operations  Driver data structures  Device Configuration ops  Wait Queues & polling  Memory mapping  Use cases Concurrency and Race Conditions  UP vs. SMP Issues  Combating Race Conditions  Atomic Operations  Semaphores  Spin Locks 6
  • 7. Memory allocations  Linux kernel memory subsystem  Memory representation data structures  Memory Allocators  Allocating Boot memory  Page Tables and Address Translation DMA mappings  Need for DMA  Linux DMA mappings  Use cases Hardware access  Device Addresses  Port mapped I/O  Interacting with port mapped devices  Memory Mapped I/O  Reserving address space MMIO  MMIO Access  Device Access side effects  Device access from u-space Linux net device subsystem  Network driver model  Types of network drivers  Driver hands-on Block driver subsystem  Block device model  ramdisk driver hands-on PCI device drivers  PCI basics  Linux PCI bus stack  PCI device access USB      USB basics Linux USB bus stack USB driver classes Interacting with USB devices from drivers Driver hands-on Interrupt handling  Understanding Interrupts  Linux Interrupt handlers  Implementing Driver ISR  Need for deferred routines  Linux Deferred Routines  Interrupt event management Time measurement & Delays  Need for time measurement  Kernel tick  Need for delays  Introducing delays  Use cases 7
  • 8. Embedded Linux Introduction to embedded Linux  Benefits of using Linux and open source tools for embedded systems  SOC overview  Embedded Linux system architecture  Software components for embedded development Kernel      Cross-compiler tool-chains  Need for cross tool-chain  Different tool-chains’ build procedures  Using pre-build cross tool-chain  Building our own cross tool-chain Embedded Drivers  Linux Driver stack for embedded devices Platform devices Stack I2C stack SPI stack MTD stack Machine emulator and virtualizer  Why emulator  Installing emulator  Using emulator for ARM Linux booting process  Linux booting sequence  Components of Linux booting  Tweaks and changes  Use cases U-boot  Introduction to u-boot  Overview of U-boot source  Building U-boot for target  Booting target with U-boot  Understanding U-boot environment  Transferring images to target using Uboot  Supported hardware architectures Using predefined config files Cross-compiling the kernel for target Understanding kernel boot arguments Understanding NAND/NOR flash File system for flash File system  Understanding Unix File system hierarchy  Creating file system  Porting application  Mounting file system as initrd  Integrating file system and kernel image  Cross-compiling applications and libraries  Creating jffs2 file system Flashing Images  Flashing kernel image  Flashing file system 301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad Ph:040-66100265 Email: info@techveda.org www.techveda.org 8