Most files have one or more symbolic names which refer to them. File descriptors are created by system calls which open files and are inherited by new processes which are forked off from the current process. That is, when a process starts a new program, the original process's open files are normally inherited by the new program. File descriptor 0 is standard input, where many programs expect to receive input from the outside world. File descriptor 1 is standard output.
Most programs display normal output there.
Anyone comfortable with Linux shells has seen the use of the standard in, out, and error file descriptors. This type of file redirection is one of the most powerful features of the Linux command line.