Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
e088c0f
Separate QEMU run and bootloader building
GglLfr Jun 27, 2026
df6d2e3
Compile the kernel as PIE
GglLfr Jun 27, 2026
c15b00f
Actually it's working
GglLfr Jun 27, 2026
ba14ea6
Get PIE working, again
GglLfr Jun 28, 2026
f515e0a
Buddy tree initial impl
GglLfr Jun 28, 2026
d182bf6
Physical allocator initial impl
GglLfr Jun 28, 2026
13ba8dd
Nothing is working
GglLfr Jun 29, 2026
cd9b99e
Move all virtual mapping to kernel
GglLfr Jun 29, 2026
0abc9d0
Go back to static references
GglLfr Jun 29, 2026
dc69df3
Make everything work, actually
GglLfr Jun 29, 2026
85c99a2
Nothing is working
GglLfr Jun 29, 2026
d5cfc04
Everything works
GglLfr Jun 29, 2026
1eb0a7a
You don't work.
GglLfr Jun 29, 2026
5f7f61d
Maybe I was harsh to you, UEFI
GglLfr Jun 29, 2026
2e31278
Make the diff leaner
GglLfr Jun 29, 2026
942be74
Get log working
GglLfr Jun 29, 2026
3a2ad30
Symbol relocations, physical tree allocator
GglLfr Jun 30, 2026
5ad8f29
Physical page allocator is now ready
GglLfr Jun 30, 2026
a69d3a3
Restore OVMF
GglLfr Jun 30, 2026
dc5e523
Map the framebuffer
GglLfr Jun 30, 2026
214d0c2
Force phys alloc only 1
GglLfr Jun 30, 2026
fe98cb8
Don't confuse module name with extern crate alloc
GglLfr Jul 1, 2026
92602a8
Clean up lib.rs
GglLfr Jul 1, 2026
c8fbb4d
Direct mapping with a constant offset
GglLfr Jul 5, 2026
a609b71
Completely get rid of recursive mapping
GglLfr Jul 5, 2026
1ac0725
\n
GglLfr Jul 5, 2026
75c3c74
Apparently there was absolutely no need for explicit RIP-relative add…
GglLfr Jul 5, 2026
bc2b35f
Global descriptor table
GglLfr Jul 1, 2026
b1a0fb6
Handle page faults
GglLfr Jul 1, 2026
af98f67
Handle double faults
GglLfr Jul 1, 2026
3f3e61e
Maybe i shouldn't touch these, actually
GglLfr Jul 1, 2026
df0a139
Remove test
GglLfr Jul 5, 2026
722635a
Handle page faults
GglLfr Jul 1, 2026
ea472b0
Parse ACPI headers
GglLfr Jul 2, 2026
221914b
Use a trait-based parser
GglLfr Jul 2, 2026
91dbeaa
Don't use self type
GglLfr Jul 2, 2026
8d87a79
Parse XSDT tables
GglLfr Jul 2, 2026
ddc69c4
Glorious ACPI API
GglLfr Jul 2, 2026
9af9a09
Replace SystemTableTyped into its own corresponding types
GglLfr Jul 2, 2026
59c0b9e
Parse MADT table
GglLfr Jul 3, 2026
ecdfc9c
Cleaner macros
GglLfr Jul 3, 2026
497240d
Leave things be for now
GglLfr Jul 5, 2026
6f7cd5d
Fix more conflicts
GglLfr Jul 5, 2026
fc7800e
Slot allocator
GglLfr Jul 6, 2026
bcfb638
Use slab allocator for GDT
GglLfr Jul 8, 2026
16860e8
Why are you here bruh
GglLfr Jul 8, 2026
db11fd5
Use slab allocator for GDT
GglLfr Jul 8, 2026
58f7d3b
Fix bugs
GglLfr Jul 8, 2026
cea5934
Calculate kernel_base
GglLfr Jul 8, 2026
3ed4a97
Separate MemoryTypes
GglLfr Jul 8, 2026
a4a14b1
Use 16-bit address for page table
GglLfr Jul 8, 2026
da9bd69
Make it usable in lib
GglLfr Jul 8, 2026
b7246cb
Preparing for APIC
GglLfr Jul 8, 2026
424ba39
Send INIT signal to AP cores
GglLfr Jul 8, 2026
44bb772
AP cores now at protected mode
GglLfr Jul 8, 2026
1faee6d
Just delay once
GglLfr Jul 8, 2026
b0d38f5
Better offsets
GglLfr Jul 8, 2026
541afb7
AP Cores are now at long mode
GglLfr Jul 8, 2026
8eea6df
Begone ASM dump
GglLfr Jul 8, 2026
87c59da
All AP cores now at long mode and have interrupts
GglLfr Jul 8, 2026
97b696e
Disable writing after mapping
GglLfr Jul 8, 2026
4252d03
Symmetric Multiprocessing
GglLfr Jul 9, 2026
8b0ad16
Get rid of handles, work with addresses directly
GglLfr Jul 9, 2026
72bee47
Deallocation
GglLfr Jul 9, 2026
f208a3a
Don't bother with allocator closures
GglLfr Jul 9, 2026
134e7d4
Why was cld here
GglLfr Jul 9, 2026
19d46f6
Uninitialized allocation
GglLfr Jul 9, 2026
5a78692
Slab drop
GglLfr Jul 9, 2026
c2b03c1
CPU local context
GglLfr Jul 9, 2026
dbd7a5e
Draw to framebuffer with multiple cores
GglLfr Jul 9, 2026
404b9d9
Global for everything because screw Meltdown
GglLfr Jul 9, 2026
1d780b4
Merge pull request #7 from ThePythonGuy3/interrupts
GglLfr Jul 9, 2026
8da3b87
Merge branch 'acpi' into pie
GglLfr Jul 9, 2026
b6fea1b
syscall clobbers rcx
GglLfr Jul 9, 2026
d25f5bc
Userspace program entry
GglLfr Jul 9, 2026
b172290
Begone debugging
GglLfr Jul 9, 2026
79fbb76
Preparing for heap allocator
GglLfr Jul 11, 2026
7f674d2
Use u64 for bitset
GglLfr Jul 11, 2026
2a53f1f
Segment allocation
GglLfr Jul 12, 2026
8f78949
Segment allocator (not done)
GglLfr Jul 13, 2026
c445bd7
So done with this
GglLfr Jul 13, 2026
d41520d
Huge allocation
GglLfr Jul 13, 2026
dc6efdf
Get rid of slab allocator
GglLfr Jul 13, 2026
aeab124
Reduce tree count
GglLfr Jul 13, 2026
95779e0
Syscall handler
GglLfr Jul 13, 2026
fd0d675
Swapgs for interrupts as well
GglLfr Jul 13, 2026
6231e62
Kernel stack guard
GglLfr Jul 14, 2026
517b496
Task state segment + interrupt API improvement
GglLfr Jul 14, 2026
5d44ae1
Better syscall entry API
GglLfr Jul 14, 2026
c6407e0
It's not used anymore
GglLfr Jul 14, 2026
4e9bc5c
Enable extended register saving
GglLfr Jul 15, 2026
c8a1543
Pin Rust version
GglLfr Jul 20, 2026
047e0d3
Change almost all asms to use AT&T syntax
GglLfr Jul 21, 2026
dcaf2a3
Use AT&T syntax for AP core trampoline
GglLfr Jul 21, 2026
7390dc9
Fix compiler warnings (most)
GglLfr Jul 21, 2026
73fec4b
Make AP asm copying more idiomatic (and technically not unsound)
GglLfr Jul 22, 2026
41e3a6b
Use raw pointers
GglLfr Jul 22, 2026
401e515
Force -fPIE in the kernel
GglLfr Jul 22, 2026
f52d0e6
AT&T syntax for interrupt handlers
GglLfr Jul 22, 2026
8b780c7
Task queue
GglLfr Jul 22, 2026
021c5c2
Task scheduling, still broken
GglLfr Jul 23, 2026
045ee0c
Fix (almost) everything
GglLfr Jul 23, 2026
333806e
Fix everything
GglLfr Jul 23, 2026
5e01331
Forgot to bring the other cores
GglLfr Jul 23, 2026
fb35ea6
This bothered me a bit
GglLfr Jul 23, 2026
1b6244e
Technicalities
GglLfr Jul 23, 2026
5b6fa52
Timer scheduling implementation
GglLfr Jul 24, 2026
6a20b8f
Completely get rid of PIT timer
GglLfr Jul 24, 2026
0c7e5a5
Separate alloc into a crate
GglLfr Jul 25, 2026
9ac0ba4
Mem map syscall (stub), proper register clobbering
GglLfr Jul 25, 2026
6883595
Typesafe syscall
GglLfr Jul 25, 2026
6a10fb0
Do not transmute
GglLfr Jul 26, 2026
dfae7bb
Send/Sync
GglLfr Jul 26, 2026
b6d4167
Process/task separation
GglLfr Jul 31, 2026
81bb0ef
Preemption and cooperation
GglLfr Jul 31, 2026
bcfe9b2
Proper stack set for double fault
GglLfr Jul 31, 2026
1bca52d
Zero out ext registers
GglLfr Jul 31, 2026
850c65a
Fix IDT macros
GglLfr Jul 31, 2026
e52c53f
Naming
GglLfr Jul 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,21 @@ target = "target-specs/x86_64-unknown-elpytios.json"

[profile.bootloader]
inherits = "release"
lto = "thin"
lto = "on"

[profile.bootloader_debug]
inherits = "bootloader"
strip = "none"
debug-assertions = true
debug = "full"
lto = "off"

[target.x86_64-unknown-none]
rustflags = ["-C", "code-model=kernel", "-C", "relocation-model=static"]
rustflags = [
"-C",
"no-redzone=yes",
"-C",
"relocation-model=pie",
"-C",
"linker-flavor=ld.lld",
]
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
/*.exe
/*.pdb
/*.log

/target
/esp
*.qcow2

/rustc-ice-*
/Cargo.lock
/rustc-ice-*
Loading