home.social

#xsave — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #xsave, aggregated by home.social.

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

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

    habr.com/ru/articles/1068066/

    #rust #ассемблер #переключение_контекста #ядро #операционные_системы #системное_программирование #x8664 #no_std #fpu #xsave

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

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

    habr.com/ru/articles/1068066/

    #rust #ассемблер #переключение_контекста #ядро #операционные_системы #системное_программирование #x8664 #no_std #fpu #xsave

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

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

    habr.com/ru/articles/1068066/

    #rust #ассемблер #переключение_контекста #ядро #операционные_системы #системное_программирование #x8664 #no_std #fpu #xsave