1. uclinux is for hardware that do not have mmu.
2. check some rt linux
3. either one is ok. yes, gcc, gdb, jtag, ...
4. no idea
5. depends on what hardware u have, if u have flash only, then need not.
6. for different arch, they have different code. like arm, has http://www.arm.linux.org.uk/