<thead id="fflbj"><font id="fflbj"><cite id="fflbj"></cite></font></thead>
    <progress id="fflbj"><thead id="fflbj"><font id="fflbj"></font></thead></progress>

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

            538在线视频二三区视视频