This commit is contained in:
travis-update-bot
2016-01-10 11:54:43 +00:00
parent 90aded2bad
commit 8d00795640
2 changed files with 4 additions and 4 deletions

View File

@@ -326,7 +326,7 @@ use spin::Mutex;
pub static WRITER: Mutex<Writer> = Mutex::new(Writer { pub static WRITER: Mutex<Writer> = Mutex::new(Writer {
column_position: 0, column_position: 0,
color_code: ColorCode::new(Color::LightGreen, Color::Black), 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. [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 ## Other Rust OS Projects
Now that you know the very basics of OS development in Rust, you should also check out the following 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). _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 [Rust Bare-Bones Kernel]: https://github.com/thepowersgang/rust-barebones-kernel
[higher half]: http://wiki.osdev.org/Higher_Half_Kernel [higher half]: http://wiki.osdev.org/Higher_Half_Kernel

View File

@@ -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"); let memory_map_tag = boot_info.memory_map_tag().expect("Memory map tag required");
println!("memory areas:"); 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); 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: Now we can test it by adding some frame allocations:
```rust ```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). 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).