Add page directory cloning, beginning of multitasking
diff --git a/src/kernel/alloc.c b/src/kernel/alloc.c
index 0268928..e3c85b1 100644
--- a/src/kernel/alloc.c
+++ b/src/kernel/alloc.c
@@ -7,7 +7,7 @@
 
 extern uint end;
 static size_t palloc_base = (size_t)&end;
-static size_t malloc_base = (size_t)&end + 0x2000;
+static size_t malloc_base = (size_t)&end + 0x8000;
 
 #define HEADER_SIZE sizeof(struct heap_alloc_header)
 #define FOOTER_SIZE sizeof(struct heap_alloc_footer)
@@ -24,11 +24,18 @@
 
 	if (phys)
 	{
-		*phys = (void *)palloc_base;
+		*phys = (void *)VIRT_TO_PHYS((void *)palloc_base);
 	}
 
 	size_t addr = palloc_base;
 	palloc_base += size;
+
+	if (palloc_base >= malloc_base)
+	{
+		kpanic("fatal error: placeholder kmalloc has overrun malloc() memory,"
+			   " cannot recover.");
+	}
+
 	return (void *)addr;
 }