TGViewer
Linux Education Linux Education @linux_education · 11.1K subscribers
Post #2748 1.07K
⚡️ Linux умеет передавать страницы памяти ядру почти без копирования

Есть малоизвестный системный вызов vmsplice().

Он позволяет отобразить пользовательские страницы памяти прямо в pipe:


struct iovec iov = {
.iov_base = buf,
.iov_len = len
};

vmsplice(pipefd[1], &iov, 1, SPLICE_F_GIFT);


Самая интересная часть — SPLICE_F_GIFT.

Этим флагом userspace фактически говорит ядру: эти страницы памяти можно считать переданными тебе.

Это используется в zero-copy/low-copy сценариях, где хочется минимизировать лишние копирования между userspace и kernel space.

Но есть нюанс: после такой передачи нельзя относиться к этим страницам как к обычной памяти и спокойно менять их содержимое.

Очень низкоуровневая штука, но отличный пример того, насколько далеко Linux позволяет зайти в оптимизации I/O.

@linux_education
  • ❤ 1
More from @linux_education
  1. Oct 14, 2026@linux_education
  2. Oct 13, 2026Post #2852
  3. Oct 13, 2026‍🚨 ИИ-черви могут научиться размножаться без дата-центров Anthropic проверила, достаточно…
  4. Oct 12, 2026Post #2850
  5. Oct 12, 2026🐧 Линус Торвальдс использует Claude Code для ускорения ядра Linux. Он опубликовал экспери…
  6. Oct 11, 2026🧮 Математика для ИИ на русском: от школьной базы до трансформеров и диффузии Бесплатный к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →