Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I pulled together a small kernel, which sets up a gdt and prints some stuff on the screen, and it is a valid multboot elf file, which grub recognizes, however, when I boot it, I don't see the character being printed, I've attached the code. I've tried everything I can think of, I just can't figure out the problem. (Note, this is my first attempt at a protected mode OS, cut me some slack if its a stupid mistake).
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Just noted in your linker script you're relocating to 0xc0000000. This means that the executable you're creating is expecting to be run at address 0xC0000000, whereas by the AT directive you're informing grub to actually load the sections at 0x100000. This means the memory access to load your gdt is wrong.
If you really want a higher half kernel, I suggest you follow the instructions in Higher Half With GDT. You'll note that it defines a special section in the output, called .setup, which contains the gdt to be loaded, and specifies both the virtual and physical addresses to be at 1MB, whereas the rest of the sections (.text, .data and .bss) are loaded above 1MB but relocated to above 0xc0000000.