Skip to content

Instantly share code, notes, and snippets.

@heatd
Last active September 12, 2022 00:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save heatd/1b722c84395b7e6d0d353ca04679ac2a to your computer and use it in GitHub Desktop.
Save heatd/1b722c84395b7e6d0d353ca04679ac2a to your computer and use it in GitHub Desktop.
Pedro's great link collection
NVME overview: https://metebalci.com/blog/a-quick-tour-of-nvm-express-nvme/
ELF core file overview: https://www.gabriel.urdhr.fr/2015/05/29/core-file/
Linux page allocation circa 2005: https://www.kernel.org/doc/gorman/html/understand/understand009.html
Code review guide/best practices: https://google.github.io/eng-practices/review/
Meltdown details: https://blog.stuffedcow.net/2018/05/meltdown-microarchitecture/
Tiny post on API design details: https://blog.ffwll.ch/2011/01/on-getting-your-api-right.html
How to design an API: https://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html
How not to design an API: https://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html
Linux page table isolation (meltdown mitigation) docs: https://www.kernel.org/doc/Documentation/x86/pti.txt
Ext4 documentation: https://www.kernel.org/doc/html/latest/filesystems/ext4/index.html
Simple and nice overview of how a google.com visit works (OS level): https://github.com/alex/what-happens-when
TCP retries mechanism: https://pracucci.com/linux-tcp-rto-min-max-and-tcp-retries2.html
Nice blog about Intel i915 graphics, and the linux graphics stack in general: https://blog.ffwll.ch/
Another blog about Intel i915 graphics: https://bwidawsk.net/blog/
How to design an API and an IOCTL in general: https://blog.ffwll.ch/2013/11/botching-up-ioctls.html
Linux path lookup: https://www.kernel.org/doc/html/latest/filesystems/path-lookup.html
CPU cost of networking: https://people.kernel.org/dsahern/the-cpu-cost-of-networking-on-a-host
Avoiding TLB shootdowns using the Access bit in the page tables: https://www.usenix.org/system/files/conference/atc17/atc17-amit.pdf
Hello Kitty (literally): https://mgba.io/2020/01/25/infinite-loop-holy-grail/
Literally most Bryan Cantrill talks (great speaker, long time Solaris kernel person)
Linux networking stack details: https://blog.packagecloud.io/monitoring-tuning-linux-networking-stack-receiving-data/
Linux networking stack details part 2: https://www.cs.dartmouth.edu/~sergey/me/netreads/path-of-packet/Lab9_modified.pdf
The Linux programming interface book
man7.org's man pages
Overview of the Linux display stack: https://blog.mecheye.net/2012/06/the-linux-graphics-stack/
Porting CPython to a new platform: https://devguide.python.org/porting/
Fuzzing Windows: https://research.checkpoint.com/2020/bugs-on-the-windshield-fuzzing-the-windows-kernel/
Locking in WebKit: https://webkit.org/blog/6161/locking-in-webkit/
Original ext4 paper: https://www.kernel.org/doc/ols/2007/ols2007v2-pages-21-34.pdf
Illustrated TLS 1.3: https://tls13.xargs.org/
Reference for RISCV instructions: http://riscvbook.com/greencard-20181213.pdf
Vincent Zimmer's miscellaneous collection of documents about firmware and UEFI: https://github.com/vincentjzimmer/Documents
RFC1812 (Requirements for IPv4 routers): https://datatracker.ietf.org/doc/html/rfc1812
FreeBSD's route(4) protocol - controls routing: https://www.freebsd.org/cgi/man.cgi?query=route&sektion=4&manpath=freebsd-release-ports
Linux's netlink protocol - controls routing, et al: https://man7.org/linux/man-pages/man7/netlink.7.html
Paper on Itanium: https://research.cs.wisc.edu/areas/os/ReadingGroup/OS/papers/itanium-usenix-2005.pdf
Chromium's trace format: https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview
Paper on timekeeping, SMP and FreeBSD: http://phk.freebsd.dk/pubs/timecounter.pdf
Paper on Linux and block device multiqueue: https://kernel.dk/blk-mq.pdf
Blog post on Linux kernel locking: https://blog.ffwll.ch/2022/07/locking-engineering.html
Blog post on Linux kernel locking patterns: https://blog.ffwll.ch/2022/08/locking-hierarchy.html
UBC (Unified Buffer Cache, NetBSD) whitepaper: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.8528&rep=rep1&type=pdf
UVM (NetBSD's VM subsystem) paper: https://www.usenix.org/legacy/event/usenix99/full_papers/cranor/cranor.pdf
Slab allocator whitepaper: https://people.eecs.berkeley.edu/~kubitron/courses/cs194-24-S14/hand-outs/bonwick_slab.pdf
Most of lwn.net's blog posts, they are great and provide insightful knowledge on linux kernel internals
Page walk coherence: https://blog.stuffedcow.net/2015/08/pagewalk-coherence/
Great blog on windows, low level trickery and chromium: https://randomascii.wordpress.com/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment