search

Experis Software Courses

 
 

 

 Experis ברחבי העולם

 

דף הבית  >  Linux>Linux Kernel

Linux Kernel

   
Instructor
Raz Ben-Yehuda
 
Dates
21.04.2013
 
Duration
3 Days
On Organization site / Public
 
Price
5,495 NIS (₪) +VAT
 
Overview
This is a hands-on course. It covers some of the basic kernel subsystems, memory, synchronization techniques, interrupts, timers all followed by examples.
 
Target Audience 
The audience of the Linux kernel course is for kernel and device driver developers. The goal of this course is to provide the audience better understanding of the operating system, and learn how to write Linux device drivers.
 
Course benefit
 
Syllabus

Preview
• What is a kernel
• Kernel Control Path
• What is a device driver
• The Rings architecture
• Introduction: Hello world kernel module
• Character Device Driver, block device driver and network device driver

Memory
• Virtual memory
• Memory management
1. Pages, zones and nodes
2. kmalloc, vmalloc and slabs
3. memory mapping, low and high, temporary and permanent
4. process address space

What is a context
Interrupts
Softirqs
Tasklets
Kernel threads
workqueues.

How to build and boot a Linux kernel

System calls
1. From user space
2. from kernel space (optional)

Synchronization
1. Atomic operations, bitwise and integer
2. Spin locks and interrupts disabling
3. Reader writer, semaphores, mutexes
4. Completion variables
5. RCU
6. Preemption
7. Memory barriers

Time
1. the tick
2. jiffies
3. hardware timers
4. delay methods

The Linux device model -  udev and sysfs

Kernel Debugging
Kernel debugger - KDB
Analyzing an oops
Hanging machine
System Tap
Procfs
Kernel Profiler - perf
qemu

Optional
Eagers students can experiment with:
1.   user mode helper
2.   debugfs
3.   mmap
4.   network device driver
5.   Preempt RT
6.   kbuild
7.   network filter driver
8.   the socket buffer
9.   climbing up the TCP/IP stack
10. git

Time Table

Day 1
9:00 - 10:00 : Introduction
10:00 - 11:00 : Exercise 1. Hello world driver
11:00 - 11:15 : Break
11:15 - 13:15 : Exercise 2. Writing a character device
13:15 - 14:00 : Break
14:15 - 14:45 : Memory
14:45 – 16:00: Exercise 3. Writing a pipe device
16:00 - 17:00 : How to build a kernel

Day 2
9:00 - 9:30 : Linux slabs and link lists
9:30 - 11:00 : Exercise 4: using slabs
11:00 - 11:15 : Break
11:15 – 12:00 : Memory & Process Address space.
12:00 - 13:15 : Exercise 5: getting to know get_user_pages
13:15 - 14:00 : Break
14:00 - 14:45 : The different kernel contexts
14:45 - 16:30 : Exercise 6: work queues
16:30 - 17:00 : Exercise 7: Implement your own system call

Day 3
9:00 - 9:30 : Kernel concurrency
9:30 - 11:00 : Exercise 8: Concurrency: preemption counter
Exercise 9: Concurrency : timer
Exercise 10: Concurrency : semaphores
11:00 – 11:15 : Break
11:15 – 12:45 : Exercise 11: Concurrency : tasklet
12:45 - 13:00 : Kernel concurrency continued ( memory barriers, rcu )
Exercise 12: memory barriers.
Exercise 13: Optional. Hrtimers.
13:00 – 14:00: Break
14:00 - 14:30 : Kernel Debugging - Don't panic
14:30 - 15:00 : Kernel Profiling and tracing – getting to know ftrace, perf , systemtap and others
15:00 - 15:15 : Break
15:15 - 15:30 : The Linux device model
15:30 - 16:15 : Network card driver,
16:15 - 17:00 : Time and high resolution timers

Prerequisite of the Linux kernel course

At least a year in operating UNIX systems and two years in C programming.

1. Have deep knowledge in C programming language.
Know how to compile executables and libraries in Linux
C programming language
1 static function variables
2 extern variables functions
3 function pointers
4 static inline functions
5 Macros
6 Polymorphism
Able to analyze bugs, compiler errors and warnings.

2. Have a fair experience in developing in Linux environments.
1 basic commands: ls,file, cat, ps,
2 Advanced: ifconfig,ip,vmstas,iostas,top...
3 knows how to untar and unzip balls.
4 knows how to transfer files (scp) and remote connect (ssh)
5 know how to mount
6 knows what is a boot loader
7 know what is a run level
8 basic shell commands:
ls,chmod,chown,mkdir,
file,
echo,cp,mv,wc,ps,kill,ps,grep,find,tail,sort,date,clear,cat,less,more,
output and input redirection >> ,<,>,|,&& ,-

3. Environment Requirement
1 . A full development Linux OS, ubunto or Fedora, with : make gcc,,tcl, ncurses
2. Kernel headers installed.
3. vim/gedit/gvim editor
4. root access
5. Virtual box is possible

 
A different kind of talent company    Experis Israel
בעולם של טכנולוגיה מורכבת - כשרון הוא שם המשחק.
יותר מתמיד, הצלחה עסקית מבוססת על האנשים הנכונים
במקום הנכון, אותם כישרונות ומומחים ייחודיים הגורמים
לעסק להצליח ולבלוט אל מול האחרים.
  כיום אנו חלק מחברה גלובלית מובילה המספקת לכם את אותה רמת שרות ומקצועיות אליה הורגלתם, עם גב של קבוצה הפרוסה במעל 50 מדינות, מעסיקה מעל  38,000 עובדים ובעלת מחזור מכירות של מעל 3 מיליארד דולר בשנה.
 
כל הזכויות שמורות - © ManpowerGroup 2013    |  כתובת המשרד: רח' יגאל אלון 90 קומה 3 ת"א 67891 טלפון רב קווי בישראל: 03-5686400                                  תנאי שימוש  |  הצהרת פרטיות                   
 
 
בניית אתריםבניית אתרים