Compare commits

...

14 Commits

Author SHA1 Message Date
Philipp Oppermann
3fef39211e Merge pull request #1150 from phil-opp/zola-update
Fix dead links
2022-10-03 17:03:11 +02:00
Philipp Oppermann
d17048e054 Auto-format config.toml 2022-10-03 14:01:23 +02:00
Philipp Oppermann
e0db01a59d Skip anchor checking for Japanese nomicon too 2022-10-03 14:01:10 +02:00
Philipp Oppermann
cca2886907 Rename link check job 2022-10-03 13:50:07 +02:00
Philipp Oppermann
77221b833b Remove dead link from first edition 2022-10-03 13:48:46 +02:00
Philipp Oppermann
db64d2876d Disable anchor checking for Japanese Rust edition guide
Zola seems to have problems with Japanese anchors.
2022-10-03 13:48:38 +02:00
Philipp Oppermann
bde26a617e Merge pull request #1149 from phil-opp/zola-update
CI: Move link check to separate workflow
2022-10-03 13:33:08 +02:00
Philipp Oppermann
d70afb7ecc CI: Move link check to separate workflow
The job often fails temporarily, which can be confusing to contributors. By moving it to a separate 'Check Links' workflow, it hopefully becomes clearer that the failure is unrelated to a PR.
2022-10-03 13:32:10 +02:00
Philipp Oppermann
cc100920d8 Merge pull request #1148 from phil-opp/zola-update
Fixes for zola update
2022-10-03 13:25:15 +02:00
Philipp Oppermann
209fd7c312 Fix license file ignore 2022-10-03 13:24:04 +02:00
Philipp Oppermann
a86304d932 Fix prev/next links for old status update posts 2022-10-03 13:22:18 +02:00
Philipp Oppermann
7f5859f8ee Merge pull request #1147 from phil-opp/zola-update
Update zola to v0.16.1
2022-10-03 13:16:16 +02:00
Philipp Oppermann
09aa0347d1 Update zola to v0.16.1 2022-10-03 13:12:35 +02:00
seewishnew
bbc59d23e8 Fixes bad URL from post-09 address calculation section (#1146) 2022-10-03 12:32:07 +02:00
8 changed files with 52 additions and 39 deletions

View File

@@ -20,7 +20,7 @@ jobs:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- name: 'Download Zola' - 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' - name: 'Install Python Libraries'
run: python -m pip install --user -r requirements.txt run: python -m pip install --user -r requirements.txt
working-directory: "blog" working-directory: "blog"
@@ -38,20 +38,6 @@ jobs:
name: generated_site name: generated_site
path: blog/public 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: check_spelling:
name: "Check Spelling" name: "Check Spelling"
runs-on: ubuntu-latest runs-on: ubuntu-latest

27
.github/workflows/check-links.yml vendored Normal file
View 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"

View File

@@ -5,7 +5,7 @@ feed_filename = "rss.xml"
compile_sass = true compile_sass = true
minify_html = false minify_html = false
ignored_content = ["*/README.md", "LICENSE-CC-BY-NC"] ignored_content = ["*/README.md", "*/LICENSE-CC-BY-NC"]
[markdown] [markdown]
highlight_code = true highlight_code = true
@@ -14,16 +14,18 @@ smart_punctuation = true
[link_checker] [link_checker]
skip_prefixes = [ skip_prefixes = [
"https://crates.io/crates", # see https://github.com/rust-lang/crates.io/issues/788 "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://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://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://github.com", # rate limiting often leads to "Error 429 Too Many Requests"
"https://www.linkedin.com/", # seems to send invalid HTTP status codes "https://www.linkedin.com/", # seems to send invalid HTTP status codes
] ]
skip_anchor_prefixes = [ skip_anchor_prefixes = [
"https://github.com/", # see https://github.com/getzola/zola/issues/805 "https://github.com/", # see https://github.com/getzola/zola/issues/805
"https://docs.rs/x86_64/0.1.2/src/", # source code highlight "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/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] [extra]

View File

@@ -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 [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. 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
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: 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:

View 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: 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:
![Bits 012 are the page offset, bits 1221 the level 1 index, bits 2130 the level 2 index, bits 3039 the level 3 index, and bits 3948 the level 4 index](../08-paging-introduction/x86_64-table-indices-from-address.svg) ![Bits 012 are the page offset, bits 1221 the level 1 index, bits 2130 the level 2 index, bits 3039 the level 3 index, and bits 3948 the level 4 index](../paging-introduction/x86_64-table-indices-from-address.svg)
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: 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:

View File

@@ -35,11 +35,11 @@
{% block after_main %} {% block after_main %}
<hr> <hr>
<div class="PageNavigation"> <div class="PageNavigation">
{% if page.lighter %} {% if page.lower %}
<a class="prev" href="{{ page.lighter.path | safe }}">&laquo; {{ page.lighter.title }}</a> <a class="prev" href="{{ page.lower.path | safe }}">&laquo; {{ page.lower.title }}</a>
{% endif %} {% endif %}
{% if page.heavier %} {% if page.higher %}
<a class="next" href="{{ page.heavier.path | safe }}">{{ page.heavier.title }} &raquo;</a> <a class="next" href="{{ page.higher.path | safe }}">{{ page.higher.title }} &raquo;</a>
{% endif %} {% endif %}
</div> </div>

View File

@@ -97,11 +97,11 @@
<hr> <hr>
<div class="PageNavigation"> <div class="PageNavigation">
{% if page.lighter %} {% if page.lower %}
<a class="prev" href="{{ page.lighter.path | safe }}">&laquo; {{ page.lighter.title }}</a> <a class="prev" href="{{ page.lower.path | safe }}">&laquo; {{ page.lower.title }}</a>
{% endif %} {% endif %}
{% if page.heavier %} {% if page.higher %}
<a class="next" href="{{ page.heavier.path | safe }}">{{ page.heavier.title }} &raquo;</a> <a class="next" href="{{ page.higher.path | safe }}">{{ page.higher.title }} &raquo;</a>
{% endif %} {% endif %}
</div> </div>

View File

@@ -22,11 +22,11 @@
{% block after_main %} {% block after_main %}
<hr> <hr>
<div class="PageNavigation"> <div class="PageNavigation">
{% if page.earlier %} {% if page.lower %}
<a class="prev" href="{{ page.earlier.path | safe }}">&laquo; {{ page.earlier.title }}</a> <a class="prev" href="{{ page.lower.path | safe }}">&laquo; {{ page.lower.title }}</a>
{% endif %} {% endif %}
{% if page.later %} {% if page.higher %}
<a class="next" href="{{ page.later.path | safe }}">{{ page.later.title }} &raquo;</a> <a class="next" href="{{ page.higher.path | safe }}">{{ page.higher.title }} &raquo;</a>
{% endif %} {% endif %}
</div> </div>
<hr> <hr>