Interrupts and Bottom Halves in Linux Kernel

Linux Kernel Programming - Interrupts and Bottom Halves

4.10 (72 reviews)
Udemy
platform
English
language
Operating Systems
category
instructor
Interrupts and Bottom Halves in Linux Kernel
876
students
5 hours
content
Apr 2021
last update
$64.99
regular price

What you will learn

Interrupts and Bottom Halves

Why take this course?

What you will learn from this course

Interrupts and Exceptions
Types of Interrupts and Exceptions : Level Triggerred, Edge Triggerred, Traps, Faults
Programmable Interrput Controller, Advanced Programmable Interrupt Controller (APIC) - IO APIC, Local APIC
Find out information about your x86 CPU using CPUID Instruction
What happens when there is interrupt
How does CPU finds the interrupt handler: Interrupt Request, Interrupt Vector and Interrupt Descriptor Table
Interrupt Handling and Statistics in Linux Kernel : Interrupt sharing, return values, IRQ Affinity
Linux Driver for keyboard, mouse, ethernet interrupts
Write a Keylogger in Linux Kernel which will log all characters typed
Enabling/Disabling Interrupts
What happens when we add sleep and delay in interrupt handler
Top and Bottom Halves: Threaded IRQs,Softirqs, Tasklets and Workqueues (System Workqueues and own workqueues)
Differences between softirqs, tasklets and workqueues

Files
/proc/cpuinfo
/proc/interrupts
/proc/irq
/proc/softirqs

API's/Macros/Structures

request_irq, irq_handler_t
local_irq_enable, local_irq_disable, cli, sei
local_irq_save, local_irq_restore
disable_irq, enable_irq
disable_irq_nosync, synchronize_irq
irqs_disabled
in_interrupt
request_threaded_irq
struct softirq_action, NR_SOFTIRQS
open_softirq, raise_softirq
in_irq
local_softirq_pending
in_softirq
local_bh_enable, local_bh_disable
spin_lock_bh, spin_unlock_bh
struct tasklet_struct, DECLARE_TASKLET, DECLARE_TASKLET_DISABLED, tasklet_init, tasklet_schedule, tasklet_hi_schedule
tasklet_trylock, tasklet_unlock, tasklet_disable, tasklet_disable_nosync, tasklet_enable, tasklet_kill
struct workqueue_struct, struct work_struct, DECLARE_WORK, INIT_WORK, queue_work, queue_work_on, schedule_work, schedule_work_on, cancel_work_sync, flush_work
struct delayed_work, DELAYED_DECLARED_WORK, INIT_DELAYED_WORK, schedule_delayed_work, schedule_delayed_work_on, flush_delayed_work, cancel_delayed_work
alloc_workqueue, destroy_workqueue, flush_workqueue, alloc_ordered_workqueue,

Commands
watch
lspci
dmesg


Reviews

Andrei
November 18, 2023
This course would better fit people who already have an idea of what a driver is, how to write it and compile. When the trainer compiled drivers in the background (unseen by the viewer), inserted or removed them from kernel, I understood what had happend. When the trainer mentioned the timer, I already knew what he had meant. So probably this course is not for absolute beginners. Before taking this course I would recommend learning how to compile a driver first, how Kbuild system works, how scheduling works (timer-related stuff), etc. There are suitable Udemy courses for that. Kernel development is anything but a simple topic, and there cannot be one perfect course for all levels. On this level of computing everything is complicated right from the start. Background noises can distract at first, but most of the stuff is read from the notes, so you can understand what is being said. The lack of slides is a good feature, it is much more convenient to grep the text files for the information, than the slides, so I would not call it a problem at all. I liked that the trainer showed some files from the /proc filesystem - how the interrupt counters are being updated, how IRQ numbers echo between PCI devices and the interrupts information - I would never even think of checking those places of /proc myself, even being a long-time fluent linux user. I appreciate that sysfs was mentioned as well. This course is good for people who want to take one step after learning how to compile a driver, and have some image of what is going on in the kernel, want to experiment a little bit more, and want to know about the infrastructure surrounding the drivers. For my level of knowledge I find this course to be a perfect match.
Shibu
November 12, 2023
worst. he dont even explain the code, likw what does the function , why he is using a particular function, i have to search from myside everything. very bad course , he is just opening a text file and reading it. from his voice i can sense that he is not intrested in teaching
Islam
October 25, 2022
The Course explains the interrupts from the user points of view. it was like a good entry to understand interrupts in linux but It needs to go deep to explains more about how interrupts and interrupt domains in linux kernel implemented
Sheng-Han
August 3, 2022
I believe the lecturer is a professional in this field but the course itself is pretty bad. The accent is too hard to understand the content. Possibly good captions can make up this but caption in this course is nonsense and messy. The class material is in the last section which is never mentioned in the course. Besides, it's very unorganized and the naming is not sensible. No slides just plain text is not enough to elaborate the content. Not suitable and worthy for someone looking for high quality course.
Dragutin
January 25, 2021
Incredibly hard to listen bad to bad audio + indian english which i would understand better if it's indian, and i'm not indian. Also, i don't like courses where tutor read from screen. I can do that without course.
Shreyas
December 27, 2020
Unorganized - Everything is just bad. I didn't have a good experience yet. Simply reading some low standard notes. The concepts are not explained at all. Not even really practical - just doing something. I wish I can rate less than 1 star.

Charts

Price

Interrupts and Bottom Halves in Linux Kernel - Price chart

Rating

Interrupts and Bottom Halves in Linux Kernel - Ratings chart

Enrollment distribution

Interrupts and Bottom Halves in Linux Kernel - Distribution chart

Related Topics

3503664
udemy ID
9/16/2020
course created date
9/26/2020
course indexed date
Bot
course submited by