#include #include #include #include #include #include #include #include #include #include static struct page_directory *kernel_directory; void start_kernel() { char buf[512] = {0}; init_display(2); block_init(); vprintl("Hello World!!!\n"); vprintl("Testing it!!!\n"); kernel_heap_init(); interrupts_init(); kernel_directory = paging_new_directory(PAGING_IS_WRITABLE | PAGING_IS_PRESENT | PAGING_USER_ACCESS); paging_switch(kernel_directory); char *ptr = kzalloc(4096); char *ptr2; paging_map_vaddr(kernel_directory, (void *)0x1000, ptr, (PAGING_USER_ACCESS | PAGING_IS_PRESENT | PAGING_IS_WRITABLE)); enable_paging(); enable_interrupts(); ptr2 = (char *) 0x1000; ptr[0] = 'A'; vprintl(ptr); vprintl(ptr2); ptr2[1] = 'B'; vprintl("new ptr\n"); vprintl(ptr); vprintl(ptr2); kfree(ptr); bread(bdev_get(0), 0, 1, buf); }