Linux splits the code running on the processor into two types:
Generally, most code runs as user code and the kernel provides mechanisms to prevent the multiple user programs colliding with each other. User programs are unaware of each other and need kernel mediation between each other. The kernel also restricts the operations a user application can perform. Each user program sees its own unique address space, so only memory allocated by the kernel to that program will appear in the program's address space. Each unique user address space is commonly called a "process".
As the kernel prevents user applications from having direct access to hardware, user applications that need hardware access need to go though the kernel to access hardware. In order to provide a consistent interface to hardware, the kernel presents hardware devices as a form of file. These special files appear to behave just like normal files and appear in the global file system (conventionally in the /dev directory).
Linux, unlike Microsoft® Windows®, has no concept of drive letters. There is no such thing as a "drive C:". Instead, application programs are presented with only one, global, file system. Individual disk drives can be attached and removed from this global system as required using the "mount" command. Generally the physical layout of the disks used by a Linux system is transparent to application programs.