История изменений
Исправление xpahos, (текущая версия) :
У тебя есть форк, который создает новый процесс с той же таблицой страниц. Дальше ты вызываешь exec*, который сначала проверяет останется ли у тебя 3/4 на стеке для запуска бинарника и подсчитывает количество аргументов. Если все ок, то exec копирует параметры себе в структуру(binprm или как-то так называется, лень искать), ну и дальше уже в свою vma начинает копировать бинарник с последующим началом исполнения. Команды на 3.5Гб быть не может, длинна пути файла тоже лимитирована, аргументы окружения тоже лимитированы. После удачного запуска можешь почистить аргументы в родительском процессе, если выделил их в хипе.
Исходная версия xpahos, :
У тебя есть форк, который создает новый процесс с тем же таблицой страниц. Дальше ты вызываешь exec*, который сначала проверяет останется ли у тебя 3/4 на стеке для запуска бинарника и подсчитывает количество аргументов. Если все ок, то exec копирует параметры себе в структуру(binprm или как-то так называется, лень искать), ну и дальше уже в свою vma начинает копировать бинарник с последующим началом исполнения. Команды на 3.5Гб быть не может, длинна пути файла тоже лимитирована, аргументы окружения тоже лимитированы. После удачного запуска можешь почистить аргументы в родительском процессе, если выделил их в хипе.