История изменений
Исправление Deleted, (текущая версия) :
Похоже в ядре этот флаг преобразовывается в VM_GROWSDOWN, который таки используется.
Видимо возможности этого флага как-то сильно ограничили, но до конца не удалили. Поэтому он работает не так как обещано маном.
Гуглятся обрывки информации о том, что этот флаг всё ещё используется для стека основного потока приложения, но стеки потоков рулятся в libc полностью силами юзерспейса. То есть видимо обработкой соответствующих сигналов с последующим подсовыванием свежей страницы памяти туда, где упало. Либо просто выделяют с очень большим запасом и надеются, что ядро не будет выделять эти страницы физически до того, как туда кто-то попытается записать что-то.
Чтобы детально разобрать как работает это хрень, надо читать исходники ядра и libc.
Исправление Deleted, :
Похоже в ядре этот флаг преобразовывается в VM_GROWSDOWN, который таки используется.
Видимо возможности этого флага как-то сильно ограничили, но до конца не удалили. Поэтому он работает не так как обещано маном.
Гуглятся обрывки информации о том, что этот флаг всё ещё используется для стека основного потока приложения, но стеки потоков рулятся в libc полностью силами юзерспейса. То есть видимо обработкой соответствующих сигналов с последующим подсовыванием свежей страницы памяти туда, где упало.
Исходная версия Deleted, :
Похоже в ядре этот флаг преобразовывается в VM_GROWSDOWN, который таки используется.
Похоже возможности этого флага как-то сильно ограничили, но до конца не удалили. По этому он работает не так как обещано маном.
Гуглятся обрывки информации о том, что этот флаг всё ещё используется для стека основного потока приложения, но стеки потоков рулятся в libc полностью силами юзерспейса. То есть видимо обработкой соответствующих сигналов с последующим подсовыванием свежей страницы памяти туда, где упало.