I am curious as to how printf works internally within Linux. I don't understand how it writes data to STDOUT.
After a bit of searching for the internals, I downloaded glibc and took a look at the source code:
__printf (const char *format, ...)
{
   va_list arg;
   int done;
   va_start (arg, format);
   done = vfprintf (stdout, format, arg);
   va_end (arg);
   return done;
}
After finding this, I went deeper into the vfprintf function - but the file is about 2500 lines of unfamiliar C code. I'm looking for an explanation from 10,000 feet of how printf works with a computer's memory and output to display characters on screen.
If I were a piece of assembly code what would I have to do to accomplish the same task? Is it operating system dependent?
 
    