diff --git a/blog/content/second-edition/extra/disable-red-zone/index.md b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md similarity index 97% rename from blog/content/second-edition/extra/disable-red-zone/index.md rename to blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md index f8740dde..023e0af3 100644 --- a/blog/content/second-edition/extra/disable-red-zone/index.md +++ b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md @@ -2,7 +2,7 @@ title = "Disable the Red Zone" weight = 1 path = "red-zone" - +template = "second-edition/extra.html" +++ The [red zone] is an optimization of the [System V ABI] that allows functions to temporarily use the 128 bytes below its stack frame without adjusting the stack pointer: diff --git a/blog/content/second-edition/extra/disable-red-zone/red-zone-overwrite.svg b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/red-zone-overwrite.svg similarity index 100% rename from blog/content/second-edition/extra/disable-red-zone/red-zone-overwrite.svg rename to blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/red-zone-overwrite.svg diff --git a/blog/content/second-edition/extra/disable-red-zone/red-zone.svg b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/red-zone.svg similarity index 100% rename from blog/content/second-edition/extra/disable-red-zone/red-zone.svg rename to blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/red-zone.svg diff --git a/blog/content/second-edition/extra/disable-simd/index.md b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md similarity index 98% rename from blog/content/second-edition/extra/disable-simd/index.md rename to blog/content/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md index 6810ddf6..da46183f 100644 --- a/blog/content/second-edition/extra/disable-simd/index.md +++ b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md @@ -2,7 +2,7 @@ title = "Disable SIMD" weight = 2 path = "disable-simd" - +template = "second-edition/extra.html" +++ [Single Instruction Multiple Data (SIMD)] instructions are able to perform an operation (e.g. addition) simultaneously on multiple data words, which can speed up programs significantly. The `x86_64` architecture supports various SIMD standards: diff --git a/blog/content/second-edition/posts/02-minimal-rust-kernel/index.md b/blog/content/second-edition/posts/02-minimal-rust-kernel/index.md index 1f77204c..b915850c 100644 --- a/blog/content/second-edition/posts/02-minimal-rust-kernel/index.md +++ b/blog/content/second-edition/posts/02-minimal-rust-kernel/index.md @@ -169,7 +169,7 @@ This setting specifies that the target doesn't support [stack unwinding] on pani We're writing a kernel, so we'll need to handle interrupts at some point. To do that safely, we have to disable a certain stack pointer optimization called the _“red zone”_, because it would cause stack corruptions otherwise. For more information, see our separate post about [disabling the red zone]. -[disabling the red zone]: @/second-edition/extra/disable-red-zone/index.md +[disabling the red zone]: @/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md ```json "features": "-mmx,-sse,+soft-float", @@ -183,7 +183,7 @@ The `mmx` and `sse` features determine support for [Single Instruction Multiple A problem with disabling SIMD is that floating point operations on `x86_64` require SIMD registers by default. To solve this problem, we add the `soft-float` feature, which emulates all floating point operations through software functions based on normal integers. -For more information, see our post on [disabling SIMD](@/second-edition/extra/disable-simd/index.md). +For more information, see our post on [disabling SIMD](@/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md). #### Putting it Together Our target specification file now looks like this: diff --git a/blog/templates/macros.html b/blog/templates/macros.html index 406a1ef2..061dac66 100644 --- a/blog/templates/macros.html +++ b/blog/templates/macros.html @@ -3,7 +3,7 @@
{{ config.extra.subtitle | replace(from=" ", to=" ") | safe }}
{% block header %}{% endblock header %} diff --git a/blog/templates/second-edition/index.html b/blog/templates/second-edition/index.html index 1e9b75b5..38267733 100644 --- a/blog/templates/second-edition/index.html +++ b/blog/templates/second-edition/index.html @@ -55,26 +55,8 @@You are currently viewing the second edition of “Writing an OS in Rust”. The first edition is very different in many aspects, for example it builds upon the GRUB bootloader instead of using the `bootloader` crate. In case you're interested in it, it is still available. Note that the first edition is no longer updated and might contain outdated information. read the first edition »
+