How NAND Flash and the FTL Work: Pages, Erase Blocks, and Why a Small Write Rewrites a Block
A database that updates a 4 KiB page does not update a 4 KiB cell on the SSD. The host sends a logical block address. The drive's flash ...
A database that updates a 4 KiB page does not update a 4 KiB cell on the SSD. The host sends a logical block address. The drive's flash ...
A database that updates a 4 KiB page does not update a 4 KiB cell on the SSD. The host sends a logical block address. The drive's flash ...
A call to puts in a normal C binary is not a direct jump to libc. The machine code in the executable names a procedure-linkage-table stub. ...
A prefork server that looked cheap in RSS before the first request can double its memory after workers start handling traffic. fork did not...
An open("/var/log/app.log", O_RDONLY) does not hand the kernel a file. It hands the kernel a string. The Virtual File System (VFS...
A static file server that uses read() into a user buffer and write() onto a socket copies every byte twice through the CPU: page cache to ...
A NIC that just received a frame cannot wait for the current process to finish a syscall. The device raises a hardware interrupt. The CPU st...
A process that spends all its time in a tight userspace loop never notices SIGTERM until the kernel has a chance to put that process back on...
A process asks for a few bytes from a file. The kernel may return them without asking the storage device for anything at all—not because the...
A mutex that takes a system call on every lock and unlock would dominate a hot critical section. The uncontended case is a few atomic instru...
A process that accepts ten thousand TCP connections cannot afford to ask the kernel about each socket in turn. select(2) and poll(2) copy ...
A shared linked list in the kernel can be walked by thousands of cores at once. A writer still has to insert or delete a node. If every walk...