beldmit: (Программизм)
[personal profile] beldmit
Узнал тут из переписки в криптографической рассылке о функциях mlock/munlock. Почитал man-ы. К счастью, по разным операционкам. И кажется мне, что эти функции сильно недоделаны.

То, что оно позволяет блокировать в памяти от помещения в swap всю страницу целиком, это нормально и по-другому скорее всего не делается. То, что в половине операционок может быть вызваны только из-под рута (под Линуксом не так, там можно задать количество для не-рута через ulimit начиная с ядра 2.6.9), это уже большой привет. То, что там нет встроенного счетчика, сколько раз страницу лочили, и единственный вызов munlock разблокирует страницу, залоченную трижды – уже хуже, поскольку вынуждает сотворить собственный менеджер памяти, пусть даже вырожденный, системы «залочил страницу и отдаем по кусочку, все ценное туда» – совсем уже нехорошо.

А жалко. Потому как функциональность полезная.

Update: В комменты пришел [livejournal.com profile] dmih и рассказал про виртуализацию и ее издержки. Да, скорее всего все эти прелести в условиях виртуализации действительно неактуальны.

Date: 2014-05-11 12:13 pm (UTC)
From: [identity profile] p_govorun.livejournal.com
А зачем лочить дважды? Залочил страницу, положил ключ, потёр ключ, разлочил страницу.

Date: 2014-05-11 02:37 pm (UTC)
From: [identity profile] dmih.livejournal.com
Вообще это должно быть API уровня ОС. Потому что то, что названо (не свопить) - это частный случай какой-то.
Есть еще миллион способов в современной ОС и компьютере, который довольно таки сложен уже, получить или не получить чужую память. Реализация этих способов зависит от ОС, это ну никак, потому что нет тут общего в архитектурах, это буквально может даже от возможности процессора зависеть даже на одинаковых с виду компьютерах.
Соответственно в Win32 есть какое-то crypto-API на эту тему, ну и так далее.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 13th, 2026 03:52 pm
Powered by Dreamwidth Studios