{% extends "edition-3/foundation.html" %} {% import "edition-3/macros.html" as macros %} {% import "snippets.html" as snippets %} {% block title %}{{ config.title }}{% endblock title %} {% block main %} {% set posts_section = get_section(path = "edition-3/posts/_index.md") %} {% set posts = posts_section.pages %} {{ section.content | replace(from="", to=macros::latest_post(posts=posts)) | replace(from="", to=macros::alpha_warning()) | safe }} {%- set chapter = "none" -%} {%- for post in posts -%} {%- if post.extra["chapter"] != chapter -%} {%- if not loop.first -%} {%- endif -%} {# Begin new chapter #} {%- set_global chapter = post.extra["chapter"] -%} {% set chapter_slug = chapter | slugify %}
Receive notifications about new posts and other major changes! You can either:
{{ status_updates.description }}
You are currently viewing the third edition of “Writing an OS in Rust”. In case you are interested in the older editions, you can still find them here:
Second Edition: The second
edition is based on older version of the bootloader crate, which uses the hardware-provided
VGA text buffer instead of a pixel-based framebuffer for screen output. Instead of the APIC, the legacy
PIC is used for implementing hardware interrupts. The second edition only works on BIOS-based systems,
not on the newer UEFI standard. read the second edition »
First Edition: The first edition was already started in 2015. It is very different in many aspects, for example it builds upon the GRUB bootloader instead of using the `bootloader` crate. This means that it requires you to manually write some assembly code and do an elaborate remap of the kernel's virtual pages in order to improve safety.read the first edition »
Note that the older editions are no longer updated and might no longer work or contain outdated information.