LINUX.ORG.RU

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

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

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

но в ассемблерных реализациях есть ещё вариации по количеству аргументов. и к конкретным вызовам типа там read привязаны конкретные реализации, чтобы было быстрее.

Исправление Iron_Bug, :

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

но в ассемблерных реализациях есть ещё вариации по номерам аргументов. и к конкретным вызовам типа там read привязаны конкретные реализации, чтобы было быстрее.

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

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