diff --git a/bootloader/boot.asm b/bootloader/boot.asm
index e321a10da5c818ffd616f9b3dd7f1e2bd1e130c8..ff513b2415bb64d4e07f4dfdf84ab8322e9380ea 100644
--- a/bootloader/boot.asm
+++ b/bootloader/boot.asm
@@ -1,3 +1,5 @@
+; This code file would be compiled and placed in MBR first block. 
+
 [bits 16]
 [org 0x7c00]
 
diff --git a/kernel/Makefile b/kernel/Makefile
index b38f33447dac45d9f7fddec355c80d0afb82a624..da488939cb7beaf9697c8027b97a633a5cfe14b2 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -2,13 +2,15 @@
 assemble: kernel head
 	ld -o kernel.img -Ttext 0x7e00 --oformat binary image_head.o kernel.o -m elf_i386
 	# Sector 1 = bootloader, Sector 2 - (512B TO 64K) = kernel
+	# Extend kernel.img to correct size. 
+	test $$(stat -c %s kernel.img) -le 65024
 	truncate --size=65024 kernel.img
 
 head:
 	nasm -f elf image_head.asm -o image_head.o
 
 kernel:
-	gcc -ffreestanding -fno-pie -c kernel.c -o kernel.o -m32
+	g++ -ffreestanding -fno-pie -c kernel.cc -o kernel.o -m32
 
 clean:
 	rm *.o *.img
diff --git a/kernel/kernel.c b/kernel/kernel.cc
similarity index 100%
rename from kernel/kernel.c
rename to kernel/kernel.cc