История изменений
Исправление Iron_Bug, (текущая версия) :
это стандартная библиотека. она привязана к реализациям компилятора, к ABI. и вызов syscall идёт через ассемблерные прослойки, специфические для конкретной архитектуры. а там в конкретные регистры записываются шесть значений. и эти регистры зафиксированы в ABI. даже если конкретному вызову не нужны все шесть, ядро не возьмёт ничего лишнего из других регистров. а контекст при ядерных вызовах всегда сохраняется. тут нет никакого криминала. это уже не юзерский уровень.
но в ассемблерных реализациях есть ещё вариации по количеству аргументов. и к конкретным вызовам типа там read привязаны конкретные реализации, чтобы было быстрее.
Исправление Iron_Bug, :
это стандартная библиотека. она привязана к реализациям компилятора, к ABI. и вызов syscall идёт через ассемблерные прослойки, специфические для конкретной архитектуры. а там в конкретные регистры записываются шесть значений. и эти регистры зафиксированы в ABI. даже если конкретному вызову не нужны все шесть, ядро не возьмёт ничего лишнего из других регистров. а контекст при ядерных вызовах всегда сохраняется. тут нет никакого криминала. это уже не юзерский уровень.
но в ассемблерных реализациях есть ещё вариации по номерам аргументов. и к конкретным вызовам типа там read привязаны конкретные реализации, чтобы было быстрее.
Исходная версия Iron_Bug, :
это стандартная библиотека. она привязана к реализациям компилятора, к ABI. и вызов syscall идёт через ассемблерные прослойки, специфические для конкретной архитектуры. а там в конкретные регистры записываются шесть значений. и эти регистры зафиксированы в ABI. даже если конкретному вызову не нужны все шесть, ядро не возьмёт ничего лишнего из других регистров. а контекст при ядерных вызовах всегда сохраняется. тут нет никакого криминала. это уже не юзерский уровень.