Philipp Oppermann
ebb3e413dd
Update GDT code in post (no data segments anymore)
...
We also load 0 into all data segment registers to avoid future problems with iretq. Also: minor wording improvements.
2017-01-14 16:42:18 +01:00
Philipp Oppermann
a8847c22ef
Fix broken links
2017-01-04 16:36:25 +01:00
Philipp Oppermann
64cbabd1c2
make panic_fmt public in posts
2017-01-04 16:15:59 +01:00
Philipp Oppermann
f6a1faab96
Fix broken links in “Double Faults” ( #275 )
2017-01-02 19:39:19 +01:00
Philipp Oppermann
c39070da4a
“Double Faults” is the 12th post
2017-01-02 19:15:50 +01:00
Philipp Oppermann
9090bf0c06
Set correct release date
2017-01-02 19:11:56 +01:00
Philipp Oppermann
055c534b4e
Add a section about possible safety problems
2017-01-02 19:11:56 +01:00
Philipp Oppermann
80354c8a72
Multiple code corrections in post
2017-01-02 19:11:56 +01:00
Philipp Oppermann
cce40a1d67
Many small improvements
2016-12-30 14:54:46 +01:00
Philipp Oppermann
e121edced2
Change the GDT push logic
...
Instead of looking for a zero field, we now keep track of the next free index in a separate field. This avoids the bug that the high u64 of a pushed TSS descriptor is treated as empty.
2016-12-30 14:54:46 +01:00
Philipp Oppermann
ec358321da
Finish first draft of double faults post
2016-12-30 14:52:04 +01:00
Philipp Oppermann
ceb44d9c2e
Use x86's TaskStateSegment and use usize for stack pointers
2016-12-30 14:52:04 +01:00
Philipp Oppermann
d1fb1516fa
Minor improvements to post
2016-12-30 14:52:04 +01:00
Philipp Oppermann
ef786e1fe8
Update post and code
2016-12-30 14:52:04 +01:00
Philipp Oppermann
038fd097b6
Update post
2016-12-30 14:52:04 +01:00
Philipp Oppermann
b4bc47d5d9
Add a new section about the causes of double faults
...
(+ many other improvements)
2016-12-30 14:51:47 +01:00
Philipp Oppermann
8eba47816f
Begin new post about double faults
2016-12-30 14:50:52 +01:00
Philipp Oppermann
c33f01d8f7
Update printing-to-screen post to use spin 0.4.5
2016-12-30 14:47:39 +01:00
Philipp Oppermann
14babd8c2a
Add a Xargo.toml for xargo 0.3.0 and update the corresponding post ( #272 )
2016-12-29 16:45:24 +01:00
Philipp Oppermann
02697891e2
Update x86 crate to version 0.8.0 ( #266 )
2016-12-21 14:59:57 +01:00
Philipp Oppermann
a7a9aabce7
Remove workspace from post as well ( #267 )
2016-12-21 14:55:09 +01:00
Philipp Oppermann
00452c2302
Revert "map the P4 table recursively before setting paging" ( #259 )
2016-12-19 11:34:21 +01:00
Philipp Oppermann
c5dd983949
Mark panic_fmt as no_mangle to work around rust-lang/rust#38281 ( #262 )
2016-12-19 11:32:20 +01:00
Anton Strömkvist
bef61116fd
Minor grammatical error fix ( #258 )
...
In `02-entering-longmode.md`
2016-11-30 16:28:45 +01:00
Philipp Oppermann
f4c9c12047
Fix panic_fmt arguments in post
2016-11-26 12:17:12 +01:00
Philipp Oppermann
a1fccc12b6
Set date of last update correctly for posts ( #254 )
2016-11-08 17:45:36 +01:00
Philipp Oppermann
9963961f35
Test the handler_with_error_code macro in a different way
...
We now take stack_frame as a immutable reference and we shouldn't write to a &. So the old test example (page faults as breakpoints) becomes even more hacky. Instead, we're now deliberately entering an endless page fault loop to check our iretq logic.
2016-11-01 17:50:51 +01:00
Philipp Oppermann
67857bde2f
Returning from Exceptions: Take stack_frame as reference
2016-11-01 17:46:57 +01:00
Philipp Oppermann
e129da8cc2
Better Exception Messages: Take stack_frame argument as reference
2016-11-01 17:46:57 +01:00
Philipp Oppermann
f737c302e7
therefor -> for that
2016-10-31 15:31:32 +01:00
Philipp Oppermann
3bfa5a8178
Update “Returning from Exceptions” to use println
2016-10-31 01:04:53 +01:00
Philipp Oppermann
25fca59248
Update “Better Exception Messages” to use println
2016-10-30 20:06:51 +01:00
Philipp Oppermann
f14baa218e
Fix typo
2016-10-30 19:12:55 +01:00
Philipp Oppermann
ca522db7bf
Exceptions inside printlns are no longer a problem
...
The recent update to the vga driver evaluates the arguments before locking the global stdout writer
2016-10-30 17:32:04 +01:00
Philipp Oppermann
41c87636e0
Improve wording and add some more QEMU screenshots
2016-10-30 17:23:17 +01:00
Philipp Oppermann
cfccffca39
Trigger and fix the deadlock for nested printlns
2016-10-30 16:54:03 +01:00
Philipp Oppermann
c69f73b9b2
Improve some explanations in the section about fomatting macros
2016-10-30 16:53:24 +01:00
Dentosal
1fe9e87ead
Remap the Kernel: Fixed broken link ( #247 )
2016-10-24 00:06:58 +02:00
Matanel Levi
f35ea9430c
Page Tables: clarify that we need to map the P4 table recursively before enabling paging ( #246 )
...
We have to map the P4 table recursively before setting paging - can't do this wherever we'd like.
2016-10-23 16:04:09 +02:00
Philipp Oppermann
92b04dfba7
Remove old “Update” sections ( #244 )
...
Most of these updates are quite old and thus distracting. Instead, we now have a “Recent Changes” box in the sidebar of the front page.
2016-10-15 17:10:43 +02:00
Philipp Oppermann
941fca8b0d
Better Exception Messages: Add example code that triggers the triple fault again ( #242 )
2016-10-12 16:56:25 +02:00
Philipp Oppermann
7db50a1a62
Fine-tune the section about volatiles
2016-10-08 15:41:59 +02:00
Philipp Oppermann
895cab981b
Rewrite post to use and explain volatiles
...
Also extends some other explanations.
2016-10-06 23:57:26 +02:00
Philipp Oppermann
cd93924159
Add a footnote that userspace programs can still use SSE
...
Fixes #227
2016-10-02 18:49:20 +02:00
Philipp Oppermann
2b07d88b62
Update post to use multiboot2 from crates.io
2016-09-27 13:46:29 +02:00
Philipp Oppermann
4db15a7e80
Update post to new bit_field code
2016-09-27 13:25:03 +02:00
Philipp Oppermann
f73006a24f
Fix link syntax ( #228 )
2016-09-25 21:48:43 +02:00
Calvin Lee
5b9a45674d
Minor wording change
...
"so that the calling code cannot overflow `heap_start`" -> "so that `alloc_end` cannot overflow"
2016-09-22 16:03:32 -06:00
Calvin Lee
54e02fd6b5
Fixes #220 : BumpAllocator overflow
...
I also fixed a spelling error and replaced a tab with a space
in the blog post where `allocate()` was created.
2016-09-22 12:25:59 -06:00
Philipp Oppermann
901ca7f2ed
Rewrite “Cross Compile Libcore” guide using rustup and xargo
...
Rustup replaces the “Download it” solution and xargo the “Build it using cargo” solution.
2016-09-22 15:34:24 +02:00