+ All Categories
Home > Documents > Linux Kernel & Embedded · PDF file• Linux kernel Internals and Programming •...

Linux Kernel & Embedded · PDF file• Linux kernel Internals and Programming •...

Date post: 06-Feb-2018
Category:
Upload: duongnhi
View: 251 times
Download: 11 times
Share this document with a friend
4
#1b, 2a,3a Dhananjaya Chambers, Sarathi Studio Lane, Ameerpet, Hyderabad. For more details logon to www.techveda.org, Contacts: Ph: 040-66100265 Email: [email protected] 1 A revolution that will forever change the way Linux is understood Linux Kernel & Embedded Developer A Must Do Linux Program - A collective response from our participants
Transcript
Page 1: Linux Kernel & Embedded · PDF file• Linux kernel Internals and Programming • Implementation and Procedural details for writing ... • Network Programming and Advanced Linux Networking

#1b, 2a,3a Dhananjaya Chambers, Sarathi Studio Lane, Ameerpet, Hyderabad. For more details logon to www.techveda.org, Contacts: Ph: 040-66100265 Email: [email protected]

1

A revolution that will forever change the way Linux is understood

Linux Kernel & Embedded Developer

A Must Do Linux Program - A collective response from our participants

Page 2: Linux Kernel & Embedded · PDF file• Linux kernel Internals and Programming • Implementation and Procedural details for writing ... • Network Programming and Advanced Linux Networking

#1b, 2a,3a Dhananjaya Chambers, Sarathi Studio Lane, Ameerpet, Hyderabad. For more details logon to www.techveda.org, Contacts: Ph: 040-66100265 Email: [email protected]

Program Overview

Rated as the best program ever designed for all aspiring system programmers by our clients and participants. The program looks into finer aspects of the Linux kernel, its modules and submodules and makes Network Programming, Device Drivers, Embedded and Real-Time Linux vividly clear and interesting.

This is the first ever program in India designed on the Linux 2.6.x kernel

At the end of the Program, Participants will learn

• Linux Programming environment• Linux kernel Internals and Programming• Implementation and Procedural details for writing Driver programs on Linux subsystems• Network Programming and Advanced Linux Networking• Open Source learning Technique• Building and Deploying portable kernel and applications• Debugging target kernel and applications• Optimization techniques• Making kernel meet Real-Time requirements• Writing Real-Time programs and Controller drivers• Understanding firmware to handle MTD

Participants

Attendees with a passion for system programming are highly appreciated. A natural inclination towards practical learning is highly required.

Prerequisite

Good knowledge of programming using C and understanding of generic OS concepts

Training Methodology

Class room training combined with Lab exercisesSpecially designed case studiesUsage of target boards for practical learningCommunity learning and participation

Trainer

Mr Raghu Bharadwaj, a seasoned system side programmer on Linux with an experience spanning over 6 years. Possessing excellent domain expertise and in depth technical faculty in the

area of system software like Device Drivers, Real Time Drivers, Network Security Applications, Embedded Linux, Linux based RTOS etc. He is one of the leading corporate trainers in India and boosts of clients like: Defense labs of India, GE, Server Engines, Sipera Systems, Linkwell Telesystems, Xilinx and many more.

Duration

3 months in public program modeCustomized scheduling only for Corporates

Program Contents

• GNU ‘C’ & Linux • Free and Open Source • Proprietory Vs Open Source • Free Vs Open Model • What do they mean to a Devoloper?

• Programming Standards • ANSI • POSIX

• Linkers And Loaders • Libraries • Static Libraries • Dynamic Libraries • Linking using Third party libraries.

• Inline Assembly • Understanding Assembly Equivalent C- source.. • Implementing Inline Assembly. • Advantages of Inline Assembly.

• Build Tools • Make Tool • Autoconf • Automake

• Dynamic Memory • Need of Dynamic Memory • Design of Application using • Dynamic Memory • Memory overrun-underrun

• Debugging Techniques. • GDB • Electric Fence • Valgrind • gprof, gcov

• Linux Programming • System Call • System call Defined

Linux Kernel & Embedded Developer

2

Page 3: Linux Kernel & Embedded · PDF file• Linux kernel Internals and Programming • Implementation and Procedural details for writing ... • Network Programming and Advanced Linux Networking

#1b, 2a,3a Dhananjaya Chambers, Sarathi Studio Lane, Ameerpet, Hyderabad. For more details logon to www.techveda.org, Contacts: Ph: 040-66100265 Email: [email protected]

• System call Vs API • Implementation of a new System Call.

• Process Management • Process Creation • Process states scheduling • Process Descriptor structure in kernel. • Architecture of kernel process scheduler.

• Virtual Memory SubSystem • Responsibilities of Memory • Management Module. • Memory Allocation and De-allocation System call. • Process Organization in Memory. • Address Translation

