64 байта и одна константа: разбор переключения контекста в ядре на Rust

#Rust #Ассемблеру #Читать
64 байта и одна константа: разбор переключения контекста в ядре на Rust

В прошлый раз я писал про потерянное пробуждение и получил в комментариях справедливое замечание, что примитив там классический. Так и есть. Сегодня про место, где классики меньше: как в моём ядре устроено переключение контекста, и почему ассемблер там знает смещение поля в структуре Rust. Это неприятная связь. Ассемблеру нужен байтовый доступ к сохранённым регистрам, а раскладку структуры определяет компилятор. Если эти двое разойдутся во мнениях, вы не получите ошибку компиляции. Вы получите ядро, которое пишет регистры мимо и падает где-то далеко от места ошибки. Читать далее

В прошлый раз я писал про потерянное пробуждение и получил в комментариях справедливое замечание, что примитив там классический. Так и есть. Сегодня про место, где классики меньше: как в моём ядре устроено переключение контекста, и почему ассемблер там знает смещение поля в структуре Rust.

Это неприятная связь. Ассемблеру нужен байтовый доступ к сохранённым регистрам, а раскладку структуры определяет компилятор. Если эти двое разойдутся во мнениях, вы не получите ошибку компиляции. Вы получите ядро, которое пишет регистры мимо и падает где-то далеко от места ошибки.

Сам переключатель

asm

Похожие статьи

Выпущен первый смартфон Dreame Aurora iXBT.com
iXBT.com

Выпущен первый смартфон Dreame Aurora

Первая серийная модель флагманского смартфона Aurora, созданного компанией Dreame, уже передана заказчику.

iXBT.com
Поиск
Поиск

Российские ученые создали «умную» наносистему доставки нутрицевтиков

Российские учёные из Института биохимической физики им. Н.М. Эмануэля РАН (ИБХФ РАН) создали «умную» многослойную наносистему доставки липосомальной формы нутрицевтиков и впервые на молекулярном уровн...

Поиск
Индекс Мосбиржи, отчеты «Хэдхантера» и Совкомбанка: дайджест РБК
РБК

Индекс Мосбиржи, отчеты «Хэдхантера» и Совкомбанка: дайджест

Индекс Мосбиржи растерял почти весь рост с начала августа. «Хэдхантер» отчитался за полугодие и второй квартал. В пятницу инвесторы также будут оценивать финансовые результаты Совкомбанка

РБК
Разработка через «ИИ» отбирает у программистов состояние потока? Хабр
Хабр

Разработка через «ИИ» отбирает у программистов состояние потока?

Хочу обсудить с коллегами разработчиками один вопрос, чтобы понять — это лично моя проблема или нет, и если да — нашёл ли кто-то для неё решение? Эти руки пишут код...

Хабр
Выручка OpenAI превысила $40 млрд перед IPO Ведомости
Ведомости

Выручка OpenAI превысила $40 млрд перед IPO

Подробности читайте на vedomosti.ru

Ведомости
ИИ-модель DeepSeek V4 Pro выпущена официально 3DNews
3DNews

ИИ-модель DeepSeek V4 Pro выпущена официально

Специализирующийся на технологиях искусственного интеллекта китайский стартап DeepSeek объявил об официальном выпуске обновлённой модели V4 Pro, призванной помочь ему отыграть позиции у местных конкур...

3DNews