LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Там всё хуже - ядро при exec'е засовывает то, что передал программист / runtime, в отдельный блок стека вместе с argv.

Что значит хуже? Вызывающий код передал пачку данных для вызываемого, ядро её положило в условленное место, что тебя не устроило то?

И по итогу у нас один сет на старте процесса, хер пойми какой сет во время работы и милостью сишного рантайма и костылями в ядре что-то третье при exec'е

Ты какую-то чушь пишешь. Есть то, что проге передали на старте, и есть то, что прога зачем-то себе исправила в глобальной переменной environ, поддерживаемой силами libc. Никакого третьего сета нет. Но ты разумеешься можешь написать код, который хоть десяток их хранит в условленных местах.

сишного рантайма

Нелепое словосочетание.

костылями в ядре

Нет в ядер никаких костылей, для него env это блоб, который одна прога передаёт другой через сисколл execve()/fexecve(). И все остальные exec-и, если что - это libc-шные обёртки над execve().

Исходная версия firkax, :

Там всё хуже - ядро при exec'е засовывает то, что передал программист / runtime, в отдельный блок стека вместе с argv.

Что значит хуже? Вызывающий код передал пачку данных для вызываемого, ядро её положило в условленное место, что тебя не устроило то?

И по итогу у нас один сет на старте процесса, хер пойми какой сет во время работы и милостью сишного рантайма и костылями в ядре что-то третье при exec'е

Ты какую-то чушь пишешь. Если то, что проге передали на старте, и есть то, что прога зачем-то себе исправила в глобальной переменной environ, поддерживаемой силами libc. Никакого третьего сета нет. Но ты разумеешься можешь написать код, который хоть десяток их хранит в условленных местах.

сишного рантайма

Нелепое словосочетание.

костылями в ядре

Нет в ядер никаких костылей, для него env это блоб, который одна прога передаёт другой через сисколл execve()/fexecve(). И все остальные exec-и, если что - это libc-шные обёртки над execve().