• Inter Process Communication & Signals • Signals • Kernel IPC Mechanism • Pipes • Message Queues • Shared Memory • Semaphores

• Linux Network Programming • Connection-Oriented Application Development • The TCP/IP Socket model • Establishing a connection • Performing data transfer • Client programming • Server programming

• Connectionless Application Development • UDP Programming • Data transfer • Broadcasting and multicasting

• Concurrency • Processes and threads • Posix threads • Concurrent servers

• Client/Server application Architecture • Connectionless/connection-oriented I/O models • Multithreaded vs multi-process • application designs

• UDP: User Datagram Protocol • UDP Header • UDP messages • UDP applications

• TCP: Transmission Control Protocol • TCP services • TCP header • TCP connection management

• TCP data flow • TCP performance and features • IP: Internet Protocol • IP Header • IP Routing • ARP: Address Resolution Protocol • ICMP: Internet Control Message Protocol • IPV6

• Advanced Linux Networking • Sysctl • Advanced Sockets – Internals • Socket Data Structures • Registering protocol Families • Multiplexing and Demultiplexing Operations • Network Stack initialization • Sockfs • Socket Buffer • Packet Family • Netlink and RTNetlink • Packet Filtering • Net-filter extensions • Kernel structures for Physical layer

• Kernel Programming & Device Drivers • Linux Module Programming • Accessing kernel data structures • Kernel Data Types • Kernel Hotplug • Device Model • Reserving I/O Ports • Kernel Synchronization • Kernel Interrupt Handling • Kernel Time Keeping • Accessing the Performance Counters • Kernel Memory and Implementation • File Systems • Deferred Operations • Kernel Threads • Binary File Formats • Dynamic Kernel Probes

• The VFS Interface • Introduction • Need for a VFS layer • In-core and on-disk data structures • The Big Picture

• Experiments: • Registering a file system • Associating inode operations with a directory inode • The lookup function • Creating a file • Implementing read and write • Modifying read and write • A better read and write

3

Page 4: Linux Kernel & Embedded · PDF file• Linux kernel Internals and Programming • Implementation and Procedural details for writing ... • Network Programming and Advanced Linux Networking

#1b, 2a,3a Dhananjaya Chambers, Sarathi Studio Lane, Ameerpet, Hyderabad. For more details logon to www.techveda.org, Contacts: Ph: 040-66100265 Email: [email protected]

• Creating a directory • A look at how the dcache entries are chained together • Implementing deletion

• Character Devices • Driver/ Re-entrancy • Lseek/ioctl/fasync • Blocking I/O • Asynchronous I/O • Hotplug • Kernel Timers • Memory Mapping • Accessing Device I/O • Interrupt Handling• Block Device • Linux Block Device Architecture • “Bio” Structure • Block I/O Scheduler • Example Block Driver

• Network Device • Configuring an Interface • Driver writing basics • Registering a new driver • The sk_buff structure • Towards a meaningful driver • Statistical Information

• BUS ACCESS • PCI • USB • Serial• Introduction to Embedded Linux • What is an Embedded system • What is Embedded Linux • Why do you need to use Linux in Embedded systems

A brief description on ARM architecture • Embedded System Booting Process • How an embedded system starts up(Bootloader, OS,...) • Linux Booting process • Boot loader • Linux kernel • Root file system• Building a compiler tool-chain (Cross compiler) • What is a toolchain • Building toolchains for ARM • binutils • glibc , uClibc • gcc • Building an Embedded Linux • Boot Loader

• Linux Kernel • Requirements • Obtaining the source Code • Configuring linux kernel according to the needs • Compiling the kernel

• Root File System • What is a Root file system • Linux File Hirarchy system (FHS) • Building a Root File System

• Role of a Bootloader• A Universal Bootloader: Das U-Boot• Porting U-Boot• Other Bootloaders• Redboot• blob

Porting Linux kernel and root file system to the target boards• Booting the kernel • Normal Booting • Booting via TFTP • mounting the root filesystem via NFS • Building and Deploying Embedded Applications • A packet sniffer application • An embedded Web Server • Background on HTTP • A Simple embedded web server • An LCD control application • Embedded Storage • Flash Map • MTD-Memory Technology Device • MTD Architecture • Mtdutils Package • Embedded File Systems • Space and Speed Optimization Techniques: • Optimizing the Linux kernel image • Optimizing Root File System • Optimizing Applications • Debugging Techniques: • Kernel Debugging Tools • kgdb • kdb • Application Debugging Tools • gdb • gdbserver

• ARM and PowerPc emulators: • What are emulators • Qemu, an ARM and PowerPc emulator • PearPC, an architecture independent PowerPC platform emulator

4

• Real-Time Linux • Real-Time Operating System • Linux and Real-Time • Real-Time Programming in Linux • Hard Real-Time Linux

• Porting Applications to Real

Time

Linux

Architectural Comparison

Application Porting Roadmap

Programming with Pthreads


Recommended