課程目錄: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).

精品永久久福利一区二区| 久久精品国产精品青草app| 国产成人久久精品一区二区三区 | 人妻少妇精品久久| 精品一区二区久久| 亚洲国产精品免费观看| 国产精品久久久久国产精品三级| 中文字幕免费视频精品一| 91大神精品全国在线观看| 精品一区二区三区中文| 久久国产精品只做精品| 狠狠久久精品中文字幕无码| 国精品午夜福利视频不卡麻豆| 最新日韩精品中文字幕| 精品97国产免费人成视频| 91亚洲精品视频| 老司机免费午夜精品视频| 久久精品*5在热| 国产精品夜夜爽范冰冰| 国产亚洲精品观看91在线| 7777精品伊人久久久大香线蕉| 99精品国产99久久久久久97| 久久只这里是精品66| 一本色道久久综合亚洲精品高清| 国产精品素人搭讪在线播放 | 永久免费精品影视网站| 久久精品国产99久久无毒不卡| 精品在线视频一区| 久久香蕉超碰97国产精品 | 国产精品爽爽ⅴa在线观看| 99re66热这里只有精品17| 精品一区二区三区电影| 久久精品国产亚洲AV香蕉| 国产精品丝袜久久久久久不卡 | 另类国产精品一区二区| 亚洲国产成人一区二区精品区 | 精品久久久久国产| 日韩精品一区二区亚洲AV观看| 国产精品1024在线永久免费| 蜜芽国内精品视频在线观看| 精品免费视在线观看|