есть ли способ получить доступ к постоянной памяти в 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 году...

Другие вопросы по тегам