<commit_before># Blog OS

[![Build Status](https://travis-ci.org/phil-opp/blog_os.svg?branch=master)](https://travis-ci.org/phil-opp/blog_os) [![Join the chat at https://gitter.im/phil-opp/blog_os](https://badges.gitter.im/phil-opp/blog_os.svg)](https://gitter.im/phil-opp/blog_os?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

This repository contains the source code for the _Writing an OS in Rust_ series at [os.phil-opp.com](http://os.phil-opp.com).

## Bare Bones
- [A Minimal x86 Kernel](http://os.phil-opp.com/multiboot-kernel.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/multiboot_bootstrap))
- [Entering Long Mode](http://os.phil-opp.com/entering-longmode.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/entering_longmode))
- [Set Up Rust](http://os.phil-opp.com/set-up-rust.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/set_up_rust))
- [Printing to Screen](http://os.phil-opp.com/printing-to-screen.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/printing_to_screen))

## Memory Management
- [Allocating Frames](http://os.phil-opp.com/allocating-frames.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/allocating_frames))
- [Page Tables](http://os.phil-opp.com/modifying-page-tables.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/page_tables))
- [Remap the Kernel](http://os.phil-opp.com/remap-the-kernel.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/remap_the_kernel))
- [Kernel Heap](http://os.phil-opp.com/kernel-heap.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/kernel_heap))

## Exceptions
- [Catching Exceptions](http://os.phil-opp.com/catching-exceptions.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/catching_exceptions))
- [Better Exception Messages](http://os.phil-opp.com/better-exception-messages.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/better_exception_messages))
- [Returning from Exceptions](http://os.phil-opp.com/returning-from-exceptions.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/returning_from_exceptions))

## Additional Resources
- [Cross Compile Binutils](http://os.phil-opp.com/cross-compile-binutils.html)
- [Cross Compile libcore](http://os.phil-opp.com/cross-compile-libcore.html)
- [Set Up GDB](http://os.phil-opp.com/set-up-gdb.html)

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

[xargo]: https://github.com/japaric/xargo

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.<commit_msg>Link double fault post and source in Readme<commit_after># Blog OS

[![Build Status](https://travis-ci.org/phil-opp/blog_os.svg?branch=master)](https://travis-ci.org/phil-opp/blog_os) [![Join the chat at https://gitter.im/phil-opp/blog_os](https://badges.gitter.im/phil-opp/blog_os.svg)](https://gitter.im/phil-opp/blog_os?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

This repository contains the source code for the _Writing an OS in Rust_ series at [os.phil-opp.com](http://os.phil-opp.com).

## Bare Bones
- [A Minimal x86 Kernel](http://os.phil-opp.com/multiboot-kernel.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/multiboot_bootstrap))
- [Entering Long Mode](http://os.phil-opp.com/entering-longmode.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/entering_longmode))
- [Set Up Rust](http://os.phil-opp.com/set-up-rust.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/set_up_rust))
- [Printing to Screen](http://os.phil-opp.com/printing-to-screen.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/printing_to_screen))

## Memory Management
- [Allocating Frames](http://os.phil-opp.com/allocating-frames.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/allocating_frames))
- [Page Tables](http://os.phil-opp.com/modifying-page-tables.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/page_tables))
- [Remap the Kernel](http://os.phil-opp.com/remap-the-kernel.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/remap_the_kernel))
- [Kernel Heap](http://os.phil-opp.com/kernel-heap.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/kernel_heap))

## Exceptions
- [Catching Exceptions](http://os.phil-opp.com/catching-exceptions.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/catching_exceptions))
- [Better Exception Messages](http://os.phil-opp.com/better-exception-messages.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/better_exception_messages))
- [Returning from Exceptions](http://os.phil-opp.com/returning-from-exceptions.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/returning_from_exceptions))
- [Double Faults](http://os.phil-opp.com/double-faults.html)
      ([source code](https://github.com/phil-opp/blog_os/tree/double_faults))

## Additional Resources
- [Cross Compile Binutils](http://os.phil-opp.com/cross-compile-binutils.html)
- [Cross Compile libcore](http://os.phil-opp.com/cross-compile-libcore.html)
- [Set Up GDB](http://os.phil-opp.com/set-up-gdb.html)

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

[xargo]: https://github.com/japaric/xargo

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.
{'fraction_non_alphanumeric': 0.17863782322122698, 'fraction_numerical': 0.0013520365049856345, 'mean_word_length': 4.409506398537477, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 35, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7070613', 'n_tokens_mistral': 2221, 'n_tokens_neox': 2165, 'n_words': 316}