as every kernel will have every init, recently i'm noticing about some microkernel init. I've notice that this microkernel has less source code for init if i compare to linux l4k4 microkernel init the first 4 operations: 1. init kdebug kernel_info_page.kdebug_init(); 2. print the kernel version printf(kernel_version); 3. doing basic architectural init init_arch_1(); 4. initialize kernel memory allocator kmem_init(); this is the kmem_init: ============ void kmem_init() { /* * From linker scripts. */ extern dword_t text_paddr[]; extern dword_t _end_text_p[]; #if defined(CONFIG_DEBUG_SANITY) if (kmem_end < kmem_start) printf("%s(%x,%x) is a silly config\n", __FUNCTION__, kmem_start, kmem_end); #endif #if defined(CONFIG_DEBUG_TRACE_MISC) printf("%s(%x,%x)\n", __FUNCTION__, kmem_start, kmem_end); #endif kmem_free((ptr_t) kmem_start, kmem_end-kmem_start); kernel_info_page.reserved_mem0_low = (dword_t) text_paddr; kernel_info_page.reserved_mem0_high = (dword_t) _end_text_p; kernel_info_page.reserved_mem1_low = virt_to_phys((dword_t) kmem_start); kernel_info_page.reserved_mem1_high = (virt_to_phys((dword_t) kmem_end) + (PAGE_SIZE-1)) & PAGE_MASK; } =======================