Commit Graph

940 Commits

Author SHA1 Message Date
Philipp Oppermann
8d3cdf62e3 Add keyboard output gif 2020-03-26 13:42:05 +01:00
Philipp Oppermann
9e5e993a1b Fix typo 2020-03-26 13:42:05 +01:00
Philipp Oppermann
5a879058c9 Minor fixes 2020-03-26 13:42:05 +01:00
Philipp Oppermann
c26d36ebce Prevent deadlock by basing DummyWaker directly on RawWaker
Don't use Arc for DummyWaker. It causes a drop in the `add_scancode` function, which can easily lead to a deadlock because the function is called directly from the interrupt handler.
2020-03-26 13:42:05 +01:00
Philipp Oppermann
89f5350ac4 Start explaining the deadlock problem caused by Arc dealloc 2020-03-26 13:42:05 +01:00
Philipp Oppermann
c423363266 Small fixes to text and code examples 2020-03-26 13:42:05 +01:00
Philipp Oppermann
000adfb2be Create a keyboard task and use it with our SimpleExecutor 2020-03-26 13:42:05 +01:00
Philipp Oppermann
4f29fdea72 Add Waker support to the poll_next implementation on ScancodeStream 2020-03-26 13:42:05 +01:00
Philipp Oppermann
c3648e4b20 Implement Stream for ScancodeStream 2020-03-26 13:42:05 +01:00
Philipp Oppermann
dd83feec2d Add section about filling the scancode queue 2020-03-26 13:42:05 +01:00
Philipp Oppermann
45afd2032b Add section about scancode queue 2020-03-26 13:42:05 +01:00
Philipp Oppermann
744314cb3a Begin section about async keyboard interrupt 2020-03-26 13:41:25 +01:00
Philipp Oppermann
1907e5d3ce Summarize execution steps for the simple executor example 2020-03-26 13:41:25 +01:00
Philipp Oppermann
50db561774 Update implementation section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
326a35939a Start implementation section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
ae167faee5 Explain how async/await implements cooperative multitasking 2020-03-26 13:41:25 +01:00
Philipp Oppermann
fb0f30b9f0 Write section about executors and wakers 2020-03-26 13:41:25 +01:00
Philipp Oppermann
75e2626dc0 Some minor improvements 2020-03-26 13:41:25 +01:00
Philipp Oppermann
def0e6762d Add images for pinning section 2020-03-26 13:41:25 +01:00
Rob Gries
ba6452c5b0 Fix typos (#759) 2020-03-26 13:41:25 +01:00
Philipp Oppermann
817c0c56ab Fix typo 2020-03-26 13:41:25 +01:00
Philipp Oppermann
81f71982f4 Finish first draft of pinning section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
bf07f26e73 Begin section about pinning 2020-03-26 13:41:25 +01:00
Philipp Oppermann
642ff0f27f Minor improvement 2020-03-26 13:41:25 +01:00
Philipp Oppermann
58faf5adf0 Remove old section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
868a6f03ec Add explantion for state machine code 2020-03-26 13:41:25 +01:00
Philipp Oppermann
2ff011ffba Split code example into individual match cases; add code for example 2020-03-26 13:41:25 +01:00
Philipp Oppermann
7ce491df53 Start creating full state machine for example 2020-03-26 13:41:25 +01:00
Philipp Oppermann
3d89841a51 Update async/await sections and 'saving state' section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
3cff5d0961 Small improvements 2020-03-26 13:41:25 +01:00
Philipp Oppermann
51a02a4064 Typo fix 2020-03-26 13:41:25 +01:00
Philipp Oppermann
752accdd33 Explain how to work with futures and introduce async/await 2020-03-26 13:41:25 +01:00
Philipp Oppermann
bdcd392dbf Start explaining futures in Rust 2020-03-26 13:40:34 +01:00
Philipp Oppermann
6f7c5a35dd Begin a new post about async/await 2020-03-26 13:40:34 +01:00
StackDoubleFlow
4feaffe102 Use a instead of an before a constant (#766) 2020-03-17 08:48:17 +01:00
Philipp Oppermann
e0686209f4 Fix cargo doc links that were moved
Move occured in https://github.com/rust-lang/cargo/pull/7733 and was just released together with Rust 1.42.
2020-03-13 13:47:26 +01:00
Patrick
aeafe57c5d Removed unnecessary word (#765)
Removed the word "executes" from "The CPU executes tries to write to `0xdeadbeef`, which causes a page fault."
2020-03-11 13:07:22 +01:00
Philipp Oppermann
82c6a5dd60 Update x86_64 dependency to version 0.9.6 2020-03-08 14:38:38 +01:00
Philipp Oppermann
f9002f9f9b Update Heap Allocation post for new spinlock type of linked_list_allocator 2020-03-06 14:56:07 +01:00
Philipp Oppermann
bf4c928214 Update Heap Allocation post for #763 2020-03-06 11:50:29 +01:00
Philipp Oppermann
bfdc1e96a6 Create February status update 2020-03-02 11:42:19 +01:00
Philipp Oppermann
fb920af5dc Hardware Interrupts: Update pc-keyboard crate to v0.5.0 2020-02-26 12:17:35 +01:00
Philipp Oppermann
0619f3a9e7 Convert all external links to https (if supported) 2020-02-21 11:53:34 +01:00
Philipp Oppermann
b532c052ad Double Faults: A missing handler leads to a #GP exception (not a #NP)
A IDT entry that is zero is not valid (e.g. the must-be-one bits are not set). For this reason, a general protection fault occurs instead of a segment-not-present fault.

See https://github.com/phil-opp/blog_os/issues/449#issuecomment-558906316 for more information.
2020-02-19 10:58:55 +01:00
Philipp Oppermann
a392065ca8 Merge pull request #732 from phil-opp/phil-opp-patch-1
Mention in "Paging Introduction" that a CPU with 5-level paging is available now
2020-02-18 14:58:21 +01:00
Philipp Oppermann
2cb6d2f3d0 Add a _index.md to prevent orphan pages 2020-02-17 13:45:49 +01:00
Philipp Oppermann
65da18d143 Fix dead links 2020-02-17 13:41:22 +01:00
Philipp Oppermann
db69d016a9 Add metadata to translations and list translators 2020-02-17 12:04:12 +01:00
Philipp Oppermann
0ae8c972bb Specify a template for zh-TW posts 2020-02-17 11:18:09 +01:00
Philipp Oppermann
04fae1194f Remove stale link 2020-02-17 11:04:04 +01:00