Many have already answered your first question about the cross compiler. What Linux distro are you running on the x86 computer (or other OS [eg. BSD, Haiku OS, MenuetOS, AROS, other x64 OS])?
Now as to your questions about putting text on the screen and accessing the keyboard.
First putting text on the screen:
You are going to have to first get to a booted state and access the mailbox protocal to setup the graphics framebuffer, then learn to draw into the framebuffer (no text mode in the Raspberry Pi, text has to be drawn), then you will need some kind of font renderer to actually display the text (fixed width bitmapped font is the easiest).
You will likely draw a lot of graphics before you actually implement a font rendering system to display text.
As to accessing the Keyboard:
You will need to get a USB stack up and running, as there is no pre provided way to access the keyboard on the Raspberry Pi. This one is simplified if you do not mind using restrictively GPL licensed code as USPi is a good easy to use USB stack for bare metal programming on the Raspberry Pi.
If you study the existing USB stacks, maybe you can end up learning enough to write your own.
Back to text rendering
Once you get far enough that you are starting to get a good grip on the Raspberry Pi HW, using the DMA's with stride to display a fixed width bitmapped font on screen is fairly simple to accomplish, this will reduce the time the CPU spends writing to the framebuffer.
Also the DMA channels can be used to accomplish many other graphics functions including:
- Any straight vertical or horizontal line.
- Most other line drawing (look at Bresenham's Run Segment Line Drawing algorithm, and think about 2 DMA channels with stride).
- Rectangle fill.
- Rectangular area copy (drawing a bitmapped image into a rectangular view port on the screen).
- Line filling of any shaped region (so long as the start/end x pos is known in each row).
- And many more.
Of course if you get that far you can also get to the point of playing with using OpenGL and similar interfaces on the GPU in bare metal, giving GPU accelerated graphics.