torvalds/linux
Data models
A condensed reference of the major in-kernel objects and how they relate. Use this page as a "where to look" rather than a definition. Each link below points at the header where the structure is declared.
Process / thread
graph LR
TASK[task_struct] -->|"->mm"| MM[mm_struct]
TASK -->|"->files"| FILES[files_struct]
TASK -->|"->fs"| FS[fs_struct]
TASK -->|"->signal, ->sighand"| SIG[signal_struct, sighand_struct]
TASK -->|"->cred"| CRED[cred]
TASK -->|"->se / ->dl / ->rt"| SCHED[sched_entity / sched_dl_entity / sched_rt_entity]
TASK -->|"->nsproxy"| NS[nsproxy]
NS -->|"net/uts/ipc/pid/mnt/cgroup/time"| NSITEMS[per-namespace structs]
MM --> VMA[vm_area_struct *]
MM -->|maple tree| MT[mt_root]
FILES --> FDT[fdtable]
FDT --> FILE[struct file *]| Object | Header | Notes |
|---|---|---|
task_struct |
include/linux/sched.h |
Thread descriptor; one per kernel thread or user thread. |
mm_struct |
include/linux/mm_types.h |
Address space. Shared between threads of one process. |
vm_area_struct |
include/linux/mm_types.h |
A contiguous virtual range with one set of permissions. |
cred |
include/linux/cred.h |
uid/gid/caps and security blob. |
signal_struct, sighand_struct |
include/linux/sched/signal.h |
Per-thread-group and per-thread-handler signal state. |
nsproxy |
include/linux/nsproxy.h |
Per-process namespace bundle. |
files_struct, fdtable |
include/linux/fdtable.h |
The file-descriptor table. |
pid, pid_namespace |
include/linux/pid.h, include/linux/pid_namespace.h |
Numeric pid in a hierarchical pid namespace. |
Filesystems / VFS
| Object | Header |
|---|---|
super_block |
include/linux/fs.h |
inode |
include/linux/fs.h |
dentry |
include/linux/dcache.h |
file |
include/linux/fs.h |
address_space |
include/linux/fs.h |
folio |
include/linux/mm_types.h |
path |
include/linux/path.h |
vfsmount |
include/linux/mount.h |
file_system_type |
include/linux/fs.h |
Operations vtables: super_operations, inode_operations, dentry_operations, file_operations, address_space_operations (all in include/linux/fs.h).
Block
| Object | Header |
|---|---|
bio, bvec_iter |
include/linux/blk_types.h |
request, request_queue |
include/linux/blkdev.h |
gendisk, block_device |
include/linux/blkdev.h |
blk_mq_tag_set, blk_mq_hw_ctx |
include/linux/blk-mq.h |
Networking
| Object | Header |
|---|---|
net_device |
include/linux/netdevice.h |
sk_buff |
include/linux/skbuff.h |
sock, socket, proto, proto_ops |
include/net/sock.h, include/linux/net.h |
net (namespace) |
include/net/net_namespace.h |
fib_table, fib_rules |
include/net/fib_rules.h |
neighbour |
include/net/neighbour.h |
inet_sock, tcp_sock, udp_sock |
include/net/inet_sock.h, tcp.h, udp.h |
Device model
| Object | Header |
|---|---|
device, device_driver, bus_type, class |
include/linux/device.h |
kobject, kset, kref, kobj_type |
include/linux/kobject.h |
pci_dev, pci_driver |
include/linux/pci.h |
usb_device, usb_driver, usb_interface |
include/linux/usb.h |
platform_device, platform_driver |
include/linux/platform_device.h |
Synchronization
| Primitive | Header |
|---|---|
spinlock_t, rwlock_t |
include/linux/spinlock.h |
mutex |
include/linux/mutex.h |
rw_semaphore |
include/linux/rwsem.h |
seqlock_t, seqcount_t |
include/linux/seqlock.h |
completion |
include/linux/completion.h |
wait_queue_head_t, wait_event_* |
include/linux/wait.h |
atomic_t, atomic64_t |
include/linux/atomic.h |
refcount_t |
include/linux/refcount.h |
| RCU API | include/linux/rcupdate.h |
Memory
| Object | Header |
|---|---|
page |
include/linux/mm_types.h |
folio |
same |
pgd_t, p4d_t, pud_t, pmd_t, pte_t |
arch/<arch>/include/asm/pgtable.h |
kmem_cache |
include/linux/slab.h |
mempool_t |
include/linux/mempool.h |
iov_iter |
include/linux/uio.h |
gfp_t |
include/linux/gfp.h |
Cgroups
| Object | Header |
|---|---|
cgroup_subsys_state |
include/linux/cgroup-defs.h |
cgroup, cgroup_root |
same |
css_set, cgrp_cset_link |
same |
cgroup_subsys |
same |
BPF
| Object | Header |
|---|---|
bpf_prog, bpf_insn |
include/linux/bpf.h, include/linux/filter.h |
bpf_map |
include/linux/bpf.h |
bpf_link |
include/linux/bpf.h |
| BTF types | include/linux/btf.h |
Related pages
- Architecture — high-level system layering.
- Subsystems — per-area depth.
- Glossary — vocabulary.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.