есть ли способ получить доступ к постоянной памяти в Linux?
Я работаю с постоянной памятью в Linux(Debian 10)
Я использую ядро Linux 5.0.3, и у меня есть вопрос.
насколько я понимаю, Linux представляет постоянную память как диск и отображает ее virt_addr.
таким образом, ОС получает доступ к постоянной памяти через файловую систему через ядро. но я думаю, что это своего рода накладные расходы. если постоянная память уже была отображена в память, гораздо эффективнее обращаться к ней напрямую через virt_addr.
поэтому я хочу знать, есть ли способ запустить virt_addr постоянной памяти в ядре.
Спасибо.
2 ответа
В настоящее время (насколько мне известно) энергонезависимая память слишком нова и слишком редка / экзотична, и никто не знает, что с ней делать (кроме как обращаться с ней как с быстрым SSD).
Обратите внимание, что (для общего использования, за пределами HPC) существует несколько серьезных проблем. А именно:
а) Нет гарантии, что какая-то другая ОС (или утилита) не загрузится и не удалит все, что осталось в энергонезависимой памяти; так что вы вообще не можете считать его энергонезависимым. Примечание. Я все еще надеюсь, что однажды кто-то, кто сможет влиять на всех поставщиков операционных систем (например, сама Intel или консорциум UEFI), сможет сказать: "Эй, вся энергонезависимая память должна быть отформатирована с помощью GPT. разбиение на разделы, чтобы области, используемые одной ОС, не были вытеснены другой ОС; и этот конкретный GUID должен использоваться для областей, зарезервированных для изменчивых вещей, которые любая ОС может удалить ".
б) Без шифрования это значительно увеличивает риск "атак холодной загрузки". В частности, для конфиденциальной информации (пароли, ключи и т. Д.) Вы отчаянно хотите хранить ее в энергозависимом месте, а энергонезависимая память только усугубляет ситуацию. Примечание. Последние процессоры AMD и Intel поддерживают шифрование (физической памяти); но я не знаю, насколько хорошо он поддерживается в различных ядрах, и я полностью ожидаю, что (если он вообще поддерживается) он поддерживается очень плохо (например, в "всегда платите цену за шифрование даже для данных, которые просто не нуждаются в it "способом, который побуждает всех отключить его для повышения производительности).
«Доступ ОС к постоянной памяти через файловую систему», но это не единственный способ.
Вы можете настроить постоянную память как
devdax
режиме и управлять им без помощи файловой системы.
$ndctl create-namespace -m dax -e namespace0.0 -f
Вы должны проверить libpmem2 , чтобы узнать больше.
PS: @Brendan только что заставил меня подумать, что я был в 2015 году...