Почему нет сети с нулевым копированием в ядре Linux? [закрыто]

Я хотел бы знать причины, по которым ядро ​​Linux (или любая другая основная ОС) не имеет функции для создания сетей с нулевым копированием? Под нулевым копированием я подразумеваю, что пакет / поток данных не копируется для передачи приложению в пространстве пользователя, а, например, использует распределитель типа пула памяти для разделения памяти между ядром и пространством пользователя. Я придумал 3 теории самостоятельно:

а) Я думаю, есть проблемы с безопасностью. Но действительно ли нет способа сделать память распределенной между пользовательским пространством и ядром, когда они просто используются в качестве буфера?

б) Я думаю, есть проблемы со стабильностью. Но мы не можем предположить, что тот, кто использует сеть с нулевой копией и, например нужно создать экземпляр и передать пул памяти для вызова ядра знает об управлении памятью? Достаточно осведомлен, чтобы избежать утечек?

в) Это просто не было сделано / необходимо до сих пор. Я не могу себе представить, что никто не запрашивал эту функцию, так как все, кто использует пакеты небольшого размера, обычно находятся в узком месте из-за «медленной» реализации TCP-стека, и существуют сторонние инструменты, предлагаемые для сетей с 0 копиями для использования со специальными сетевые карты.

Не стесняйтесь публиковать любые предположения, но, пожалуйста, отметьте, если вы предполагаете, или у вас есть более глубокие знания о причинах сохранения качества StackOverflow :-)

Ответы на вопрос(1)

Ваш ответ на вопрос