Commit Graph

  • 564c6b64e9 Switch to the new page table after mapping all sections Philipp Oppermann 2017-04-18 12:25:59 +02:00
  • fa3b572d68 Only print kernel/multiboot start/end in rust_main Philipp Oppermann 2017-04-18 12:22:36 +02:00
  • 40f1732ccb Call remap_the_kernel from rust_main Philipp Oppermann 2017-04-18 12:21:47 +02:00
  • 5d898d8474 Page align all sections as they will be individually mapped Philipp Oppermann 2017-04-18 12:12:28 +02:00
  • e029eabe18 Add a remap_the_kernel function Philipp Oppermann 2017-04-18 12:11:40 +02:00
  • 60d7c736a5 Add a (now safe) with method Philipp Oppermann 2017-04-18 12:07:41 +02:00
  • 2f30b0f7cf Create a new ActivePageTable struct that derefs to Mapper Philipp Oppermann 2017-04-18 12:05:29 +02:00
  • ce9c4d6e43 Refactor: Move ActivePageTable to new mapper submodule and rename to Mapper Philipp Oppermann 2017-04-18 12:03:18 +02:00
  • 4160cb6d7e Begin creating an ActivePageTable::with function Philipp Oppermann 2017-04-18 12:00:17 +02:00
  • b2e79752fd Fix InactivePageTable::new function using a temporary page Philipp Oppermann 2017-04-18 11:59:03 +02:00
  • 11ae7e8aeb Create a temporary_page module Philipp Oppermann 2017-04-18 11:57:20 +02:00
  • 1737f48284 Create a InactivePageTable struct Philipp Oppermann 2017-04-18 11:53:00 +02:00
  • 1f1f6c62da Derive Copy and Clone for Page and add a Frame::clone method Philipp Oppermann 2017-04-13 20:04:01 +02:00
  • bb3f17c0b9 Update Readme for “Remap the Kernel” post Philipp Oppermann 2017-04-13 19:56:21 +02:00
  • 1007c5157d Remove paging testing code again first_edition_post_6 Philipp Oppermann 2017-04-13 19:44:36 +02:00
  • 55e602dc61 Fix unmap function by flushing the TLB Philipp Oppermann 2017-04-13 19:43:52 +02:00
  • eb5c9afa51 Add a dependency on the x86_64 crate Philipp Oppermann 2017-04-13 19:40:20 +02:00
  • 0ee4ed738a Test the unmap function (it doesn't work correctly) Philipp Oppermann 2017-04-13 19:33:55 +02:00
  • b49cb6986c Test the map_to function Philipp Oppermann 2017-04-13 19:31:26 +02:00
  • 15c9f43622 Add an (unfinished) unmap method Philipp Oppermann 2017-04-13 19:24:20 +02:00
  • 3696c7bacb Add map and identity_map functions for convenience Philipp Oppermann 2017-04-13 19:23:49 +02:00
  • bb473c7907 Make translate and map_to safe by making them methods of a new ActivePageTable struct Philipp Oppermann 2017-04-13 19:22:21 +02:00
  • dedf6e8959 Add a map_to function Philipp Oppermann 2017-04-13 19:17:24 +02:00
  • 83d56aa9de Add translate and translate_page functions Philipp Oppermann 2017-04-13 19:14:44 +02:00
  • a7170a4a44 Use type system tricks to make next_table methods safe Philipp Oppermann 2017-04-13 19:11:31 +02:00
  • 0874625269 Add methods to retrieve a (mutual) reference to the next table Philipp Oppermann 2017-04-13 18:37:03 +02:00
  • 3706331a43 Add a P4 constant and a Table::next_table_address method Philipp Oppermann 2017-04-13 18:36:07 +02:00
  • 8fcea7951b Recursive map the P4 table Philipp Oppermann 2017-04-13 18:35:00 +02:00
  • e50d70c02e Add a Table::zero method to clear all entries Philipp Oppermann 2017-04-13 18:33:26 +02:00
  • 2b7fa410fb Implement the Index and IndexMut traits for Table Philipp Oppermann 2017-04-13 18:32:00 +02:00
  • 62d655fbdd Create a memory::paging::table submodule with a Table struct Philipp Oppermann 2017-04-13 18:31:26 +02:00
  • fe464463eb Add pointed_frame and set methods to Entry Philipp Oppermann 2017-04-13 18:30:27 +02:00
  • 148d506629 Use bitflags to create an EntryFlags type Philipp Oppermann 2017-04-13 18:28:32 +02:00
  • f957f2ecde Add a dependency on the bitflags crate Philipp Oppermann 2017-04-13 18:27:39 +02:00
  • c4c27c10e6 Create a memory::paging::entry submodule with an Entry struct Philipp Oppermann 2017-04-13 18:24:27 +02:00
  • c7c02d7dca Create a memory::paging module with a Page struct Philipp Oppermann 2017-04-13 18:23:20 +02:00
  • 9f84e37e1b Update Readme for “Page Tables” post Philipp Oppermann 2017-04-13 18:06:57 +02:00
  • 9f1a69cafa Create a new AreaFrameAllocator and allocate maximum number of frames first_edition_post_5 Philipp Oppermann 2017-04-13 18:05:32 +02:00
  • edb2e693da Create an AreaFrameAllocator Philipp Oppermann 2017-04-13 18:02:43 +02:00
  • 84c337e6f0 Create a memory module with a Frame struct and FrameAllocator trait Philipp Oppermann 2017-04-13 17:59:12 +02:00
  • 98d97703f4 Calculate start and end of kernel and multiboot struct Philipp Oppermann 2017-04-13 17:57:33 +02:00
  • 402ec77bc0 Reduce number of ELF section by merging .text.* (etc.) sections together Philipp Oppermann 2017-04-13 17:56:41 +02:00
  • 9a86f60835 Print kernel ELF sections Philipp Oppermann 2017-04-13 17:54:06 +02:00
  • cbc9e112bd Print a proper message on panics Philipp Oppermann 2017-04-13 17:53:34 +02:00
  • f231f2c7f2 Print available memory areas Philipp Oppermann 2017-04-13 17:52:32 +02:00
  • 5f65e1d31f Add dependency on multiboot2 crate Philipp Oppermann 2017-04-13 17:51:09 +02:00
  • 28ce5310c8 Pass address of multiboot info structure to rust_main Philipp Oppermann 2017-04-13 17:49:27 +02:00
  • 08a4e795a4 Increase stack size to 16k Philipp Oppermann 2017-04-13 17:46:31 +02:00
  • 8040f8d565 Update Readme for “Allocating Frames” post Philipp Oppermann 2017-04-13 17:45:14 +02:00
  • 9f448fbe0e Avoid deadlock on nested print! invokation first_edition_post_4 Philipp Oppermann 2017-04-12 19:36:32 +02:00
  • 59b8133396 Add print! and println! macros and a clear_screen function Philipp Oppermann 2017-04-12 19:35:08 +02:00
  • 40aed4fa0f Create a static WRITER protected by a spinlock Philipp Oppermann 2017-04-12 19:32:59 +02:00
  • f24c7bc322 Implement the new_line method Philipp Oppermann 2017-04-12 19:30:58 +02:00
  • 5e0ccd5aa5 Implement the fmt::Write trait and print something with the write! macro Philipp Oppermann 2017-04-12 19:28:15 +02:00
  • 578717a9b8 Add a write_str method and print “Hello!” Philipp Oppermann 2017-04-12 19:25:48 +02:00
  • 0ed21fb943 Use volatile writes for printing to screen Philipp Oppermann 2017-04-12 19:24:25 +02:00
  • 6aa3f67331 Add a print_something function to print an H in the lower left Philipp Oppermann 2017-04-12 19:21:54 +02:00
  • 46d47f8d2e Create a Writer struct with a write_byte function Philipp Oppermann 2017-04-12 19:20:15 +02:00
  • afc2c26a9d Create a vga_buffer module Philipp Oppermann 2017-04-12 19:16:04 +02:00
  • db9a19b38a Update Readme for “Printing to Screen” post Philipp Oppermann 2017-04-13 17:42:17 +02:00
  • bef5f13560 Print a “Hello World!” in Rust first_edition_post_3 Philipp Oppermann 2017-04-11 19:30:19 +02:00
  • a1743eb3dd Set the panic strategy to abort to fix _Unwind_Resume errors Philipp Oppermann 2017-04-11 19:29:43 +02:00
  • 13cffc3319 Add target directory to .gitignore Philipp Oppermann 2017-04-11 18:53:04 +02:00
  • ff623a90e3 Use --gc-sections to remove unused program sections Philipp Oppermann 2017-04-11 18:52:31 +02:00
  • 5d8758df59 Add a dependency on rlibc Philipp Oppermann 2017-04-11 18:25:51 +02:00
  • ca2ccc31aa Call the rust_main function from assembly Philipp Oppermann 2017-04-11 18:23:45 +02:00
  • 8dd179a6f4 Adjust the Makefile to build and link Rust code Philipp Oppermann 2017-04-11 18:23:27 +02:00
  • 9f578640d8 Add a target spcification that disables SSE and the red zone Philipp Oppermann 2017-04-11 17:44:09 +02:00
  • bed57b03ce Add missing semicolon in double-fault post (#366) Wesley Aptekar-Cassels 2017-11-18 03:22:57 -05:00
  • 3e7aea0d51 Fix eh_personality linker errors (#364) Will 2017-11-14 14:21:14 +00:00
  • 30fcae9dce A rewrite of the bump allocator to conform to the new API (#361) johanmon 2017-10-24 08:31:08 +02:00
  • f499b6378c Toc.js was removed Philipp Oppermann 2017-10-10 09:39:14 +02:00
  • e23479bd9e Make “Recent Updates” a h2 instead of h1 Philipp Oppermann 2017-10-10 09:37:41 +02:00
  • 087371d7b0 Fix html (incorrect </datetime>) Philipp Oppermann 2017-10-10 09:35:41 +02:00
  • ff240ed264 Use absolute permalinks instead of relative paths for links Philipp Oppermann 2017-10-10 09:30:22 +02:00
  • 7590050ffe Front matter: insert_anchor was renamed to insert_achor_links Philipp Oppermann 2017-10-05 16:01:02 +02:00
  • 3c6b0b89ac Front matter: url key was renamed to path Philipp Oppermann 2017-10-05 15:52:40 +02:00
  • f1ffa242c2 Don't escape titles (e.g. they might contain <code>) Philipp Oppermann 2017-10-05 15:49:10 +02:00
  • 36eccdd102 Re-indent table of content code Philipp Oppermann 2017-10-05 11:50:51 +02:00
  • 1c9c20c810 Remove empty toc asides from posts Philipp Oppermann 2017-10-05 11:50:32 +02:00
  • dae2edfbf5 Let gutenberg generate the table of contents Philipp Oppermann 2017-10-05 11:37:23 +02:00
  • bba3c52ff3 Reverse posts array for increasing post numbers Philipp Oppermann 2017-10-05 11:25:10 +02:00
  • a85794df1b Get_url paths should start with ./ for internal links Philipp Oppermann 2017-10-05 10:55:37 +02:00
  • df0a6fa3ab Argument of get_url was renamed to path Philipp Oppermann 2017-10-05 10:17:13 +02:00
  • c5cde79130 Use get_section instead of deprecated `sections argument Philipp Oppermann 2017-10-05 10:14:41 +02:00
  • b58ee1e52b Add new const_unique_new feature gate (#355) Philipp Oppermann 2017-10-03 13:29:22 +02:00
  • 82c4a6f0a0 Add new required target-c-int-width field to target json (#354) Philipp Oppermann 2017-10-03 13:11:22 +02:00
  • 0175e83387 Update to use the new API for custom allocators (#348) Will 2017-08-20 12:36:30 +00:00
  • 2ebd4ed954 Use new Unique API (#346) Tim Crawford 2017-08-05 00:47:15 -04:00
  • e54cfa4378 Update bitflags to 0.9.1 (#347) Tim Crawford 2017-08-05 00:33:56 -04:00
  • 7b04934cab Fix dead internal link Philipp Oppermann 2017-07-05 23:44:44 +02:00
  • 970aeb1e20 Merge pull request #340 from phil-opp/markdown-fixes Philipp Oppermann 2017-06-25 21:16:15 +02:00
  • 54ab56aec5 Move links down to avoid splitting list items Philipp Oppermann 2017-06-25 21:00:08 +02:00
  • d5fe84e1c6 Fix broken link Philipp Oppermann 2017-06-25 20:53:43 +02:00
  • bfe0d12a60 Markdown links require a blank line before them Philipp Oppermann 2017-06-25 20:49:59 +02:00
  • a06f074bc8 Minor error in 01-multiboot-kernel.md (#336) skierpage 2017-06-25 04:38:15 -07:00
  • 1f0e1f0e21 Two minor English fixes (#338) skierpage 2017-06-25 04:32:55 -07:00
  • ab8b40a9d1 Explain and motivate "ISO" skierpage 2017-06-24 17:08:44 -07:00
  • 557c6a58ea Make subtitle non-wrapping Philipp Oppermann 2017-06-20 20:28:00 +02:00
  • 3263f412fd Remove unneeded installation of rustfmt on travis Philipp Oppermann 2017-06-20 17:56:45 +02:00