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

亚洲精品成人网久久久久久| 自拍偷自拍亚洲精品偷一| 久久久精品免费国产四虎| 亚洲一区精品伊人久久伊人| 揄拍成人国产精品视频| 亚洲精品无码人妻无码| 热re99久久精品国产99热| 精品久久久久久无码人妻蜜桃| 四虎成人精品在永久免费| 无码日韩人妻精品久久| 精品人人妻人人澡人人爽牛牛 | 亚洲综合精品一二三区在线| 亚洲精品乱码久久久久久久久久久久 | 国产一区二区三精品久久久无广告 | 国产午夜亚洲精品午夜鲁丝片| 精品国产福利盛宴在线观看| 成人国内精品久久久久影院| 国产精品久久久久久久伊一 | 国产精品沙发午睡系列| 亚洲国产美女精品久久久| 精品女同一区二区三区免费站 | 国产亚洲精品免费| 尤物国产精品福利三区| 久久精品人妻中文系列| 亚洲AV无码乱码麻豆精品国产 | 99re6在线精品免费观看| 国产在线观看高清精品| 最新精品露脸国产在线| 国内精品久久久久久99蜜桃| 国产精品色内内在线播放| 亚洲AV第一页国产精品| 久久精品人人槡人妻人人玩AV| 2022国产精品手机在线观看| 精品国产污污免费网站入口| 久久精品国产精品亚洲艾草网美妙| 国内精品视频在线观看| 久久久国产精品福利免费| 久久亚洲精品无码AV红樱桃| 精品久久一区二区三区| 精品国内自产拍在线观看| 国内精品伊人久久久久影院对白|