Можно ли сказать ядру, эй, область адреса, которая идет от адреса X к X + размер запрещен, в том смысле, что там не может быть никаких отображений. Я не хочу, чтобы этот регион был заполнен областями виртуальной памяти.
Я пытаюсь добиться следующего:
У меня есть отображаемая область размером 4 ГБ, и я хочу убедиться, что в случае переполнения при чтении или записи (например, слишком большое смещение) до или после региона , должен произойти сегментный сбой. Я не хочу, чтобы переполнение случайно завершилось успешно, потому что там есть что-то еще.
Максимально возможное переполнение — 4 ГБ. Я знаю, что затем могу создать mmap размером 4 * 3 ГиБ с PROT_NONE, а затем добавить фактические разрешения в центральную область 4 ГБ, но это приведет к тому, что процесс будет иметь 12 ГБ виртуальной памяти, что может напугать некоторых людей (даже если ОЗУ не используется). на самом деле потрачено впустую).
Поэтому я хотел бы убедиться, что до и после моей области памяти буквально есть пустота, которая достаточно велика (где в моем случае достаточно большой означает 4 ГБ), чтобы убедиться, что нет возможное переполнение случайно произойдет.
Вопрос очень простой: [list] [*]Можно ли сказать ядру, эй, область адреса, которая идет от адреса X к X + размер запрещен, в том смысле, что там не может быть никаких отображений. Я не хочу, чтобы этот регион был заполнен областями виртуальной памяти. [/list] Я пытаюсь добиться следующего: [list] [*]У меня есть отображаемая область размером 4 ГБ, и я хочу убедиться, что в случае переполнения при чтении или записи (например, слишком большое смещение) до или после региона , должен произойти сегментный сбой. Я не хочу, чтобы переполнение случайно завершилось успешно, потому что там есть что-то еще. [*]Максимально возможное переполнение — 4 ГБ. Я знаю, что затем могу создать mmap размером 4 * 3 ГиБ с PROT_NONE, а затем добавить фактические разрешения в центральную область 4 ГБ, но это приведет к тому, что процесс будет иметь 12 ГБ виртуальной памяти, что может напугать некоторых людей (даже если ОЗУ не используется). на самом деле потрачено впустую). [*]Поэтому я хотел бы убедиться, что до и после моей области памяти буквально есть пустота, которая достаточно велика (где в моем случае достаточно большой означает 4 ГБ), чтобы убедиться, что нет возможное переполнение случайно произойдет. [/list] Возможно ли это вообще?