ladybird/Kernel
Andreas Kling e362b56b4f Kernel: Move kernel above the 3GB virtual address mark
The kernel and its static data structures are no longer identity-mapped
in the bottom 8MB of the address space, but instead move above 3GB.

The first 8MB above 3GB are pseudo-identity-mapped to the bottom 8MB of
the physical address space. But things don't have to stay this way!

Thanks to Jesse who made an earlier attempt at this, it was really easy
to get device drivers working once the page tables were in place! :^)

Fixes #734.
2020-01-17 22:34:26 +01:00
..
ACPI Kernel: Change ACPI & DMI definitions a bit 2020-01-14 15:38:58 +01:00
Arch/i386 Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
Devices Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
FileSystem Kernel: Misc tweaks 2020-01-17 21:49:58 +01:00
Heap Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
Net Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
PCI Kernel: Move DMI decoder initialization method to init_stage2 2020-01-14 15:38:58 +01:00
TTY Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
VM Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
.bochsrc Meta: Make Serenity run on Bochs once again 2019-08-06 21:09:24 +02:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h} 2019-06-07 20:02:01 +02:00
build-gpt-image-grub.sh Build: Fix more bugs in the POSIX sh-ification of scripts 2019-11-03 13:11:43 +01:00
build-image-grub.sh Build: use $SUDO_[UG]ID in build-image-* instead of relying on makeall 2020-01-15 21:52:09 +01:00
build-image-qemu.sh Build: use $SUDO_[UG]ID in build-image-* instead of relying on makeall 2020-01-15 21:52:09 +01:00
build-root-filesystem.sh Base: Let's make home directories 700 to keep things private :^) 2020-01-09 21:57:52 +01:00
CMOS.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
CMOS.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.cpp Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
Console.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
debug-kernel Debugging: Add kernel debugging support 2020-01-13 11:06:42 +01:00
DoubleBuffer.cpp Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
DoubleBuffer.h Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
FB.h Kernel: Add framebuffer ioctls; wrap raw ioctls with a C API 2019-08-18 07:40:02 +02:00
grub.cfg Kernel: Move DMI decoder initialization method to init_stage2 2020-01-14 15:38:58 +01:00
grub_gpt.cfg Kernel: Move DMI decoder initialization method to init_stage2 2020-01-14 15:38:58 +01:00
init.cpp Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
IO.h Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
IRQHandler.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
IRQHandler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KBuffer.h Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.cpp Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
KernelInfoPage.h Kernel+LibC: Publish a "kernel info page" and use it for gettimeofday() 2019-12-15 21:29:26 +01:00
KeyCode.h Kernel: Implement AltGr key support 2019-12-31 19:31:42 +01:00
KParams.cpp AK: Make HashMap::get(Key) return an Optional<Value>. 2019-07-24 10:25:43 +02:00
KParams.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
kprintf.cpp Kernel: Demangle userspace ELF symbols in backtraces 2019-11-27 14:06:24 +01:00
KResult.h Kernel: Add KResult::error() to make it look symmetrical with KResultOr 2020-01-06 12:08:27 +01:00
kstdio.h Kernel: Overload dbgputstr for char array literals in C++ 2020-01-13 13:03:30 +01:00
KSyms.cpp Kernel+LibELF: Don't blindly trust ELF symbol offsets in symbolication 2020-01-16 22:11:31 +01:00
KSyms.h Kernel+LibELF: Don't blindly trust ELF symbol offsets in symbolication 2020-01-16 22:11:31 +01:00
linker.ld Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
Lock.cpp Kernel: Allow unlocking a held Lock with interrupts disabled 2020-01-13 18:56:46 +01:00
Lock.h Kernel: Allow unlocking a held Lock with interrupts disabled 2020-01-13 18:56:46 +01:00
makeall.sh Build: use $SUDO_[UG]ID in build-image-* instead of relying on makeall 2020-01-15 21:52:09 +01:00
Makefile Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
mkmap.sh Kernel: Allow modules to link against anything in kernel.map :^) 2019-11-28 21:30:20 +01:00
Module.h Kernel: Implement basic module unloading :^) 2019-11-28 21:07:22 +01:00
MousePacket.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Multiboot.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Process.cpp Kernel: Remove the use of FileSystemPath in sys$realpath() 2020-01-17 21:49:58 +01:00
Process.h Kernel+LibC: Unify sys$open() and sys$openat() 2020-01-17 21:49:58 +01:00
ProcessTracer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ProcessTracer.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
Profiling.cpp Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
Profiling.h Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
Random.cpp Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
Random.h Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
RTC.cpp Kernel: Fix BIOS date/time on hardware 2019-09-28 13:59:49 +02:00
RTC.h Add clang-format file 2019-05-28 17:31:20 +02:00
run run: Bump default RAM size from 128 MB to 256 MB 2020-01-15 23:14:20 +01:00
Scheduler.cpp Kernel: Dispatch pending signals when returning from a syscall 2020-01-12 15:04:33 +01:00
Scheduler.h Kernel: Switch to eagerly restoring x86 FPU state on context switch 2020-01-01 16:54:21 +01:00
SharedBuffer.cpp Kernel: Use Vector::unstable_remove() in a couple of places 2020-01-15 19:26:41 +01:00
SharedBuffer.h Kernel+LibC: Make all SharedBuffers purgeable (default: non-volatile) 2019-12-09 20:06:47 +01:00
StdLib.cpp Kernel: Randomize the stack canary on startup 2020-01-06 13:05:40 +01:00
StdLib.h Kernel: Pass a parameter struct to mknod() 2020-01-11 10:27:37 +01:00
sync.sh Meta: Allow sync.sh to be run from any directory 2020-01-06 10:43:00 +01:00
Syscall.cpp Kernel: Dispatch pending signals when returning from a syscall 2020-01-12 15:04:33 +01:00
Syscall.h Kernel+LibC: Unify sys$open() and sys$openat() 2020-01-17 21:49:58 +01:00
TestModule.cpp Kernel: Have modules export their name in a "module_name" string 2019-11-29 21:31:17 +01:00
Thread.cpp Kernel: Allow unlocking a held Lock with interrupts disabled 2020-01-13 18:56:46 +01:00
Thread.h Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00
TimerQueue.cpp Kernel: Add kernel-level timer queue (heavily based on @juliusf's work) 2019-12-27 02:15:45 +01:00
TimerQueue.h Kernel: Add kernel-level timer queue (heavily based on @juliusf's work) 2019-12-27 02:15:45 +01:00
UnixTypes.h Kernel: Add a mode flag to sys$purge and allow purging clean inodes 2019-12-29 13:16:53 +01:00
WaitQueue.cpp Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00
WaitQueue.h Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00