У меня много кода в разделяемой библиотеке ELF, которая используется только во время инициализации библиотеки (она вызывается из статических инициализаторов). Если я помещу этот код в отдельный раздел (или, возможно, он может пойти в раздел .init), что я могу сделать с помощью __attribute__((section(".mysection")))
, есть ли способ заставить этот раздел выгружаться после загрузки библиотеки?
Этот вопрос связан, но был сделан вывод, что ядро будет выгружать неиспользуемые страницы, когда ему не хватает памяти, поэтому нет необходимости делать это явно. Однако я работаю во встроенной среде, где память стоит дорого, а стоимость подкачки кода с диска (медленная USB-флешка) высока. Поэтому я бы предпочел явно сбросить этот код, который, как я знаю, никогда не будет использоваться снова, вместо того, чтобы ядро решило сбросить какой-то другой код, который в конечном итоге, возможно, потребуется перенести обратно.
Я уверен, что я помню, как читал о системном вызове, чтобы попросить ядро создать страницу в определенных областях памяти или из нее, хотя я нигде не могу найти ссылки на это, так что, возможно, я представил это. Существует ли такая вещь?