GNU/Linux >> Znalost Linux >  >> Linux

Proč Linux uvádí jednotky NVMe jako /dev/nvme0 namísto /dev/sda?

/dev/sd byl původně používán pro zařízení používající sd-bus ovladač, což je ovladač pro zařízení SCSI (a sd doslova znamená SCSI disk). V současné době se používá pro SCSI disky, SATA disky a USB disky. Zdá se, že důvodem je to, že nyní téměř všechna zařízení používají příkazový protokol SCSI nad sběrnicí bez SCSI (jádro zachází se všemi ATA zařízeními stejně pomocí libata a předstírá, že jsou to SCSI zařízení – zásluha @grawity), a proto všechna tato zařízení vidíme jako /dev/sd .

Ne všechna úložná zařízení jsou však /dev/sd . /dev/hd a /dev/xvd se stále používají - první pro disky PATA/IDE a druhé pro cloudová úložiště (virtuální disky atd.) a všechny mají jiné ovladače a názvy. Nevidíte je, protože virtuální úložiště je pouze na cloudech / hypervizorech (a pravděpodobně žádné nepoužíváte) a protože PATA/IDE disky jsou stále vzácnější a na většině moderních počítačů jádro skutečně používá ide-scsi ovladač pro převod do protokolu SCSI (připsání @Wumpus Q. Wumbley).

Mezi další příklady patří /dev/mmcblkXpY což je pro zařízení SD/eMMC/bare NAND/NOR a má stejné schéma pojmenování jako /dev/nvme a /dev/vd který se opět používá pro virtuální disky v cloudovém úložišti (uveďte @Jan Dorniak za extra příklady).

Ve vašem případě , nazývá se /dev/nvme protože disk je připojen přes port NVME a používá nvme ovladač na Linuxu. Můžete si vzpomenout na /dev/<something> jako zařízení, které používá <something> Řidič. Všechny ovladače a pojmenování zařízení mají své vlastní standardy, není to jeden standard pro všechny, takže je zcela v pořádku, pokud je pojmenování zařízení NVME takové. A důvod, proč nvme není přeloženo do scsi také je, že oba protokoly jsou příliš odlišné a taková implementace by byla příliš složitá (podrobnější informace najdete v komentářích @grawity a @Vality).


Kromě druhé odpovědi si všimněte, že NVMe má koncept jmenných prostorů, které by se nevešly do /dev/sd<číslo> vzor. Například v mém systému:

$ ls -1 /dev/nvme*
/dev/nvme0
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2

Linux
  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Kdy použít /dev/random vs /dev/urandom?

  1. Jak namapovat zařízení /dev/sdX a /dev/mapper/mpathY ze zařízení /dev/dm-Z

  2. Co jsou soubory /dev/zero a /dev/null v Linuxu

  3. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  1. Jak Linux používá /dev/tty a /dev/tty0

  2. Proč se na některých systémech Linux kořenový souborový systém zobrazuje jako /dev/root místo /dev/<uzel skutečného zařízení>v mtab?

  3. Rozdíly mezi /dev/sda a /dev/sda1