Kernel structures

Some Linux Kernel Structures

Interrupt Descriptor Table (IDT)

https://en.wikipedia.org/wiki/Interrupt_descriptor_table

The Interrupt Descriptor Table (IDT) is a data structure used by the x86 architecture to implement an interrupt vector table. The IDT is used by the processor to determine the correct response to interrupts and exceptions.

From [http://cs-pub.bu.edu/fac/richwest/cs591_w1/notes/wk1.pdf#page=16]

Set up during kernel boot-up. For instance, sets interrupt 80 (int $0x80) for calling system calls:

set_system_gate(0x80, &system_call);

Located in

arch/i386/kernel/entry.S System call and low-level fault handling routines.
include/asm-i386/unistd.h System call numbers and macros.
kernel/sys.c System call service routines.

Process Control Block (PCB)

https://en.wikipedia.org/wiki/Process_control_block

A process control block (PCB) is a data structure used by computer operating systems to store all the information about a process. It is also known as a process descriptor.

In Linux the PCB is named Task structure and is defined in the scheduler code

https://topic.alibabacloud.com/a/analysis-of-task_struct-structure-field-in-linux-__linux_1_16_20276930.html

Learning about Linux Processes

Kernel books

The Art of Linux Kernel Design

https://theiotlearninginitiative.gitbook.io/linuxkernel/introduction