課程目錄:Embedded GNU/Linux Kernel Internals and Device Drivers培訓
4401 人關注
(78637/99817)
課程大綱:

  Embedded GNU/Linux Kernel Internals and Device Drivers培訓

 

 

 

Introduction
quick history of GNU/Linux
licensing
kernel versioning
release cycle
kernel trees
mainline
kernel vs. user space
mechanism vs. policy
kernel driver alternatives
RTOS vs. Linux
Memory Management
Virtual memory vs. physical memory
memory allocation in kernel
pages
zones
API
slab
Kernel Patch
life cycle
git
kernel source
create patch
check patch
fix patch
ship patch
audited code
Kernel Modules
get kernel sources
configure/build/install
device drivers (statically linked, loaded at runtime)
init/exit
licensing
EXPORT SYMBOL GPL
out of tree makefile
module-init-tools
module in kernel tree
Kconfig
parameter passing
sparse
Char Drivers
architecture
user/kernel interface
I/O subsystem
VFS
sysfs (devices, bus, drivers, classes),
kobject/ktype/kset
linux kernel driver model
device files
char driver
initialization
registration
open, release
cdev, cdev add, cdev del,...
major/minor numbers
udev, udevmonitor, udevadm
Advanced Charachter Driver Operations
ioctl
unlocked ioctl
compat ioctl
user space API
kernel space API
process lifecycle
sleeping/blocking
sleeping/waking up
wait queue
thundering herd
poll/select
Kernel Debugging
bug
debugging
debugging the kernel
binary search with git
debug support from kernel
printk syslogd, klogd, loglevels, rate limit, debug levels, debug selective subsystems
debugging by querying debugfs
oops debugging, asserting oops
Magic SysRq Key
kgdb/kdb
JTAG
Tracing
gcov
lcov
oprofile
ftrace
nop tracer
function tracer
sched switch tracer
function graph tracer
dynamic tracer
trace-cmd/kernelshark
perf
LTTng
Interrupts
interrupts vs. polling
interrupt
program sections
reentrancy
events
interrupt handler
shared interrupt handler
interrupt flow
interrupt control
Deferring Work
top/bottom halves
softirqs
tasklets
work queues
threaded interrrupts
Concurrency
critical region/section
atomic
race condition
synchronization
locking
locking solutions
deadlock
contention
what to lock?
what can be used?
atomic operations
spin locks
reader-writer spin locks
semaphore
binary semaphore
mutex
reader-writer semaphore
completion variables
sequential locks
disable preemption
orderig and barriers
Time
HZ
Jiffies
big/small delays
kernel timers
Hardware I/O
I/O Ports
I/O Memory
How to deal with side effects accessing registers?
User-Kernel Communication
put(get)_user()
copy to(from)_user()
Kernel I/O
memory mapping
procfs
sysfs
debugfs
relayfs
netlink
ioctl
Portability
word size
opaque types
signed/unsigned char
data alignment
integral promotion
code reuse
endianess
system tick
page size
instruction ordering
SMP/preemption/high memory
Except where otherwise noted content and this course outline are licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

主站蜘蛛池模板: 日韩欧美综合在线| 综合国产精品第一页| 亚洲综合色区在线观看| 亚洲av综合avav中文| 激情综合亚洲色婷婷五月APP| 色婷婷综合久久久久中文| 狠狠色色综合网站| 狠狠色丁香婷婷久久综合不卡 | 狠狠激情五月综合婷婷俺| 狠狠色狠狠色综合久久| 亚洲va欧美va天堂v国产综合| 亚洲综合精品一二三区在线| 亚洲AV人无码综合在线观看| 色婷婷狠狠久久综合五月| 亚洲综合第一页| 日韩无码系列综合区| 色综合久久无码五十路人妻| 日韩无码系列综合区| 色噜噜狠狠色综合久| 久久久久高潮综合影院| 亚洲综合最新无码专区| 欧美激情中文字幕综合一区| 亚洲色偷偷综合亚洲AV伊人| 综合国产精品第一页| 亚洲综合一区二区精品导航| 久久本道久久综合伊人| 亚洲国产免费综合| 色777狠狠狠综合| 久久婷婷成人综合色综合| 一本大道久久a久久精品综合| 亚洲国产综合精品一区在线播放| 一本久道久久综合狠狠躁AV| 五月六月综合欧美网站| 狠狠色婷婷狠狠狠亚洲综合| 99综合电影在线视频好看| 日韩人妻无码一区二区三区综合部 | 亚洲另类欧美综合久久图片区| 国产色综合一二三四| 国产91色综合久久免费| 国产欧美日韩综合一区在线播放| 狠狠色丁香久久婷婷综合_中|