mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 22:37:49 +00:00
Move additional-resources/old-posts to a section named extra
This commit is contained in:
@@ -1,48 +0,0 @@
|
|||||||
+++
|
|
||||||
title = "Handling Exceptions using Naked Functions"
|
|
||||||
+++
|
|
||||||
|
|
||||||
<p>These posts explain how to handle CPU exceptions using naked functions.
|
|
||||||
Historically, these posts were the main exception handling posts before the
|
|
||||||
<code>x86-interrupt</code> calling convention and the <code>x86_64</code> crate existed.
|
|
||||||
Our new way of handling exceptions can be found in the
|
|
||||||
<a href="/handling-exceptions.html">“Handling Exceptions”</a> post.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="posts exceptions">
|
|
||||||
|
|
||||||
<article class="post">
|
|
||||||
<h2 class="post-title">
|
|
||||||
<a href="/catching-exceptions.html">
|
|
||||||
Catching Exceptions
|
|
||||||
</a>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<p>In this post, we start exploring exceptions. We set up an interrupt descriptor table and add handler functions. At the end of this post, our kernel will be able to catch divide-by-zero faults.</p>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
||||||
<article class="post">
|
|
||||||
<h2 class="post-title">
|
|
||||||
<a href="/better-exception-messages.html">
|
|
||||||
Better Exception Messages
|
|
||||||
</a>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<p>In this post, we explore exceptions in more detail. Our goal is to print additional information when an exception occurs, for example the values of the instruction and stack pointer. In the course of this, we will explore inline assembly and naked functions. We will also add a handler function for page faults and read the associated error code.</p>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
||||||
<article class="post">
|
|
||||||
<h2 class="post-title">
|
|
||||||
<a href="/returning-from-exceptions.html">
|
|
||||||
Returning from Exceptions
|
|
||||||
</a>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<p>In this post, we learn how to return from exceptions correctly. In the course of this, we will explore the <code>iretq</code> instruction, the C calling convention, multimedia registers, and the red zone.</p>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
+++
|
+++
|
||||||
title = "Cross Compile Binutils"
|
title = "Cross Compile Binutils"
|
||||||
|
description = ""
|
||||||
|
slug = "cross-compile-binutils"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
The [GNU Binutils] are a collection of various binary tools such as `ld`, `as`, `objdump`, or `readelf`. These tools are platform-specific, so you need to compile them again if your host system and target system are different. In our case, we need `ld` and `objdump` for the x86_64 architecture.
|
The [GNU Binutils] are a collection of various binary tools such as `ld`, `as`, `objdump`, or `readelf`. These tools are platform-specific, so you need to compile them again if your host system and target system are different. In our case, we need `ld` and `objdump` for the x86_64 architecture.
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
+++
|
+++
|
||||||
title = "Cross Compiling: libcore"
|
title = "Cross Compiling: libcore"
|
||||||
|
description = ""
|
||||||
|
slug = "cross-compile-libcore"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
If you get an `error: can't find crate for 'core'`, you're probably compiling for a different target (e.g. you're passing the `target` option to `cargo build`). Now the compiler complains that it can't find the `core` library. This document gives a quick overview how to fix this problem. For more details, see the [rust-cross] project.
|
If you get an `error: can't find crate for 'core'`, you're probably compiling for a different target (e.g. you're passing the `target` option to `cargo build`). Now the compiler complains that it can't find the `core` library. This document gives a quick overview how to fix this problem. For more details, see the [rust-cross] project.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
+++
|
||||||
|
title = "Handling Exceptions using naked Functions"
|
||||||
|
description = ""
|
||||||
|
template = "handling-exceptions-with-naked-fns.html"
|
||||||
|
+++
|
||||||
@@ -1,12 +1,14 @@
|
|||||||
+++
|
+++
|
||||||
title = "Better Exception Messages"
|
title = "Better Exception Messages"
|
||||||
|
description = ""
|
||||||
|
slug = "better-exception-messages"
|
||||||
date = "2016-08-03"
|
date = "2016-08-03"
|
||||||
updated = "2016-11-01"
|
updated = "2016-11-01"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
In this post, we explore exceptions in more detail. Our goal is to print additional information when an exception occurs, for example the values of the instruction and stack pointer. In the course of this, we will explore inline assembly and naked functions. We will also add a handler function for page faults and read the associated error code.
|
In this post, we explore exceptions in more detail. Our goal is to print additional information when an exception occurs, for example the values of the instruction and stack pointer. In the course of this, we will explore inline assembly and naked functions. We will also add a handler function for page faults and read the associated error code.
|
||||||
|
|
||||||
<!--more--><aside id="toc"></aside>
|
<!-- more --><aside id="toc"></aside>
|
||||||
|
|
||||||
As always, the complete source code is on [Github]. Please file [issues] for any problems, questions, or improvement suggestions. There is also a [gitter chat] and a [comment section] at the end of this page.
|
As always, the complete source code is on [Github]. Please file [issues] for any problems, questions, or improvement suggestions. There is also a [gitter chat] and a [comment section] at the end of this page.
|
||||||
|
|
||||||
@@ -1,12 +1,14 @@
|
|||||||
+++
|
+++
|
||||||
title = "Catching Exceptions"
|
title = "Catching Exceptions"
|
||||||
|
description = ""
|
||||||
|
slug = "catching-exceptions"
|
||||||
date = "2016-05-28"
|
date = "2016-05-28"
|
||||||
updated = "2016-06-25"
|
updated = "2016-06-25"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
In this post, we start exploring exceptions. We set up an interrupt descriptor table and add handler functions. At the end of this post, our kernel will be able to catch divide-by-zero faults.
|
In this post, we start exploring exceptions. We set up an interrupt descriptor table and add handler functions. At the end of this post, our kernel will be able to catch divide-by-zero faults.
|
||||||
|
|
||||||
<!--more--><aside id="toc"></aside>
|
<!-- more --><aside id="toc"></aside>
|
||||||
|
|
||||||
As always, the complete source code is on [Github]. Please file [issues] for any problems, questions, or improvement suggestions. There is also a comment section at the end of this page.
|
As always, the complete source code is on [Github]. Please file [issues] for any problems, questions, or improvement suggestions. There is also a comment section at the end of this page.
|
||||||
|
|
||||||
@@ -1,12 +1,14 @@
|
|||||||
+++
|
+++
|
||||||
title = "Returning from Exceptions"
|
title = "Returning from Exceptions"
|
||||||
|
description = ""
|
||||||
|
slug = "returning-from-exceptions"
|
||||||
date = "2016-09-21"
|
date = "2016-09-21"
|
||||||
updated = "2016-11-01"
|
updated = "2016-11-01"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
In this post, we learn how to return from exceptions correctly. In the course of this, we will explore the `iretq` instruction, the C calling convention, multimedia registers, and the red zone.
|
In this post, we learn how to return from exceptions correctly. In the course of this, we will explore the `iretq` instruction, the C calling convention, multimedia registers, and the red zone.
|
||||||
|
|
||||||
<!--more--><aside id="toc"></aside>
|
<!-- more --><aside id="toc"></aside>
|
||||||
|
|
||||||
As always, the complete source code is on [Github]. Please file [issues] for any problems, questions, or improvement suggestions. There is also a [gitter chat] and a [comment section] at the end of this page.
|
As always, the complete source code is on [Github]. Please file [issues] for any problems, questions, or improvement suggestions. There is also a [gitter chat] and a [comment section] at the end of this page.
|
||||||
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
+++
|
+++
|
||||||
title = "Set Up GDB"
|
title = "Set Up GDB"
|
||||||
|
description = ""
|
||||||
|
slug = "set-up-gdb"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
There are a lot of things that can go wrong when developing an OS. So it's a good idea to add a debugger to our toolset, which allows us to set breakpoints and examine variables. We will use [GDB](https://www.gnu.org/software/gdb/) as QEMU supports it out of the box.
|
There are a lot of things that can go wrong when developing an OS. So it's a good idea to add a debugger to our toolset, which allows us to set breakpoints and examine variables. We will use [GDB](https://www.gnu.org/software/gdb/) as QEMU supports it out of the box.
|
||||||
Reference in New Issue
Block a user