IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Als sistemes de la família Unix, incloent Linux, el sistema de fitxers /dev o device fyle system permet al programari interactuar amb els dispositius de maquinari utilitzant les mateixes crides de sistema que s'utilitzarien per a treballar amb un fitxer.

Dins d'aquesta carpeta es poden troben fitxers d'un tipus especial, anomenats fitxers de dispositiu, que són una interfície al controlador del dispositiu (driver) al qual i podem accedir com si fos un fitxer ordinari.

Els fitxers de dispositiu poden ser:

  • Perifèrics com impressores
  • Dispositius d'emmagatzemament
  • Particions
  • Dispositius especials (generadors de números aleatoris, zeros...)

Tipus de dispositius

Els fitxers que hi ha a /dev també són coneguts com a nodes de dispositiu (device node) o fitxers especials de dispositiu. Es tracta de recursos que els sistema operatiu ja s'ha reservat per tal de poder accedir als dispositius de maquinari.

Hi ha 3 tipus de fitxers especials de dispositiu:

La diferència entre ells està en com les dades són llegides o escrites en ells (caràcter a caràcter o per blocs)

Convenció de noms

Es segueix la següent convenció de prefixos alhora d'identificar fitxers de dispositiu a /dev:

  • fb: frame buffer
  • fd: disquets
  • hd: Discs durs abans de la llibreria libata (sistema clàssic IDE)
    • hda: el dispositiu master del primer canal IDE
    • hdb: el dispositiu esclau del primer canal IDE
    • hdc: el dispositiu master del segon canal IDE
    • hdd: el dispositiu esclau del segon canal IDE
  • lp: impressores
  • parport, pp: Port paral·lel
  • pt: Pseudo terminals
  • Controlador SCSI, també utilitzat per libata (controlador IDE modern), USB, Firewire, etc.
    • sd: controlador per a dispositius d'emmagatzemament massiu
      • sda: Primer dispositiu registrat
        • sda1: Primera partició del primer dispositiu registrat
    • ses: Enclosure driver(???)
    • sg: controlador SCSI genèric
    • sr: controlador ROM” (dispositius òptics)
    • st: controladors de cintes magnètiques
  • tty: Consoles virtuals
    • ttyS: controlador del port sèrie
    • ttyUSB: convertidors sèrie USB

Per a la majoria de dispositius aquest prefix és seguit per un número que identifica el dispositiu concret.

Recursos:

Nomenclatura

IDE

Normalment té dos ports on és poden connectar fins a dos dispositius que comparteixen el cable:

Port IDE primari:

    • Mestre. /dev/hda
    • Esclau./dev/hdb

Port secundari IDE:

    • Mestre/dev/hdc
    • Esclau./dev/hdd

SCSI

En el cas d'SCSI les particions segueixen un ordre marcat pel número de BUS:

  • /dev/sda1
  • /dev/sda2
  • /dev/sda3

Els usb també els detecta com scsi

Més informació sobre noms de dispositius a:

SATA

El funcionament actual dels disc sata és idèntic a SCSI.

mknod

Els dispositius de node es creen amb la crida de sistema mknod. Hi ha una ordre de línia de comandes amb el mateix nom

Consulteu chroot per veure un exemple.

devfs

TODO

devfs is a specific implementation of a device file system on Unix-like operating systems, used for presenting device files, an abstraction for accessing I/O and other peripherals. The underlying mechanism of implementation may vary, depending on the OS.

Maintaining these special files on a general-purpose file system is inconvenient, and as it needs kernel assistance anyway, the idea of a special-purpose file system that is not stored on disk arose.

Also defining when devices are ready to appear is not entirely trivial. The 'devfs' approach is for the device driver to request synchronously creation and deletion of 'devfs' entries related to the devices it enables and disables. There are pros and cons for a kernel-managed devfs vs. a userspace-managed /dev directory (e.g. via udev).

Pros:

Cons<ref>http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf</ref>:

  • forces a naming policy on userspace
  • uses kernel memory that cannot be swapped out

Pseudo-dispositius

/dev/null

Accepta tot tipus de dades d'entrada i les descarta. No produeix cap mena de sortida

/dev/full

Dispositiu que sempre està ple

/dev/loop*

Consulteu Dispositius de loop

/dev/zero

Produeix un flux de dades continuo de caràcters NUL (zero)

/dev/urandom

Produeix un flux de dades de números aleatoris de mida variable. No bloqueja

/dev/random

Produeix un flux de dades de números aleatoris de mida variable. Bloqueja

Consulteu /dev/random.

Dispositius de loop

També coneguts com loop devices, vnd (vnode disk) o lofi (loopback file interface) són uns pseudo-dispositius que fan que un fitxer sigui accessible com si fos un dispositiu de blocs.

Abans de poder utilitzar un dispositiu de loop, aquest s'ha de connectar amb un fitxer existent al sistema de fitxers.

Els fitxers d'aquest tipus són utilitzats típicament per accedir a imatges ISO de CD o DVD. Es poden muntar aquest tipus de fitxers amb l'ordre mount i d'aquesta forma es pot accedir als fitxers de la imatges a través del punt de muntatge.

En sistemes Debian o Ubuntu teniu ja creats uns quants dispositius de loop:

$ ls /dev/loop
loop0  loop1  loop2  loop3  loop4  loop5  loop6  loop7

Consulteu la ordre mount, concretament l'apartat:

Mount#Muntar_imatges_de_disc._Dispositius_loop

per veure com es munta una imatge de disc.

Vegeu també

/dev/mapper

Vegeu també

Consulteu Dispositius Linux.

  • LPI_104.1. Crear particions i sistemes de fitxers
  • LPI_104.2. Mantenir la integritat dels sistemes de fitxers
  • LPI_104.3. Muntatge i desmuntatge de sistemes de fitxers

Enllaços externs