$put_perv_real = "/home/www/dvakompa-ru/dopol/"; ?>
Часть ёмкости там отдана под невидимую операционной системе таблицу аллокации блоков. Дело в том, что у жёсткого диска можно записать один сектор в 512 байт, и его для этого не нужно предварительно стирать. Если нам нужно изменить в файле в 1 мегабайт 1 байт, мы считаем, в каком секторе от начала он находится, читаем этот сектор, правим его и правленым записываем на то же место. На флэшке нельзя записать в уже записанную ячейку, прежде надо её стереть. Проблема в том, что циклов стирания у флэшки не так уж много (скажем, миллион), а стереть можно только блок размером 128 килобайт (а записать минимум страницу, в старых флэшках 512 байт, в новых 2 или 4 килобайта). Поэтому контроллер флэша «копит» данные, чтобы меньше раз записывать. Но данные копить слишком долго тоже нельзя, это чревато потерей данных при проблемах с питанием. Соответственно, когда мы хотим в уже записанном на флэшку файле изменить 1 байт, контроллер не будет сразу стирать блок в 128 килобайт, а посмотрит, нет ли свободной страницы в этом же блоке, и, если есть, запишет изменённое значение туда, а в таблице аллокации запишет, что страница такая-то временно заменяет страницу такую-то. И, только если свободного места меньше порогового значения, сотрёт блок, предварительно считав из него информацию, потом запишет обратно её же, кроме изменённого байта. Из-за этого флэшка, когда на ней остаётся мало свободного места, начинает изнашиваться при записи куда быстрее. Из-за невидимости таблицы аллокации доступное место на флэшке меньше, чем на жёстком диске такого же номинального объёма. Не следует путать таблицу аллокации с FAT — это разные сущности, FAT управляет операционная система, а таблицей аллокации — контроллер флэша.