Что Linux mincore(2)
полезно для пользовательских приложений?
Я бы сказал, что это, скорее всего, основано на мнении. На ум приходят профилирование, статистика, оценка производительности и тому подобное. Кроме этого, я не могу думать о других реалистичных случаях использования.
Вот несколько примеров программ, которые я обнаружил, которые используют mincore
(как вы можете видеть, все профилирование / статистика):
Почему это подвергается непривилегированным пользователям?
На самом деле это был бы хороший вопрос около один год go, когда Семантика системного вызова не была четко определена, и существование такого системного вызова было довольно сомнительным. До версии ядра 4.14.2 mincore
фактически можно было использовать для утечки неинициализированной памяти ядра из пространства пользователя (см. CVE-2017-16994 и соответствующий отчет об ошибках Project Zero ).
С тех пор системный вызов был исправлен и его семантика обновлена. Единственное, что может сделать процесс, вызвав его, это запросить информацию о его карте виртуальной памяти. Ничего страшного на самом деле, только самопроверка, отсюда и доступность для непривилегированных процессов. Нет никакой реальной причины делать это привилегированным системным вызовом, который, если это будет сделано, также может рассматриваться как поломка API.