logical block addressing
/ LBA /
Imagine a hotel that used to give directions like 'go to the third building, fourth floor, second door on the left'. Confusing — and useless the moment they renovate. So instead they just number every room in the hotel 0, 1, 2, 3, ... in one long list, and a guest only needs a single room number. Logical block addressing does this for a disk: instead of naming data by its physical cylinder, head, and sector, the drive presents one long, flat sequence of numbered blocks, and software just asks for 'block 1492'.
Concretely, the drive exposes its storage as an array of fixed-size logical blocks numbered 0 up to (number of blocks minus 1). When the OS wants some data it issues a request like 'read 8 blocks starting at LBA 50000', and the drive's own controller translates that flat number into whatever physical location currently holds it — the right surface, track, and sector. The OS does not know or care about the true geometry. The drive is free to lay blocks out cleverly (outer tracks hold more sectors, so equal-numbered blocks are not equally spaced) and to quietly remap a block to a spare sector if its original spot goes bad.
Why it matters: LBA is the clean abstraction that hides messy, evolving hardware behind a stable interface — a perfect example of the OS-and-hardware contract. It lets the same OS code drive any disk or SSD without knowing its internals, lets drives improve and self-repair without breaking software, and is essential for big drives where the old CHS scheme ran out of address bits. The flip side: because the physical layout is hidden, the OS can only guess at locality. It assumes that nearby LBA numbers are physically nearby (usually true on a disk, and the basis for sequential-access speedups), but on an SSD that assumption barely matters since there is no seek penalty anyway.
A 1 TB drive with 4 KB blocks exposes blocks 0 through about 250 million. The file system says 'write blocks 12000 to 12007'; the drive figures out exactly where those eight blocks live and, if block 12003's sector has gone bad, transparently redirects it to a reserved spare — the OS never notices.
One flat number list hides the drive's physical reality.
LBA gives a clean numbering but it is only a hint about physical locality, not a guarantee. The drive may store consecutive LBAs far apart (after remapping), so 'sequential' LBAs are not always physically sequential.