early computers were non-interactive, e.g. batch jobs (card reader facility, and printing facility).
large computer facilities later became interactive (e.g. asr33 teletype, and later the CRT).
englebart's early visions: if the cathode ray screen of a radar set can display radar pictures... imagine pictures, and even letters of the alphabet appearing on a cathode ray screen in response levers, switches, and the like.
elglebart's concept (invention of mouse, interactive computing, etc.) was still mainframe oriented, though
with microprocessors (e.g. microcomputers) the interactivity is much more immediate.
early microprocessors (e.g. early microcomputers) used switches as input devices and LEDs as output devices, e.g. 4004-based microcomputer, or the 8085-based "sdk8085" system.
later, video was used for output (e.g. connection of computer to television screen).
computers can and should have video input as well as output.
the "imaging chain" of ece385:

typical generic "imaging chain":

more and more, however, device drivers are being constructed to
provide layers of abstraction, e.g.
insmod tv.o
cat temp.ppm > /dev/tv
is a contemporary approach to displaying an output image.
function call abstraction:
tv(temp)
tvscl(temp)
fprint versus fwrite
fscan versus fread
P5 #this is a comment 320 240 255 ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
example of color image: $ head trowel_out.ppm |less
P6 # cementinit v161.jpg 0.000000 0.000000 3.000000 -o trowel_out.plm # cementi trowel_out.plm v168.jpg 3.000000 3.000000 0.000000 # cementi trowel_out.plm v167.jpg 0.000000 9.000000 0.000000 # plm2pnm trowel_out.plm -o trowel_out.ppm 3060 2036 255 ^@^A^A^A ^B^B ^C^C ^C^C ^B^B ^B^B ^A^A ^@^@ ^@^@ ^@^A ^A^A ^B^A ^C^B ^E^C ^F^F ^G^F ^E^C ^B^A ^A^@ ^@^A ^A^B ^C^C ^F^F ^B^B ^A^A ^A^A ^C^C ^B^C ^@^A ^@^C ^A^C ^F^F ^C^C ^A^A ^A^A ^B^B ^C^C ^C^C ^B^B ^A^C ^E^E ^F^F ^B^B ^@^@ ^@^@ ^A^D ^@^G ^B^D ^B^D ^C^D ^F^E ^F^D ^E^B ^A^A ^@^A ^C^C ^E^E ^C^E ^E^F ^E^F ^E^F ^E^F ^C^E ^C^C ^C^C ^C^C ^B^B ^C^C ^C^C ^E^E ^E^E ^B^B ^C^C ^C^C ^E^E ^E^F ^C^E ^C^E ^C^E ^A^D ^A^D ^A^B ^B^C ^C^E ^C^E ^A^B ^@^A ^C^F ^B^E ^B^D ^A^B ^A^B ^B^C ^B^C ^C^E ^A^B ^@^A ^@^@ ^A^B ^C^E ^C^E ^A^D ^@^F ^@^A ^B^C ^B^D ^@^D ^A^C ^C^E ^E^F ^C^E ^@^C ^B^D ^E^F ^E^F ^B^D ^A^C ^C^E ^ ^@ ^A ^B^C ^E^G ^E^G ^C^F ^B^E ^B^E ^C^F ^E^E ^C^C ^C ^C ^C^C ^C^C ^C^C ^C^C ^C^C ^F^F ^C^C ^C^C ^C^C ^A^A ^B^C ^F^F ^@^A ^A^D ^ ^B^F ^A^D ^A^D ^A^D ^B ^F ^B ^A ^@^E ^@^E ^@^C ^@^E ^A^D ^B^F ^ ^F ^E^F ^E^F ^C^E ^C^E ^B^D ^B^E ^ ^B^D ^A^D ^C^E ^E^F ^B^D ^A^B ^C^E ^A^A ^G^F ^F^F ^E^E ^ ^E^K ^C ^B ^C ^ ^A^F ^B^E ^E^G ^ ^ ^@^G ^@^F ^C^C ^F^E ^G^E ^F^F ^ ^G^E ^C^F ^B^F ^@^F ^B^E ^B ^G ^@^E ^@^E ^A^E ^@^E ^@^C ^@^B ^@^C ^@^D ^B^F ^C ^G ^E^K ^E^F ^E^C ^E^C ^E^D ^E^F ^ ^ ^K^K ^E^E ^A^D ^C^C ^F^F ^E^E ^B^B ^B^C ^F ^ ^E^F ^B^D ^A^D ^E^F ^F ^E^G ^F^E ^C^C ^A^D ^C^E ^@^E ^@^C ^@^E ^E^K ^@^E ^@ ^E ^ ^E^E ^B^C ^E^F ^B^G ^A^G