Our printer driver will copy its input (from
stdin) to the printer, and it can do that it
one of two ways. The first way is to hand it all off to the
kernel driver, with the knowledge that the protocol that the
printer speaks is IEEE 1284's "compatibility"
mode.

We hand the data to the kernel-level driver (using
write) and it handles the printer
protocol.

Now let's do it the hard way! In this particular example there is
no practical reason to do anything other than just call
write, because we know that the printer talks
an IEEE 1284 protocol. On the other hand, this particular example
does not even need a user-land driver since there is already a
kernel-level one; for the purpose of this discussion, try to
imagine that the printer speaks a protocol that is not already
implemented under Linux.

So, here is the alternative implementation of
write_printer (for brevity, error checking
has been omitted):