mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 14:27:49 +00:00
Compare commits
14 Commits
c689ecf810
...
3fef39211e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3fef39211e | ||
|
|
d17048e054 | ||
|
|
e0db01a59d | ||
|
|
cca2886907 | ||
|
|
77221b833b | ||
|
|
db64d2876d | ||
|
|
bde26a617e | ||
|
|
d70afb7ecc | ||
|
|
cc100920d8 | ||
|
|
209fd7c312 | ||
|
|
a86304d932 | ||
|
|
7f5859f8ee | ||
|
|
09aa0347d1 | ||
|
|
bbc59d23e8 |
16
.github/workflows/blog.yml
vendored
16
.github/workflows/blog.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: 'Download Zola'
|
||||
run: curl -sL https://github.com/getzola/zola/releases/download/v0.15.3/zola-v0.15.3-x86_64-unknown-linux-gnu.tar.gz | tar zxv
|
||||
run: curl -sL https://github.com/getzola/zola/releases/download/v0.16.1/zola-v0.16.1-x86_64-unknown-linux-gnu.tar.gz | tar zxv
|
||||
- name: 'Install Python Libraries'
|
||||
run: python -m pip install --user -r requirements.txt
|
||||
working-directory: "blog"
|
||||
@@ -38,20 +38,6 @@ jobs:
|
||||
name: generated_site
|
||||
path: blog/public
|
||||
|
||||
zola_check:
|
||||
name: "Zola Check"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: 'Download Zola'
|
||||
run: curl -sL https://github.com/getzola/zola/releases/download/v0.15.3/zola-v0.15.3-x86_64-unknown-linux-gnu.tar.gz | tar zxv
|
||||
|
||||
- name: "Run zola check"
|
||||
run: ../zola check
|
||||
working-directory: "blog"
|
||||
|
||||
check_spelling:
|
||||
name: "Check Spelling"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
27
.github/workflows/check-links.yml
vendored
Normal file
27
.github/workflows/check-links.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
name: Check Links
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "*"
|
||||
- "!staging.tmp"
|
||||
tags:
|
||||
- "*"
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: "0 0 1/4 * *" # every 4 days
|
||||
|
||||
jobs:
|
||||
zola_check:
|
||||
name: "Zola Link Check"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: "Download Zola"
|
||||
run: curl -sL https://github.com/getzola/zola/releases/download/v0.16.1/zola-v0.16.1-x86_64-unknown-linux-gnu.tar.gz | tar zxv
|
||||
|
||||
- name: "Run zola check"
|
||||
run: ../zola check
|
||||
working-directory: "blog"
|
||||
@@ -5,7 +5,7 @@ feed_filename = "rss.xml"
|
||||
compile_sass = true
|
||||
minify_html = false
|
||||
|
||||
ignored_content = ["*/README.md", "LICENSE-CC-BY-NC"]
|
||||
ignored_content = ["*/README.md", "*/LICENSE-CC-BY-NC"]
|
||||
|
||||
[markdown]
|
||||
highlight_code = true
|
||||
@@ -14,16 +14,18 @@ smart_punctuation = true
|
||||
|
||||
[link_checker]
|
||||
skip_prefixes = [
|
||||
"https://crates.io/crates", # see https://github.com/rust-lang/crates.io/issues/788
|
||||
"https://www.amd.com/system/files/TechDocs/", # seems to have problems with PDFs
|
||||
"https://crates.io/crates", # see https://github.com/rust-lang/crates.io/issues/788
|
||||
"https://www.amd.com/system/files/TechDocs/", # seems to have problems with PDFs
|
||||
"https://developer.apple.com/library/archive/qa/qa1118/_index.html", # results in a 401 (I don't know why)
|
||||
"https://github.com", # rate limiting often leads to "Error 429 Too Many Requests"
|
||||
"https://www.linkedin.com/", # seems to send invalid HTTP status codes
|
||||
"https://github.com", # rate limiting often leads to "Error 429 Too Many Requests"
|
||||
"https://www.linkedin.com/", # seems to send invalid HTTP status codes
|
||||
]
|
||||
skip_anchor_prefixes = [
|
||||
"https://github.com/", # see https://github.com/getzola/zola/issues/805
|
||||
"https://docs.rs/x86_64/0.1.2/src/", # source code highlight
|
||||
"https://doc.rust-jp.rs/book-ja/", # seems like Zola has problems with Japanese anchor names
|
||||
"https://github.com/", # see https://github.com/getzola/zola/issues/805
|
||||
"https://docs.rs/x86_64/0.1.2/src/", # source code highlight
|
||||
"https://doc.rust-jp.rs/book-ja/", # seems like Zola has problems with Japanese anchor names
|
||||
"https://doc.rust-jp.rs/edition-guide/rust-2018", # seems like Zola has problems with Japanese anchor names
|
||||
"https://doc.rust-jp.rs/rust-nomicon-ja/", # seems like Zola has problems with Japanese anchor names
|
||||
]
|
||||
|
||||
[extra]
|
||||
|
||||
@@ -406,9 +406,7 @@ So the linker can't find a function named `_Unwind_Resume` that is referenced e.
|
||||
|
||||
[iterator.rs:389]: https://github.com/rust-lang/rust/blob/c58c928e658d2e45f816fd05796a964aa83759da/src/libcore/iter/iterator.rs#L389
|
||||
|
||||
By default, the destructors of all stack variables are run when a `panic` occurs. This is called _unwinding_ and allows parent threads to [recover from panics]. However, it requires a platform specific gcc library, which isn't available in our kernel.
|
||||
|
||||
[recover from panics]: https://www.howtobuildsoftware.com/index.php/how-do/fFH/rust-recovering-from-panic-in-another-thread
|
||||
By default, the destructors of all stack variables are run when a `panic` occurs. This is called _unwinding_ and allows parent threads to recover from panics. However, it requires a platform specific gcc library, which isn't available in our kernel.
|
||||
|
||||
Fortunately, Rust allows us to disable unwinding for our target. For that we add the following line to our `x86_64-blog_os.json` file:
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ In the section below, we explain how to construct virtual addresses for followin
|
||||
|
||||
We saw that we can access tables of all levels by following the recursive entry once or multiple times before the actual translation. Since the indexes into the tables of the four levels are derived directly from the virtual address, we need to construct special virtual addresses for this technique. Remember, the page table indexes are derived from the address in the following way:
|
||||
|
||||

