|
@@ -95,10 +95,13 @@ extern "C" [[noreturn]] void init()
|
|
#else
|
|
#else
|
|
FlatPtr kernel_load_base = 0x2000200000;
|
|
FlatPtr kernel_load_base = 0x2000200000;
|
|
#endif
|
|
#endif
|
|
|
|
+
|
|
|
|
+#if ARCH(X86_64)
|
|
// KASLR
|
|
// KASLR
|
|
static constexpr auto maximum_offset = 256 * MiB;
|
|
static constexpr auto maximum_offset = 256 * MiB;
|
|
kernel_load_base = kernel_load_base + (generate_secure_seed() % maximum_offset);
|
|
kernel_load_base = kernel_load_base + (generate_secure_seed() % maximum_offset);
|
|
kernel_load_base = kernel_load_base & ~(PAGE_SIZE - 1);
|
|
kernel_load_base = kernel_load_base & ~(PAGE_SIZE - 1);
|
|
|
|
+#endif
|
|
|
|
|
|
FlatPtr kernel_load_end = 0;
|
|
FlatPtr kernel_load_end = 0;
|
|
for (size_t i = 0; i < kernel_elf_header.e_phnum; i++) {
|
|
for (size_t i = 0; i < kernel_elf_header.e_phnum; i++) {
|