Atlas - TODO
Home / doc / linux-ref Lines: 1 | Size: 19200 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]14248's Linux Reference Manual — Topic TODO 2========================================== 3 4Legend: [ ] not started [~] in progress [x] done 5 6──────────────────────────────────────────────────────────────────────────────── 7KERNEL 8──────────────────────────────────────────────────────────────────────────────── 9 10[ ] kernel/ 11 [ ] boot/ 12 [ ] 10-bootloaders-and-handoff.md 13 [ ] GRUB2 / systemd-boot / EFISTUB 14 [ ] how the bootloader passes control to the kernel 15 [ ] multiboot2 header 16 [ ] 20-early-init.md 17 [ ] head_64.S entry point 18 [ ] decompression stage 19 [ ] early ioremap and fixmaps 20 [ ] 30-init-process.md 21 [ ] PID 1 from kernel perspective 22 [ ] kernel_init thread 23 [ ] initramfs / initrd mounting 24 [ ] 40-kernel-parameters.md 25 [ ] /proc/cmdline 26 [ ] Documentation/admin-guide/kernel-parameters.txt map 27 [ ] __setup() and early_param() macros 28 29 [ ] cli-args/ [~ started: 10-kernel-command-line-overview.md] 30 [ ] 10-kernel-command-line-overview.md [~ draft] 31 [ ] 20-bootparam-reference.md 32 [ ] console=, root=, rw/ro, quiet, debug 33 [ ] module parameter passing (module.param=val) 34 [ ] 30-sysctl-vs-cmdline.md 35 36 [ ] memory/ 37 [ ] 10-virtual-memory-layout.md 38 [ ] x86_64 canonical addresses 39 [ ] kernel vs userspace split (128 TB / 128 TB) 40 [ ] KASLR 41 [ ] 20-page-tables.md 42 [ ] PGD / P4D / PUD / PMD / PTE walk 43 [ ] huge pages (2 MB, 1 GB) 44 [ ] TLB shootdown 45 [ ] 30-slab-allocators.md 46 [ ] SLAB / SLUB / SLOB differences 47 [ ] kmalloc, vmalloc, kzalloc 48 [ ] /proc/slabinfo and slabtop 49 [ ] 40-mm-zones.md 50 [ ] ZONE_DMA, ZONE_DMA32, ZONE_NORMAL, ZONE_HIGHMEM 51 [ ] zone watermarks (min/low/high) 52 [ ] 50-oom-killer.md 53 [ ] oom_score and oom_adj 54 [ ] /proc/<pid>/oom_score_adj 55 [ ] oom_badness() selection logic 56 [ ] 60-huge-pages.md 57 [ ] THP (Transparent Huge Pages) 58 [ ] hugetlbfs 59 [ ] /sys/kernel/mm/hugepages/ 60 [ ] 70-cma.md 61 [ ] Contiguous Memory Allocator 62 [ ] dma_alloc_contiguous 63 64 [ ] processes/ 65 [ ] 10-task-struct.md 66 [ ] key fields: pid, tgid, mm, fs, files, signal 67 [ ] copy_process() on fork 68 [ ] 20-scheduling.md 69 [ ] CFS fundamentals (vruntime, weight) 70 [ ] SCHED_FIFO / SCHED_RR / SCHED_DEADLINE 71 [ ] nr_running, load average 72 [ ] 30-namespaces.md 73 [ ] pid, net, mnt, uts, ipc, user, cgroup, time 74 [ ] /proc/<pid>/ns/ symlinks 75 [ ] unshare(1) and unshare(2) 76 [ ] 40-cgroups.md 77 [ ] cgroup v1 vs v2 hierarchy 78 [ ] cpu, memory, blkio, pids controllers 79 [ ] /sys/fs/cgroup/ 80 [ ] 50-signals.md 81 [ ] signal lifecycle and delivery 82 [ ] real-time signals SIGRTMIN–SIGRTMAX 83 [ ] /proc/<pid>/status SigBlk/SigPnd fields 84 [ ] 60-seccomp.md 85 [ ] seccomp-bpf filter 86 [ ] /proc/<pid>/status Seccomp field 87 [ ] 70-capabilities.md 88 [ ] capability sets: permitted/effective/inheritable/ambient/bounding 89 [ ] CAP_SYS_ADMIN and friends 90 [ ] getpcaps, capsh 91 92 [ ] syscalls/ 93 [ ] 10-syscall-overview.md 94 [ ] syscall table (arch/x86/entry/syscalls/) 95 [ ] SYSCALL_DEFINE macros 96 [ ] vDSO and vsyscall 97 [ ] 20-key-syscalls.md 98 [ ] ioctl(2): encoding and direction bits 99 [ ] mmap(2): MAP_ANONYMOUS, MAP_SHARED, MAP_FIXED 100 [ ] epoll(7): level vs edge triggered 101 [ ] io_uring: SQ/CQ ring layout 102 [ ] 30-syscall-tracing.md 103 [ ] strace, ptrace internals 104 [ ] seccomp audit 105 [ ] perf trace 106 107 [ ] modules/ 108 [ ] 10-module-anatomy.md 109 [ ] module_init / module_exit macros 110 [ ] THIS_MODULE, EXPORT_SYMBOL 111 [ ] 20-loading-and-linking.md 112 [ ] modprobe, insmod, rmmod 113 [ ] /proc/modules, lsmod 114 [ ] symbol versioning (MODVERSIONS) 115 [ ] 30-out-of-tree-builds.md 116 [ ] Kbuild for external modules 117 [ ] KERNELDIR / KDIR Makefile pattern 118 119 [ ] drivers/ 120 [ ] 10-device-model.md 121 [ ] bus/device/driver trifecta 122 [ ] platform_driver, pci_driver registration 123 [ ] sysfs binding: /sys/bus/*/drivers/ 124 [ ] 20-char-devices.md 125 [ ] cdev_init, cdev_add 126 [ ] file_operations struct 127 [ ] major/minor allocation (alloc_chrdev_region) 128 [ ] 30-interrupt-handling.md 129 [ ] request_irq, free_irq 130 [ ] top half vs threaded IRQ (IRQF_THREAD) 131 [ ] /proc/interrupts 132 [ ] 40-dma.md 133 [ ] coherent vs streaming DMA 134 [ ] dma_map_single, dma_alloc_coherent 135 [ ] IOMMU and DMA remapping 136 137 [ ] tracing-and-debug/ 138 [ ] 10-ftrace.md 139 [ ] /sys/kernel/debug/tracing/ 140 [ ] function_graph tracer 141 [ ] trace-cmd usage 142 [ ] 20-kprobes.md 143 [ ] kprobe / kretprobe 144 [ ] eBPF kprobe programs 145 [ ] 30-perf.md 146 [ ] perf stat, perf record, perf report 147 [ ] PMU events and raw perf_event_attr 148 [ ] perf annotate for hot paths 149 [ ] 40-kdump-and-kgdb.md 150 [ ] crash utility basics 151 [ ] /proc/vmcore 152 [ ] kgdb over serial / kgdb over ethernet (netpoll) 153 154 155──────────────────────────────────────────────────────────────────────────────── 156DEVICE FILES AND /dev 157──────────────────────────────────────────────────────────────────────────────── 158 159[ ] filesystems-and-device-nodes/ [~ started: 01-filesystems-and-device-nodes.md] 160 [ ] 10-dev-overview.md [~ draft] 161 [ ] major/minor numbers 162 [ ] udev rules and mdev 163 [ ] 20-notable-char-devices.md 164 [ ] /dev/null, /dev/zero, /dev/full, /dev/urandom, /dev/random 165 [ ] /dev/mem, /dev/kmem (and their restrictions) 166 [ ] /dev/tty, /dev/ptmx, /dev/pts/* 167 [ ] /dev/input/event*, /dev/input/mouse* 168 [ ] /dev/fb0 (framebuffer), /dev/dri/card* (DRM) 169 [ ] /dev/kvm 170 [ ] /dev/loop*, /dev/mapper/* 171 [ ] /dev/watchdog 172 [ ] 30-block-devices.md 173 [ ] /dev/sd*, /dev/nvme*, /dev/mmcblk* 174 [ ] partition naming 175 [ ] /sys/block/ relationship 176 [ ] 40-udev.md 177 [ ] udev rules syntax (KERNEL==, ATTR{}, RUN+=) 178 [ ] udevadm monitor, udevadm info 179 [ ] persistent naming rules 180 181 182──────────────────────────────────────────────────────────────────────────────── 183PSEUDO FILESYSTEMS 184──────────────────────────────────────────────────────────────────────────────── 185 186[ ] pseudo-fs/ 187 [ ] 10-procfs.md 188 [ ] /proc/self, /proc/<pid>/ tree 189 [ ] /proc/meminfo field-by-field 190 [ ] /proc/net/* (tcp, udp, unix, dev) 191 [ ] /proc/sys/ hierarchy (same as sysctl) 192 [ ] 20-sysfs.md 193 [ ] sysfs as kernel object mirror 194 [ ] attribute files and kobject model 195 [ ] power management: /sys/devices/ power/ 196 [ ] 30-debugfs.md 197 [ ] mounting debugfs 198 [ ] key subsystem nodes (drm, tracing, bdi) 199 [ ] 40-cgroup-fs.md 200 [ ] v1 multi-hierarchy vs v2 unified 201 [ ] delegating subtrees (cgroup.subtree_control) 202 [ ] 50-tmpfs-and-ramfs.md 203 [ ] tmpfs accounting and limits 204 [ ] /dev/shm as tmpfs 205 [ ] 60-bpffs.md 206 [ ] pinning eBPF maps and programs 207 [ ] /sys/fs/bpf/ 208 209 210──────────────────────────────────────────────────────────────────────────────── 211FILESYSTEMS 212──────────────────────────────────────────────────────────────────────────────── 213 214[ ] filesystems/ 215 [ ] 10-vfs.md 216 [ ] inode, dentry, superblock, file objects 217 [ ] VFS operations tables 218 [ ] dcache and icache 219 [ ] 20-ext4.md 220 [ ] extents vs indirect blocks 221 [ ] journal modes (journal, ordered, writeback) 222 [ ] tune2fs knobs 223 [ ] 30-xfs.md 224 [ ] allocation groups 225 [ ] delayed allocation 226 [ ] xfs_info, xfs_repair 227 [ ] 40-btrfs.md 228 [ ] CoW and subvolumes 229 [ ] RAID modes 230 [ ] btrfs send/receive 231 [ ] 50-overlayfs.md 232 [ ] lower/upper/work/merged layout 233 [ ] container image layers 234 [ ] 60-fuse.md 235 [ ] userspace filesystem protocol 236 [ ] libfuse request handling loop 237 238 239──────────────────────────────────────────────────────────────────────────────── 240NETWORKING 241──────────────────────────────────────────────────────────────────────────────── 242 243[ ] networking/ 244 [ ] 10-socket-internals.md 245 [ ] sock struct and sk_buff lifecycle 246 [ ] socket options (SO_*, TCP_*, IP_*) 247 [ ] send/recv buffer tuning 248 [ ] 20-netfilter.md 249 [ ] hook points: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING 250 [ ] nftables rule structure 251 [ ] conntrack: /proc/net/nf_conntrack 252 [ ] 30-tc.md 253 [ ] qdiscs: fq, fq_codel, pfifo_fast, tbf 254 [ ] tc filter with BPF classifier 255 [ ] XDP: rx hook before netdev 256 [ ] 40-network-namespaces.md 257 [ ] ip netns, veth pairs 258 [ ] vrf and routing tables per ns 259 [ ] 50-tun-tap.md 260 [ ] TUN/TAP devices 261 [ ] /dev/net/tun usage 262 [ ] userspace VPN plumbing 263 [ ] 60-netlink.md 264 [ ] NETLINK_ROUTE / NETLINK_SOCK_DIAG 265 [ ] rtnetlink attribute encoding 266 [ ] iproute2 internals using netlink 267 268 269──────────────────────────────────────────────────────────────────────────────── 270BLOCK I/O 271──────────────────────────────────────────────────────────────────────────────── 272 273[ ] block/ 274 [ ] 10-io-stack.md 275 [ ] bio and request structs 276 [ ] I/O schedulers: none, mq-deadline, kyber, bfq 277 [ ] /sys/block/<dev>/queue/scheduler 278 [ ] 20-io-accounting.md 279 [ ] /proc/<pid>/io 280 [ ] blkio cgroup controller 281 [ ] iostat, iotop internals 282 [ ] 30-nvme.md 283 [ ] NVMe queue pairs (submission/completion) 284 [ ] nvme cli management 285 [ ] nvme namespaces 286 287 288──────────────────────────────────────────────────────────────────────────────── 289eBPF 290──────────────────────────────────────────────────────────────────────────────── 291 292[ ] ebpf/ 293 [ ] 10-overview.md 294 [ ] BPF ISA: registers, instructions, maps 295 [ ] verifier constraints 296 [ ] JIT and interpreted modes 297 [ ] 20-program-types.md 298 [ ] kprobe, tracepoint, perf_event 299 [ ] XDP, TC, cgroup_skb 300 [ ] lsm, fentry/fexit 301 [ ] 30-maps.md 302 [ ] hash, array, ringbuf, perf_event_array 303 [ ] map pinning via bpffs 304 [ ] 40-bpftool.md 305 [ ] bpftool prog / map / net inspection 306 [ ] BTF and CO-RE 307 [ ] 50-libbpf-skeleton.md 308 [ ] skel-based user space loader pattern 309 310 311──────────────────────────────────────────────────────────────────────────────── 312BASH 313──────────────────────────────────────────────────────────────────────────────── 314 315[ ] bash/ [~ started: 10-bash-overview.md] 316 [ ] 10-bash-overview.md [~ draft] 317 [ ] 20-expansions.md 318 [ ] brace, tilde, parameter, arithmetic, command sub, word splitting, glob 319 [ ] order of expansion stages 320 [ ] 30-parameter-internals.md 321 [ ] special vars: $*, $@, $#, $?, $!, $-, $$, $0 322 [ ] namerefs (declare -n) 323 [ ] arrays and associative arrays 324 [ ] 40-io-redirection.md 325 [ ] fd duplication: 2>&1, >&, <&- 326 [ ] process substitution <() >() 327 [ ] here-doc and here-string 328 [ ] 50-job-control.md 329 [ ] fg, bg, disown, wait 330 [ ] /proc/<pid>/fdinfo/ under the hood 331 [ ] 60-builtins-vs-externals.md 332 [ ] why type/which/command differ 333 [ ] hash table and PATH walk 334 [ ] 70-readline-and-inputrc.md 335 [ ] 80-scripting-patterns.md 336 [ ] error handling (set -euo pipefail) 337 [ ] trap cleanup patterns 338 [ ] lockfile and singleton techniques 339 340 341──────────────────────────────────────────────────────────────────────────────── 342INIT AND SERVICE MANAGEMENT 343──────────────────────────────────────────────────────────────────────────────── 344 345[ ] init/ 346 [ ] 10-systemd-units.md 347 [ ] service, socket, timer, mount, device unit types 348 [ ] dependency ordering (Wants, After, Requires) 349 [ ] systemctl status internals (cgroup tree) 350 [ ] 20-systemd-journal.md 351 [ ] structured fields 352 [ ] journald socket protocol 353 [ ] journalctl filtering on _COMM= _PID= etc 354 [ ] 30-boot-target-sequence.md 355 [ ] default.target chain 356 [ ] rescue.target and emergency.target 357 [ ] 40-socket-activation.md 358 [ ] LISTEN_FDS protocol 359 [ ] sd_notify(3) 360 361 362──────────────────────────────────────────────────────────────────────────────── 363SECURITY 364──────────────────────────────────────────────────────────────────────────────── 365 366[ ] security/ 367 [ ] 10-lsm.md 368 [ ] LSM hook architecture 369 [ ] stacking order (security_hook_heads) 370 [ ] 20-selinux.md 371 [ ] type enforcement: subject/object/permission 372 [ ] policy modules and audit2allow 373 [ ] /sys/fs/selinux/ 374 [ ] 30-apparmor.md 375 [ ] profile syntax 376 [ ] aa-genprof, aa-logprof 377 [ ] 40-landlock.md 378 [ ] ruleset, filesystem and net access control 379 [ ] landlock_create_ruleset(2) 380 [ ] 50-kernel-hardening.md 381 [ ] SMEP, SMAP, CET, KPTI 382 [ ] KSPP config options 383 [ ] /proc/sys/kernel/kptr_restrict, dmesg_restrict 384 385 386──────────────────────────────────────────────────────────────────────────────── 387HARDWARE INTERFACES 388──────────────────────────────────────────────────────────────────────────────── 389 390[ ] hardware/ 391 [ ] 10-pci-and-pcie.md 392 [ ] config space: vendor/device/BAR layout 393 [ ] lspci -vvv output walkthrough 394 [ ] /sys/bus/pci/devices/ attributes 395 [ ] 20-usb.md 396 [ ] transfer types: control, bulk, interrupt, isochronous 397 [ ] /sys/bus/usb/devices/ and usbfs 398 [ ] lsusb -v walkthrough 399 [ ] 30-acpi.md 400 [ ] DSDT / SSDT / FADT tables 401 [ ] acpidump + iasl decompile 402 [ ] /sys/firmware/acpi/ 403 [ ] 40-gpio.md 404 [ ] character device gpio (/dev/gpiochip*) 405 [ ] libgpiod and gpioinfo 406 [ ] 50-i2c-and-spi.md 407 [ ] /dev/i2c-*, i2c-tools 408 [ ] /dev/spidev*, spidev ioctls 409 [ ] 60-cpu-topology.md 410 [ ] /sys/devices/system/cpu/ layout 411 [ ] NUMA: /sys/devices/system/node/ 412 [ ] CPU hotplug 413 414 415──────────────────────────────────────────────────────────────────────────────── 416VIRTUAL MACHINES AND CONTAINERS 417──────────────────────────────────────────────────────────────────────────────── 418 419[ ] virt/ 420 [ ] 10-kvm.md 421 [ ] /dev/kvm ioctls: KVM_CREATE_VM, KVM_CREATE_VCPU 422 [ ] VMCS / VMCB overview 423 [ ] EPT / NPT (nested page tables) 424 [ ] 20-containers.md 425 [ ] namespace + cgroup composition 426 [ ] /proc/<pid>/ns/ fd trick for re-entering 427 [ ] pivot_root vs chroot 428 [ ] 30-virtio.md 429 [ ] virtqueue split ring layout 430 [ ] virtio-blk, virtio-net, virtio-mem 431 [ ] vhost-user and DPDK path 432 433 434──────────────────────────────────────────────────────────────────────────────── 435TOOLING REFERENCE 436──────────────────────────────────────────────────────────────────────────────── 437 438[ ] tooling/ 439 [ ] 10-binutils.md 440 [ ] objdump, readelf, nm, addr2line, size 441 [ ] ELF structure walkthrough 442 [ ] 20-gdb.md 443 [ ] kernel debugging with gdb + vmlinux 444 [ ] QEMU + gdb stub 445 [ ] crash scripting with gdb 446 [ ] 30-sparse-and-coccinelle.md 447 [ ] sparse annotations: __user, __iomem, __must_check 448 [ ] Coccinelle semantic patch basics 449 [ ] 40-kconfig-and-kbuild.md 450 [ ] Kconfig syntax: bool, tristate, depends on, select 451 [ ] Kbuild obj-y / obj-m mechanics 452 [ ] make menuconfig, allmodconfig, tinyconfig 453 454 455──────────────────────────────────────────────────────────────────────────────── 456APPENDIX 457──────────────────────────────────────────────────────────────────────────────── 458 459[ ] appendix/ 460 [ ] 10-syscall-table.md 461 [ ] x86_64 syscall table (annotated) 462 [ ] 20-errno-reference.md 463 [ ] full errno list with common kernel context 464 [ ] 30-ioctl-encoding.md 465 [ ] _IO, _IOR, _IOW, _IOWR macros 466 [ ] direction and size bit layout 467 [ ] 40-glossary.md 468 [ ] kernel / systems jargon A–Z 469 470[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.