|
||||

|
||||
|
||||
Let's assume that we want to access the level 1 page table that maps a specific page. As we learned above, this means that we have to follow the recursive entry once before continuing with the level 4, level 3, and level 2 indexes. To do that, we move each block of the address one block to the right and set the original level 4 index to the index of the recursive entry:
|
||||
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
{% block after_main %}
|
||||
<hr>
|
||||
<div class="PageNavigation">
|
||||
{% if page.lighter %}
|
||||
<a class="prev" href="{{ page.lighter.path | safe }}">« {{ page.lighter.title }}</a>
|
||||
{% if page.lower %}
|
||||
<a class="prev" href="{{ page.lower.path | safe }}">« {{ page.lower.title }}</a>
|
||||
{% endif %}
|
||||
{% if page.heavier %}
|
||||
<a class="next" href="{{ page.heavier.path | safe }}">{{ page.heavier.title }} »</a>
|
||||
{% if page.higher %}
|
||||
<a class="next" href="{{ page.higher.path | safe }}">{{ page.higher.title }} »</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
@@ -97,11 +97,11 @@
|
||||
|
||||
<hr>
|
||||
<div class="PageNavigation">
|
||||
{% if page.lighter %}
|
||||
<a class="prev" href="{{ page.lighter.path | safe }}">« {{ page.lighter.title }}</a>
|
||||
{% if page.lower %}
|
||||
<a class="prev" href="{{ page.lower.path | safe }}">« {{ page.lower.title }}</a>
|
||||
{% endif %}
|
||||
{% if page.heavier %}
|
||||
<a class="next" href="{{ page.heavier.path | safe }}">{{ page.heavier.title }} »</a>
|
||||
{% if page.higher %}
|
||||
<a class="next" href="{{ page.higher.path | safe }}">{{ page.higher.title }} »</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
{% block after_main %}
|
||||
<hr>
|
||||
<div class="PageNavigation">
|
||||
{% if page.earlier %}
|
||||
<a class="prev" href="{{ page.earlier.path | safe }}">« {{ page.earlier.title }}</a>
|
||||
{% if page.lower %}
|
||||
<a class="prev" href="{{ page.lower.path | safe }}">« {{ page.lower.title }}</a>
|
||||
{% endif %}
|
||||
{% if page.later %}
|
||||
<a class="next" href="{{ page.later.path | safe }}">{{ page.later.title }} »</a>
|
||||
{% if page.higher %}
|
||||
<a class="next" href="{{ page.higher.path | safe }}">{{ page.higher.title }} »</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
Reference in New Issue
Block a user