In Linux, it seems like the operating system knows what kind of storage device it is connected to. Eg. I see /dev/sda for SSD device and /dev/mmcblk for SD card.
I was wondering how the operating system is able to know what kind of device is plugged in? Also, what is the component is the OS that lets it interact with these devices.. is it the device driver? I read that the OS presents all devices as a file.. is it the device driver that is presenting a common interface to allow for this file abstraction?