feat: complete opencoreRS microkernel with Ring 3 userspace, VFS, IPC, and shell

This commit is contained in:
RarDog
2026-09-02 15:52:57 +03:00
commit d0c27c3d54
72 changed files with 6938 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
/* ──────────────────────────────────────────────────────────────
* kernel/linker.ld — opencoreRS kernel linker script
*
* Раскладка в виртуальной памяти:
* 0xFFFFFFFF80000000 — начало kernel (higher-half)
*
* Limine грузит ядро туда, куда указывает ELF,
* поэтому мы просто задаём адреса секций.
* ─────────────────────────────────────────────────────────────*/
ENTRY(_start)
/* Ядро живёт в верхней половине виртуального адресного пространства */
KERNEL_VIRT_BASE = 0xFFFFFFFF80000000;
SECTIONS
{
/* Стартовый адрес */
. = KERNEL_VIRT_BASE;
__kernel_start = .;
/* ── Limine protocol requests (должны быть в первых 2 GiB) ──── */
.limine_requests_start ALIGN(8) :
{
KEEP(*(.limine_requests_start))
}
.limine_requests ALIGN(8) :
{
KEEP(*(.limine_requests))
}
.limine_requests_end ALIGN(8) :
{
KEEP(*(.limine_requests_end))
}
/* ── Код ─────────────────────────────────────────────── */
.text ALIGN(4K) :
{
*(.text.boot) /* Точка входа — первой! */
*(.text .text.*)
}
/* ── Read-only данные ────────────────────────────────── */
.rodata ALIGN(4K) :
{
*(.rodata .rodata.*)
}
/* ── Данные ──────────────────────────────────────────── */
.data ALIGN(4K) :
{
*(.data .data.*)
}
/* ── BSS (обнуляемые данные) ─────────────────────────── */
.bss ALIGN(4K) :
{
__bss_start = .;
*(.bss .bss.*)
*(COMMON)
__bss_end = .;
}
__kernel_end = .;
/* Отбрасываем ненужные секции */
/DISCARD/ :
{
*(.comment)
*(.eh_frame)
*(.note .note.*)
}
}