This is one of those things I take for granted, since I've been using linux for so many years. Linux isn't free from defragmentation. On any freshly built filesystem, you allocate files A, B, and C, then delete B, you have a hole in the middle; fragmentation. The difference is, Linux filesystem managers use some very sophisticated algorithms for keeping track of free space, far beyond the simple "quikcell" concept implemented in IBM's MVT operating system 40 years ago, where blocks free space of similar size were maintained in separate queues. These algorithms sufficiently efficient, unless you're changing the size of a disk partition, you never need to run a defragmentation program. The thing is, these algorithms are built with open-source, protected under the GPL (GNU Public License), which requires any developer that uses it to make their source code open-source also. Microsoft can't avail themselves of many of these concepts without opening their source code for anyone to see. They want their OS to remain proprietary; a huge disadvantage when it comes to future development.