Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here

blog_os

Writing an OS in Rust

Subscribe to updates I use blog_os


Statistics on blog_os

Number of watchers on Github 1283
Number of open issues 39
Average time to close an issue 5 days
Main language Rust
Average time to merge a PR about 12 hours
Open pull requests 6+
Closed pull requests 10+
Last commit over 1 year ago
Repo Created about 4 years ago
Repo Last Updated over 1 year ago
Size 2.19 MB
Homepage http://os.phil-op...
Organization / Authorphil-opp
Contributors9
Page Updated
Do you use blog_os? Leave a review!
View open issues (39)
View blog_os activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating blog_os for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Blog OS

Build Status Join the chat at https://gitter.im/phil-opp/blog_os

This repository contains the source code for the Writing an OS in Rust series at os.phil-opp.com.

Bare Bones

Memory Management

Exceptions

Additional Resources

Building

You need to have nasm, grub-mkrescue, mformat (included in mtools), xorriso, qemu, a nightly Rust compiler, and xargo installed. Then you can run it using make run.

Please file an issue if you run into any problems.

License

The source code is dual-licensed under MIT or the Apache License (Version 2.0). This excludes the blog directory.

blog_os open issues Ask a question     (View All Issues)
  • almost 3 years Some comment/question for β€œSet Up Rust”
  • about 3 years Recommend wrimg for burning images
  • about 3 years Use new ElfSectionsTag::string_table to print section names
  • about 3 years Use new panic-strategy field in custom target?
  • about 3 years Use redox-os/ralloc?
  • about 3 years Fix private_in_public problems in the Page Tables post
  • about 3 years Add a β€œcompiling on other operating systems” guide
  • over 3 years Avoid data race on output buffer
  • over 3 years PhysicalAddress and VirtualAddress types probably shouldn't be interoperable
  • over 3 years ARM port?
  • almost 4 years Flush tlb also on `map_to` for exotic CPUs
  • almost 4 years [Page Tables] Do we need atomics for `Entry`?
  • almost 4 years Mac OS support
  • over 2 years Code snippet not changed over in Set Up Rust
  • over 2 years Entering Long Mode: Mention physical address bits in the table describing a page table entry
  • over 2 years Boot failed: Could not read from CDROM (code 0009)
  • over 2 years Wrong link at bottom
  • over 2 years Recursive mapping question
  • over 2 years undefined reference to rust_begin_unwind error
  • over 2 years .bss section is not zeroed
  • over 2 years Do we need to save callee saved registers in an interrupt handler?
  • over 2 years Overflowing the stack doesn't work, function optimized away
  • almost 3 years Adjust x86 doc links in posts
  • almost 3 years Multi Core Issues in Linux Kernel Scheduler
blog_os open pull requests (View All Pulls)
  • Identity map the multiboot structure to fix the frame allocator
  • Add note that `stack_bottom` needs to be above `stack_top` in the source
  • Test for rustfmt/xargo instead of using `|| true`
  • Added more specific instructions for nightly
  • Fix 'pwd' command substitution
  • Wrong method referenced in prose
blog_os list of languages used
Other projects in Rust