mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-18 07:17:49 +00:00
Translate first two posts into Russian (#1029)
* preabule * Introduction * Introduction * Disactivation * Disablaing std * no_std * panic_handler * eh_personality * unwiding * start * entry point * summary * what's next * Details * fix: title * config * next post fix * tabs into spaces * fix: correct link to 02 post * fix: bad gateway * fix: typo error * TRANSITION TO SECOND POST * HEADER * PREAMBULE * BOOT SEQUENCE * BOOT BIOS * MULTIBOOT * UEFI * MINIMAL KERNEL * NIGHTLY INSTALL * SPECIFICATION JSON * BUILD * INTRISICS * DEFAULT TARGET * PRINTING TO SCREEN * BOOTIMAGE * FIRST BOOT * FINISH * RED ZONE * SIMD * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * FIX: CONTROVERSIAL MOMENTS * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/01-freestanding-rust-binary/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/disable-red-zone/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/disable-simd/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/disable-simd/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * Update blog/content/edition-2/posts/02-minimal-rust-kernel/index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * LANGUAGE ITEM * ALL OTHER MOMENTS * standarD * ADDITIONAL SETUP FILES * Update blog/content/_index.ru.md Co-authored-by: SnejUgal <contact@snejugal.ru> * WRONG LINKS Co-authored-by: SnejUgal <contact@snejugal.ru>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
+++
|
||||
title = "Отключение красной зоны"
|
||||
weight = 1
|
||||
path = "ru/red-zone"
|
||||
template = "edition-2/extra.html"
|
||||
+++
|
||||
|
||||
[Красная зона][red zone] — это оптимизация [System V ABI], которая позволяет функциям временно использовать 128 байт ниже своего стекового кадра без корректировки указателя стека:
|
||||
|
||||
[red zone]: https://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64#the-red-zone
|
||||
[System V ABI]: https://wiki.osdev.org/System_V_ABI
|
||||
|
||||
<!-- more -->
|
||||
|
||||

|
||||
|
||||
На рисунке показан стековый фрейм функции с `n` локальных переменных. При входе в функцию указатель стека корректируется, чтобы освободить место в стеке для адреса возврата и локальных переменных.
|
||||
|
||||
Красная зона определяется как 128 байт ниже скорректированного указателя стека. Функция может использовать эту зону для временных данных, которые не нужны при всех вызовах функции. Таким образом, в некоторых случаях (например, в небольших листовых функциях) можно обойтись без двух инструкций для корректировки указателя стека.
|
||||
|
||||
Однако такая оптимизация приводит к огромным проблемам при работе с исключениями или аппаратными прерываниями. Предположим, что во время использования функцией красной зоны происходит исключение:
|
||||
|
||||

|
||||
|
||||
Процессор и обработчик исключений перезаписывают данные в красной зоне. Но эти данные все еще нужны прерванной функции. Поэтому функция не будет работать правильно, когда мы вернемся из обработчика исключений. Это может привести к странным ошибкам, на отладку которых [уйдут недели][take weeks to debug].
|
||||
|
||||
[take weeks to debug]: https://forum.osdev.org/viewtopic.php?t=21720
|
||||
|
||||
Чтобы избежать подобных ошибок при реализации обработки исключений в будущем, мы отключим красную зону с самого начала. Это достигается путем добавления строки `"disable-redzone": true` в наш целевой конфигурационный файл.
|
||||
Reference in New Issue
Block a user