TGViewer
Linux Education Linux Education @linux_education · 11.1K subscribers
Post #2385 1.41K
‍Pointer tagging: как рантаймы прячут данные прямо внутри указателя

В x86-64 Linux пользовательские процессы обычно используют не все 64 бита адреса. На практике адреса занимают около 48 бит, а верхние биты часто остаются свободными.

И вот тут начинается низкоуровневая магия.

Некоторые рантаймы кладут в эти верхние биты служебную информацию: тип объекта, флаги, состояние GC, короткий идентификатор или другой metadata-tag. Перед разыменованием указатель очищается маской, и процессор снова видит обычный валидный адрес.

Это называется pointer tagging.

Зачем это нужно:

- можно хранить метаданные без отдельной структуры
- меньше аллокаций
- лучше cache locality
- быстрее проверка типа или состояния объекта
- меньше overhead в рантайме

Такой подход используют Lisp-рантаймы, garbage collectors, JavaScript-движки и VM, где каждый байт и каждый лишний переход по памяти имеют значение.

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

@linux_education
  • 👍 2
  • ❤ 1
More from @linux_education
  1. Oct 17, 2026🗝 Claude разгадал 26-летнюю загадку криптографии за 30 минут Когда АНБ передало числа, из…
  2. Oct 17, 2026Post #2861
  3. Oct 17, 2026@linux_education
  4. Oct 17, 2026Post #2859
  5. Oct 17, 2026‍🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем каже…
  6. Oct 15, 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 →