You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. While we didn't merge any commits to our `main` branch this month, we made good process on the [UEFI rewrite](https://github.com/rust-osdev/bootloader/pull/130):
45
+
46
+
-[Update uefi crate to v0.7.0](https://github.com/rust-osdev/bootloader/commit/06f41a28c3227ea28e3d99c12237461b92130d07)
47
+
-[Add bootloader version to boot info](https://github.com/rust-osdev/bootloader/commit/0c33cec02a897585bf21d21bac5e1e72854b0a18)
48
+
-[Make boot info FFI-safe](https://github.com/rust-osdev/bootloader/commit/86d1db72fd334e34dcfc17c78540b8365a974199)
49
+
-[Start providing API docs for all public items](https://github.com/rust-osdev/bootloader/commit/92b069a3414f423789e9921107120c7231608360)
50
+
-[Add a test that checks boot info values](https://github.com/rust-osdev/bootloader/commit/dc1267b73faeb40fd0ee33f03331f3439f545b34)
51
+
-[Create FAT file system image from `.efi` image](https://github.com/rust-osdev/bootloader/commit/2ac0c8260ca2838ec461ea3a390a383f3cc82958)
52
+
-[Create a GPT disk image with an UEFI boot partition](https://github.com/rust-osdev/bootloader/commit/c7828d311f25acc4b9929ce80aadbea197cf5dd0)
53
+
-[Only copy first level 4 entry to bootloader page table](https://github.com/rust-osdev/bootloader/commit/14c4e62adb6e05128755646d7fd5f6990a2385c9)
54
+
55
+
41
56
### [`acpi`](https://github.com/rust-osdev/acpi)
42
57
43
58
The `acpi` repository contains crates for parsing the ACPI tables – data structures that the firmware of modern
@@ -73,7 +88,41 @@ In this section, we describe updates to personal projects that are not directly
73
88
74
89
<spanclass="gray">(Section written by [@phil-opp](https://github.com/phil-opp))</span>
75
90
76
-
This month, ...
91
+
We made good progress on the Persian and Japanese translations of the ["Writing an OS in Rust"](https://os.phil-opp.com/) blog this month:
92
+
93
+
-[Make index page translatable](https://github.com/phil-opp/blog_os/pull/899)
94
+
-[Improve multilingual support and Persian translation](https://github.com/phil-opp/blog_os/pull/901)
95
+
-[Persian translation of chapter Interrupts](https://github.com/phil-opp/blog_os/pull/904)
96
+
-[Fix layout of right-to-left in homepage and tables](https://github.com/phil-opp/blog_os/pull/896)
97
+
-[Adding tracking issue for Persian](https://github.com/phil-opp/blog_os/pull/909)
98
+
-[Translate post-04 to Japanese](https://github.com/phil-opp/blog_os/pull/903)
99
+
-[Translate common texts into Japanese](https://github.com/phil-opp/blog_os/pull/905)
100
+
-[Translate the index page to Japanese](https://github.com/phil-opp/blog_os/pull/907)
101
+
102
+
Thanks to [@hamidrezakp](https://github.com/hamidrezakp), [@MHBahrampour](https://github.com/MHBahrampour), [@woodyZootopia](https://github.com/woodyZootopia), and [@JohnTitor](https://github.com/JohnTitor) for creating the translations!
103
+
104
+
In addition to the new translations, we merged the following improvements:
105
+
106
+
-[Improve explanation for `BootInfoFrameAllocator::usable_frames`](https://github.com/phil-opp/blog_os/pull/897)
107
+
-[Added note to specify version 0.2.6 of volatile](https://github.com/phil-opp/blog_os/pull/910)
-[Remove trailing comma in JSON example](https://github.com/phil-opp/blog_os/pull/912)
111
+
-[Fix memory address in self-referential struct example](https://github.com/phil-opp/blog_os/commit/cd8e139ab0e3c7cd47de1845c354fc7ddfad4887)
112
+
113
+
Thanks to [@delta1](https://github.com/delta1), [@NickSchmitt](https://github.com/NickSchmitt), [@nana0-0](https://github.com/nana0-0), and [@EvanMu96](https://github.com/EvanMu96) for these contributions!
114
+
115
+
#### Third Edition
116
+
117
+
As I already mentioned in the previous posts, I'm working on a new 3rd edition of the blog. The new edition will be compatible with UEFI, use a pixel-based framebuffer, and utilize the APIC instead of the legacy PIC for interrupt handling.
118
+
119
+
As mentioned above, we added support for UEFI disk image creation to the new `bootloader` version this month. This made it finally possible to start the rewritten `blog_os` code in UEFI mode on real hardware:
120
+
121
+

122
+
123
+
This is an old Acer TravelMate laptop of mine, booting from a USB stick. The output shows that it successfully sets up the local and IO-APIC for interrupt handling and then listens for timer and keyboard interrupts, just as before. The screen output is now based on a pixel-based framebuffer, using the [`font8x8`](https://docs.rs/font8x8/0.2.7/font8x8/) crate for simple font rendering. The memory management code required almost no changes, since the interface provided by the bootloader stayed almost the same (there are only some differences in the memory map format).
0 commit comments