Commit Graph

  • 2f30a0df56 Delete old heap allocator Philipp Oppermann 2018-02-27 16:05:04 +01:00
  • 73663150f8 Make image alt texts grey and italic Philipp Oppermann 2018-02-27 15:42:59 +01:00
  • 21f409625b Add "read more" links on frontpage Philipp Oppermann 2018-02-27 15:33:52 +01:00
  • fe472d3412 Adjust order number of first two posts Philipp Oppermann 2018-02-26 19:02:31 +01:00
  • 2671fac8c2 Rename first first-edition post to “Minimal Multiboot Kernel“ Philipp Oppermann 2018-02-12 12:44:01 +01:00
  • c157c91075 Merge pull request #393 from phil-opp/improvements Philipp Oppermann 2018-02-25 16:59:56 +01:00
  • 9208ae18ce Explain shortly how the bootimage tool works Philipp Oppermann 2018-02-25 16:00:14 +01:00
  • 4281f0e261 Minor improvements Philipp Oppermann 2018-02-25 15:31:29 +01:00
  • 7d04bdea1b Reformulate the drawbacks of the multiboot standard Philipp Oppermann 2018-02-25 15:05:02 +01:00
  • bd1cf20f05 Improve wording Philipp Oppermann 2018-02-25 14:46:35 +01:00
  • 1cdc010446 Fix: Change "panic" to "panic-strategy" (#392) Toothbrush 2018-02-20 21:10:05 +00:00
  • 07553ed219 Nitpicks for second article (#390) Andre Richter 2018-02-14 11:39:08 +01:00
  • 3a8de6cdec Bors: Add netlify to required status set and delete merged branches Philipp Oppermann 2018-02-12 12:59:57 +01:00
  • 71778d7a42 Remove BootInfo parameter from second post code example Philipp Oppermann 2018-02-12 12:46:32 +01:00
  • 384f6c2420 Corrections from proof read (#389) Andre Richter 2018-02-12 12:37:26 +01:00
  • 65c63a77b2 Merge #387 bors[bot] 2018-02-10 18:22:17 +00:00
  • 325f1f2756 Fix date of new post Philipp Oppermann 2018-02-10 17:31:15 +01:00
  • 8848f4c139 Git ignore bootimage.bin Philipp Oppermann 2018-02-10 17:30:23 +01:00
  • 00b3adfe82 Merge #385 bors[bot] 2018-02-10 15:58:25 +00:00
  • b2285f762c Add a “first-edition” section Philipp Oppermann 2018-02-10 16:52:29 +01:00
  • dc50747c78 Link to the github issue from the UEFI section Philipp Oppermann 2018-02-10 16:09:22 +01:00
  • 56be17ab80 Add paragraph about Multiboot Philipp Oppermann 2018-02-10 16:04:27 +01:00
  • 254d5476b1 Update Linux/Windows/Mac entry points Philipp Oppermann 2018-02-09 15:47:59 +01:00
  • 5e96335c23 Add instructions for running in QEMU, VirtualBox, and on real hardware Philipp Oppermann 2018-02-08 22:59:34 +01:00
  • 7be59b571d Use static and for loop for printing Hello World Philipp Oppermann 2018-02-08 22:59:00 +01:00
  • cef44163bc Remove/resolve some todos Philipp Oppermann 2018-02-05 18:25:31 +01:00
  • 7d55dda917 Add extra posts about disabling red zone and SIMD and installing LLD Philipp Oppermann 2018-02-05 12:24:21 +01:00
  • 8a75c2828e More work on minimal kernel post Philipp Oppermann 2018-02-05 12:23:40 +01:00
  • 9bb456ed2f Add support for bors.ng Philipp Oppermann 2018-02-04 17:35:28 +01:00
  • bff0c4401c Print “Hello” instead of “OK” Philipp Oppermann 2018-02-04 00:14:13 +01:00
  • 9fc0a07453 Fix offset typo Philipp Oppermann 2018-02-03 23:30:26 +01:00
  • eb688962a1 Rewrite first post to work on Windows too Philipp Oppermann 2018-02-03 22:53:16 +01:00
  • c266193a34 We do not need separate “Intoduction” and “Booting” posts Philipp Oppermann 2018-02-03 14:14:06 +01:00
  • 244dd16819 Add appveyor configuration Philipp Oppermann 2018-02-02 13:50:49 +01:00
  • 7d7b94804b Rewrite .travis.yml for second edition Philipp Oppermann 2018-02-02 13:35:50 +01:00
  • 8f69dfa6a2 Use lld for linking Philipp Oppermann 2018-02-03 01:32:17 +01:00
  • 734310ff0d Allow executables for x86_64-blog_os target Philipp Oppermann 2018-02-02 13:44:17 +01:00
  • 5823bcb7ab Initial code for second edition Philipp Oppermann 2018-02-02 13:35:36 +01:00
  • 2629945c72 Delete code from first edition Philipp Oppermann 2018-02-02 13:27:46 +01:00
  • f5797b7fd2 Begin post about creating a minimal Rust kernel Philipp Oppermann 2018-01-31 01:46:07 +01:00
  • 082c9f0f4f New favicon Philipp Oppermann 2018-02-02 13:21:34 +01:00
  • 7f3de8dcb4 Update to gutenberg 0.3.0 Philipp Oppermann 2018-01-28 20:01:35 +01:00
  • abc9f350d2 Use utterances for comments on second edition posts Philipp Oppermann 2018-01-19 14:49:40 +01:00
  • d38e97ee0b Link to #id instead of permalink in TOC Philipp Oppermann 2018-01-19 14:33:49 +01:00
  • 25441a8773 Use absolute paths instead of permalink Philipp Oppermann 2018-01-19 14:20:20 +01:00
  • 7a263355f3 Add custom templates for second edition posts Philipp Oppermann 2017-10-10 12:34:10 +02:00
  • 75b4e09c4e Make page title an h1 for semantics Philipp Oppermann 2017-10-10 12:29:10 +02:00
  • 9d32d49488 Begin new post about freestanding executables Philipp Oppermann 2017-10-05 17:01:09 +02:00
  • 3f4a4bf2e1 Create utterances.json Philipp Oppermann 2018-01-19 14:49:04 +01:00
  • 8ce22720c6 Try to fix travis build by also caching .xargo directory Philipp Oppermann 2018-01-09 19:08:59 +01:00
  • 651a33a98d Fix eh_personality reference error (#383) bissonex 2018-01-09 13:07:19 -05:00
  • b188e8a617 Allow users to use latest nightly compiler without manually setting environment variable (#381) Rob Gries 2018-01-02 12:11:38 -05:00
  • 3523fdfbb5 Workaround for xargo issue (#380) Rob Gries 2017-12-27 05:48:02 -06:00
  • f7868a1bd8 Use proper size for heap init (#376) Rob Gries 2017-12-15 04:06:57 -05:00
  • 5e937e6e20 Panic on alloc::oom instead of calling intrinsics::abort (#375) Rob Gries 2017-12-15 03:20:50 -05:00
  • 2e8da22b32 Docker: Add a Dockerfile and Makefile targets (#373) Patrik 2017-12-09 17:34:22 +01:00
  • cf2c5550aa Fix sign extension bug in next_table_address (#372) Isaac Woods 2017-12-05 19:22:29 +00:00
  • 0a583ca73b Add fish script for helping with rebasing of post_* tags Philipp Oppermann 2017-11-19 15:53:08 +01:00
  • 5ad167c45d Merge pull request #367 from phil-opp/allocator-post-update Philipp Oppermann 2017-11-19 15:35:09 +01:00
  • e89e4f5277 Rewrite bump allocator and integrate it in main crate Philipp Oppermann 2017-11-19 15:17:14 +01:00
  • 8fb813a09d Rewrite “Kernel Heap” to use the new allocator API Philipp Oppermann 2017-11-16 18:02:25 +01:00
  • 7f6576c9dc Set the stack index of the double fault IDT entry first_edition_post_10 Philipp Oppermann 2017-04-19 12:16:43 +02:00
  • aa8028cf6c Reload cs register and load TSS Philipp Oppermann 2017-04-19 12:15:52 +02:00
  • 165054d12a Create and load a static TSS and GDT Philipp Oppermann 2017-04-19 12:12:16 +02:00
  • 58e90d497e Add a Gdt::load method Philipp Oppermann 2017-04-19 12:10:03 +02:00
  • 238cc575c3 Add a Gdt::add_entry method Philipp Oppermann 2017-04-19 12:09:27 +02:00
  • d2060e76f8 Create a GDT descriptor struct Philipp Oppermann 2017-04-19 12:08:08 +02:00
  • f651987666 Add a dependency on bit_field Philipp Oppermann 2017-04-19 12:07:02 +02:00
  • eea8c10a97 Create a interrupts::gdt submodule Philipp Oppermann 2017-04-18 18:25:32 +02:00
  • e1d2af5ea7 Rename interrupts.rs to interrupts/mod.rs Philipp Oppermann 2017-04-18 18:24:29 +02:00
  • a05db759d7 Create a TSS and save the double fault stack pointer it its IST Philipp Oppermann 2017-04-18 18:21:45 +02:00
  • 00bbd6fbc6 Pass the memory controller to interrupts::init and use it to create a double fault stack Philipp Oppermann 2017-04-18 18:20:15 +02:00
  • f1459a552c Return a memory controller from memory::init Philipp Oppermann 2017-04-18 18:18:18 +02:00
  • 73d4390f27 Create a memory manager for convenience Philipp Oppermann 2017-04-18 18:17:02 +02:00
  • 0e3857ca50 Create a stack allocator module Philipp Oppermann 2017-04-18 18:16:03 +02:00
  • 3efe54169e Provoke a stack overflow, which still causes a boot loop Philipp Oppermann 2017-04-18 18:13:05 +02:00
  • 2b9d880e48 Add a double fault handler Philipp Oppermann 2017-04-18 18:11:52 +02:00
  • 91ffde4728 Trigger a double fault by causing a page fault Philipp Oppermann 2017-04-18 18:10:23 +02:00
  • 590b2fd1b0 Update Readme for “Double Faults” post Philipp Oppermann 2017-04-18 15:21:11 +02:00
  • 93aff8cfa8 Test our exception handler by invoking a breakpoint exception first_edition_post_9 Philipp Oppermann 2017-04-18 15:17:43 +02:00
  • fab320271a Create and load an IDT Philipp Oppermann 2017-04-18 15:16:26 +02:00
  • 7becaf5f30 Add a dependency on lazy_static Philipp Oppermann 2017-04-18 15:15:44 +02:00
  • 3bbc2a0bdc Add a simple handler function for the breakpoint exception Philipp Oppermann 2017-04-18 15:14:27 +02:00
  • c2d22af1c7 Create a new interrupts module Philipp Oppermann 2017-04-18 15:09:03 +02:00
  • 0ddd214a1b Update Readme for “Handling Exceptions” post Philipp Oppermann 2017-04-18 15:07:10 +02:00
  • ad211de615 Use linked list allocator instead of bump allocator first_edition_post_8 Philipp Oppermann 2017-11-19 14:16:33 +01:00
  • 01f8c43ffb Map the heap pages to physical frames Philipp Oppermann 2017-11-19 13:25:39 +01:00
  • f2bbe43099 Use once crate to ensure that memory::init is only called once Philipp Oppermann 2017-11-19 13:19:17 +01:00
  • 76550dcd95 Refactor: Move memory initialization to memory::init function Philipp Oppermann 2017-11-19 13:16:33 +01:00
  • c0d403abbe Set a global allocator Philipp Oppermann 2017-11-19 13:13:18 +01:00
  • 9dc998222a Make the bump allocator lock free and impl Alloc for shared reference Philipp Oppermann 2017-11-19 12:54:47 +01:00
  • 1f6633fe44 Add a heap_allocator module with a basic bump allocator Philipp Oppermann 2017-11-19 12:50:16 +01:00
  • 5f017124dd Add a dependency on the alloc crate Philipp Oppermann 2017-11-19 12:41:20 +01:00
  • 36369cfbe2 Update Readme for “Kernel Heap” post Philipp Oppermann 2017-04-18 12:38:25 +02:00
  • c6dd37dcc5 Turn page of old P4 into guard page first_edition_post_7 Philipp Oppermann 2017-04-18 12:35:19 +02:00
  • 2a3ce863fd Enable write protect bit to improve safety Philipp Oppermann 2017-04-18 12:33:53 +02:00
  • ffaddeb84e Fix boot loop by enabling the NXE bit in the EFER register Philipp Oppermann 2017-04-18 12:32:59 +02:00
  • 0ce2b46ad1 Use the correct entry flags for kernel sections Philipp Oppermann 2017-04-18 12:31:02 +02:00
  • 11993b7e15 Also identity map the multiboot info structure Philipp Oppermann 2017-04-18 12:28:59 +02:00
  • fdacfb24f0 Fix boot loop by identity mapping the vga buffer Philipp Oppermann 2017-04-18 12:27:24 +02:00