a solid-state drive (SSD)
/ S-S-D /
A hard disk is a record player; a solid-state drive is more like a vast grid of tiny light switches that remember their position with no power. An SSD stores data in flash memory — billions of cells that trap electric charge to hold bits — and has no moving parts at all. Because there is no arm to swing and no platter to spin, there is no seek time and no rotational latency: reaching any location takes about the same short time. That single fact is why SSDs feel so much snappier than disks, especially for random access.
Flash has its own quirky rules that the drive must hide. Flash is organized into pages (the unit you read or write, a few KB) grouped into much larger blocks (hundreds of pages). You can read a page freely and write an empty page, but here is the catch: you cannot overwrite a page in place — to rewrite it you must first erase, and erasing happens only a whole block at a time. This is erase-before-write. So updating one page means reading the block, erasing it, and rewriting it with the change — slow and wasteful if done naively. Worse, each block wears out after a limited number of erase cycles. Two pieces of firmware tame this: the flash translation layer remaps logical blocks to physical pages so writes can go to already-empty space, and wear leveling spreads erasures evenly so no block dies early (see flash-translation-layer and wear-leveling).
The result is storage with read and write latencies in microseconds rather than milliseconds, and random-access IOPS thousands of times higher than an HDD — and an NVMe SSD on PCIe pushes this further still. Honest caveats: writes are slower and more complicated than reads because of erase-before-write; performance can dip during background garbage collection; and flash cells wear out, so drives have finite write endurance. Still, for almost every workload an SSD beats a spinning disk decisively, which is why disks now survive mainly as cheap bulk capacity.
Update one 4 KB page that already holds data: the SSD does not overwrite it in place. The flash translation layer writes the new data to a fresh empty page, marks the old page invalid, and later a background pass erases whole blocks of invalid pages to reclaim them — all hidden behind a plain 'write block N' command.
'Overwrite' is an illusion: flash writes elsewhere and erases blocks in the background, because you cannot rewrite a page in place.
SSDs are not magic-fast at everything: writes are costlier than reads, sustained heavy writing can drop to a slower steady state once caches fill, and every cell has a finite erase-cycle lifetime. Wear is managed, not eliminated.