This question is more specific to Linux and how drivers are needed to talk to other peripherals.
Another way to ask this question would be: Why do we need drivers to begin with?
My PC has a UART hardware built in it. I plugin my Arduino board. I start a Serial communication using the terminal. At it's core,
the terminal uses read/write system calls from the kernel space to send and receive data from the PC UART to Arduino UART.
Now are there any pre installed drivers involved here?
If I plug a webcam or a printer to the same Serial port I need to install a driver. Why is that? Why can't the UART hardwares send data to each other like the above example. I would assume there is a piece of software on the other peripheral (much like the Arduino boot loader) which handles the received data from UART and puts in in the correct locations/registers.