Меня интересует способ, которым файлы Linux mmaps помещаются в основную память (в моем контексте это для выполнения, но я предполагаю, что процесс mmap одинаков для записи и чтения) и какой размер он использует.
Итак, я знаю, что Linux использует подкачку страниц размером обычно 4 КБ (где в ядре я могу найти этот размер?). Но что именно это означает для выделенной памяти: предположим, что у вас есть двоичный файл размером в несколько тысяч байтов, давайте просто скажем 5812B, и вы выполните его. Что происходит в ядре: выделяет ли оно 2 * 4 КБ, а затем копирует 5812 В в это пространство, тратя больше 3 КБ основной памяти на 2-й странице?
Было бы замечательно, если бы кто-нибудь знал файл в исходном коде ядра, где определяется размер страницы.
Мой второй вопрос также очень прост: я предположил, что размер файла - 5812B. Правильно ли, что этот размер просто взят из inode?