diff --git a/_posts/2015-10-23-printing-to-screen.md b/_posts/2015-10-23-printing-to-screen.md index b3884623..f746518e 100644 --- a/_posts/2015-10-23-printing-to-screen.md +++ b/_posts/2015-10-23-printing-to-screen.md @@ -326,7 +326,7 @@ use spin::Mutex; pub static WRITER: Mutex = Mutex::new(Writer { column_position: 0, color_code: ColorCode::new(Color::LightGreen, Color::Black), - buffer: Unique::new(0xb8000 as *mut _), + buffer: unsafe { Unique::new(0xb8000 as *mut _) }, }); ``` [Mutex::new] is a const function, too, so it can be used in statics. @@ -422,7 +422,7 @@ The [next post] describes the Multiboot information structure and creates a fram ## Other Rust OS Projects Now that you know the very basics of OS development in Rust, you should also check out the following projects: -- [Rust Bare-Bones Kernel]: A basic kernel with roughly the same functionality as ours. Writes output to the serial port instead of the VGA buffer and maps the kernel to the [higher half] \(instead of our identity mapping). +- [Rust Bare-Bones Kernel]: A basic kernel with roughly the same functionality as ours. Writes output to the serial port instead of the VGA buffer and maps the kernel to the [higher half] \(instead of our identity mapping). _Note_: You need to [cross compile binutils] to build it (or you create some symbolic links[^fn-symlink] if you're on x86_64). [Rust Bare-Bones Kernel]: https://github.com/thepowersgang/rust-barebones-kernel [higher half]: http://wiki.osdev.org/Higher_Half_Kernel diff --git a/_posts/2015-11-15-allocating-frames.md b/_posts/2015-11-15-allocating-frames.md index 230c4263..4c19f22d 100644 --- a/_posts/2015-11-15-allocating-frames.md +++ b/_posts/2015-11-15-allocating-frames.md @@ -69,7 +69,7 @@ let boot_info = unsafe{ multiboot2::load(multiboot_information_address) }; let memory_map_tag = boot_info.memory_map_tag().expect("Memory map tag required"); println!("memory areas:"); -for area in emory_map_tag.memory_areas() { +for area in memory_map_tag.memory_areas() { println!(" start: 0x{:x}, length: 0x{:x}", area.base_addr, area.length); } ``` @@ -361,7 +361,7 @@ let mut frame_allocator = memory::AreaFrameAllocator::new( Now we can test it by adding some frame allocations: ```rust -println!("{:?}", frame_allocator.allocate_frame()) +println!("{:?}", frame_allocator.allocate_frame()); ``` You will see that the frame number starts at `0` and increases steadily, but the kernel and Multiboot frames are left out (you need to allocate many frames to see this since the kernel starts at frame 256).