/dev/ is the part of the Unix directory tree that contains all “device” files — Unix traditionally treats just about everything you can access as a file to read from or write to.
sd originally identified an SCSI device, but since the wild growth of USB (and other removable) data carriers it became a catch-all for any block device (another Unix term; in this context, anything capable of carrying data) that wasn’t already accessible via IDE. When SATA came around, the developers figured it’d be much easier and much more convenient for everyone to add it to the existing framework rather than write a whole new framework.
The letter immediately after sd signifies the order in which it was first found — a,b,c…z, Aa…Az… etc. (Not that there are many situations in the real world where more than 26 discrete block devices are on the same bus…)
what is meant by (hd0,1)?
Grub is a bootloader. -> “A bootloader is a program that is found by the system BIOS in the boot sector of your storage device (hard drive’s Master boot record), and which locates and starts your operating system for you.”
Grub has its own format/syntax for finding an HD location that’s different from the syntax the Linux OS uses:
(hd0,5) = sda5
(hd2,8) = sdc8
(hd1,3) = sdb3
Not to be confusing, but Grub is still going through a transition from the original grub, Grub legacy, to Grub2, a rewritten and updated version. In the above example, the syntax is correct for Grub2 but incorrect for Grub legacy. Most distros now use grub2 but not all of them.