Subscribe
Sign in
Home
Podcast
Notes
CPython Internals
AI
Computer Architecture
Linux Internals
x86-assembly
Contact Me
Archive
About
What Makes System Calls Expensive: A Linux Internals Deep Dive
An explanation of how Linux handles system calls on x86-64 and why they show up as expensive operations in performance profiles
READ THE LATEST
Most Popular
View all
What Every Developer Should Know About GPU Computing
Oct 18, 2023
•
Abhinav Upadhyay
306
10
How Unix Spell Ran in 64kB RAM
Jan 12
•
Abhinav Upadhyay
102
1
How Many Lines of C it Takes to Execute a + b in Python?
Dec 6, 2023
•
Abhinav Upadhyay
56
5
Two Threads, One Core: How Simultaneous Multithreading Works Under the Hood
Jul 24, 2024
•
Abhinav Upadhyay
54
3
Recent posts
View all
45:32
How to Leverage the CPU’s Micro-Op Cache for Faster Loops
Measuring, analyzing, and optimizing loops using Linux perf, Top-Down Microarchitectural Analysis, and the CPU’s micro-op cache
Aug 15
•
Abhinav Upadhyay
17
Big O vs Hardware: Better Complexity ≠ Better Performance
Why Your O(log n) Algorithm Might Lose to O(n)
Aug 3
•
Abhinav Upadhyay
49
x86 Assembly Exercise #1: Toy kill Program (Solution)
A step-by-step walkthrough of the toy kill program using raw Linux syscalls.
Jul 19
•
Abhinav Upadhyay
6
8:42
Understanding Registers and Data Movement in x86-64 Assembly
A hands-on guide to general-purpose registers and data movement in x86-64
Jul 16
•
Abhinav Upadhyay
12
A Programmer’s Guide to x86-64 Assembly (Series Overview)
Welcome to my ongoing series on x86-64 assembly programming, designed for programmers who want to peel back the abstraction and understand how code…
Jul 16
•
Abhinav Upadhyay
10
2
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts