diff --git a/blog/content/edition-3/posts/02-booting/index.md b/blog/content/edition-3/posts/02-booting/index.md index f1912b67f..9666da0d4 100644 --- a/blog/content/edition-3/posts/02-booting/index.md +++ b/blog/content/edition-3/posts/02-booting/index.md @@ -12,6 +12,8 @@ icon = ''' ''' + +extra_content = ["uefi.md"] +++ In this post, we explore the boot process on both BIOS and UEFI-based systems. We combine the [minimal kernel] created in the previous post with a bootloader to create a bootable disk image. We then show how this image can be started in the [QEMU] emulator and run on real hardware. @@ -144,12 +146,9 @@ Bootloaders and kernels typically need additional information about the system, As it is probably clear at this point, the UEFI interface is very powerful and complex. The wide range of functionality makes it even possible to write an operating system directly as an UEFI application, using the UEFI services provided by the system table instead of creating own drivers. In practice, however, most operating systems use UEFI only for the bootloader since own drivers give you better performance and more control over the system. We will also follow this path for our OS implementation. -To keep this post focused, we won't cover the creation of an UEFI bootloader here. Instead, we will use the already mentioned [`bootloader`] crate, which allows loading our kernel on both UEFI and BIOS systems. - -If you're interested in how to create an UEFI bootloader: We are planning to cover this in detail in a separate series of posts. If you can't wait, check out our [`uefi` crate] and the [_An EFI App a bit rusty_] post by Gil Mendes. +To keep this post focused, we won't cover the creation of an UEFI bootloader here. Instead, we will use the already mentioned [`bootloader`] crate, which allows loading our kernel on both UEFI and BIOS systems. If you're interested in how to create an UEFI bootloader yourself, check out our extra post about [**UEFI Booting**]. -[_An EFI App a bit rusty_]: https://gil0mendes.io/blog/an-efi-app-a-bit-rusty/ -[`uefi` crate]: https://github.com/rust-osdev/uefi-rs/ +[**UEFI Booting**]: @/edition-3/posts/02-booting/uefi.md ### The Multiboot Standard diff --git a/blog/content/edition-3/posts/02-booting/uefi.md b/blog/content/edition-3/posts/02-booting/uefi.md new file mode 100644 index 000000000..1e3163998 --- /dev/null +++ b/blog/content/edition-3/posts/02-booting/uefi.md @@ -0,0 +1,22 @@ ++++ +title = "UEFI Booting" +path = "booting/uefi" +date = 0000-01-01 +template = "edition-3/page.html" + +[extra] +hide_next_prev = true +icon = ''' + + + + + +''' ++++ + +This post is an addendum to our main [**Booting**] post. It explains how to create a basic UEFI bootloader from scratch. + +[**Booting**]: @/edition-3/posts/02-booting/index.md + + diff --git a/blog/sass/css/edition-3/main.scss b/blog/sass/css/edition-3/main.scss index c6b864801..9a852ea2a 100644 --- a/blog/sass/css/edition-3/main.scss +++ b/blog/sass/css/edition-3/main.scss @@ -1043,3 +1043,12 @@ a strong { .chapter-introduction { margin-bottom: 1.5rem; } + +.post-extra-content { + margin-top: 1rem; + font-style: italic; +} + +.post-extra-content h4 { + display: inline; +} diff --git a/blog/templates/edition-3/macros.html b/blog/templates/edition-3/macros.html index 291b6da7b..6e190feef 100644 --- a/blog/templates/edition-3/macros.html +++ b/blog/templates/edition-3/macros.html @@ -20,6 +20,19 @@

{{ post.title }}read more ยป + {% if page.extra.extra_content %} + + {% endif %} + {%- if lang and not_translated and lang != config.default_language -%}