/dev/sd
era originariamente utilizzato per i dispositivi che utilizzavano sd-bus
driver, che è il driver per i dispositivi SCSI (e sd
sta letteralmente per disco SCSI). Al giorno d'oggi è utilizzato per dischi SCSI, dischi SATA e dischi USB. Il motivo sembra essere che ora quasi tutti i dispositivi utilizzano il protocollo di comando SCSI sopra il bus non SCSI (il kernel tratta tutti i dispositivi ATA allo stesso modo usando libata e finge che siano dispositivi SCSI - grazie a @grawity), e quindi vediamo tutti questi dispositivi come /dev/sd
.
Ma non tutti i dispositivi di archiviazione sono /dev/sd
. /dev/hd
e /dev/xvd
sono ancora utilizzati:il primo per i dischi PATA/IDE e il secondo per i dispositivi di archiviazione cloud (dischi virtuali e così via) e hanno tutti driver e nomi diversi. Non li vedi perché l'archiviazione virtuale è solo su cloud/hypervisor (e probabilmente non ne usi nessuno) e perché i dischi PATA/IDE stanno diventando sempre più rari e sulla maggior parte delle macchine moderne il kernel utilizza effettivamente ide-scsi
driver per tradurlo nel protocollo SCSI (credito a @Wumpus Q. Wumbley).
Altri esempi includono /dev/mmcblkXpY
che è per dispositivi SD/eMMC/bare NAND/NOR e ha lo stesso schema di denominazione di /dev/nvme
e /dev/vd
che viene nuovamente utilizzato per i dischi virtuali nel cloud storage (credito a @Jan Dorniak per gli esempi extra).
Nel tuo caso , si chiama /dev/nvme
perché il disco è connesso tramite una porta NVME e utilizza nvme
driver su Linux. Puoi solo pensare a /dev/<something>
come un dispositivo che utilizza <something>
autista. Tutti i driver e le denominazioni dei dispositivi hanno i propri standard, non è uno standard per tutti, quindi va benissimo se la denominazione per i dispositivi NVME è così. E il motivo per cui nvme
non è tradotto in scsi
inoltre è che i due protocolli sono troppo diversi e una tale implementazione sarebbe troppo complessa (fare riferimento ai commenti di @grawity e @Vality per informazioni più dettagliate).
Oltre all'altra risposta, nota che NVMe ha il concetto di spazi dei nomi che non si adatterebbero a /dev/sd
$ ls -1 /dev/nvme*
/dev/nvme0
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2