Relação entre dispositivo, driver de dispositivo, arquivo de dispositivo e ponto montado

5

Como os dispositivos, drivers de dispositivos, arquivos de dispositivos e pontos montados são relacionados no Linux (eu sou um usuário inicial do Ubuntu)?

Meu entendimento sobre eles é bastante vago; Espero que haja alguma explicação clara para me ajudar a ter uma visão mais ampla.

    
por Tim 29.05.2011 / 02:03

4 respostas

5

Na filosofia unix, tudo está em vigor em um arquivo de texto na hierarquia de diretórios, e tudo aqui é realmente um nome para vários 'arquivos' nessa hierarquia

Um dispositivo é qualquer hardware físico ou dispositivo virtual (como dev / null) que pode ser usado pelo sistema = geralmente estão em / dev /.

Para dispositivos de armazenamento, todas as partições estão em / dev / e precisam ser montadas (sendo / dev / sdx a unidade física e / dev / sdx1 / dev / sdx2 .. sendo partições), usando o driver de dispositivo apropriado sob alguns outro local, tipicamente / mnt / ou / media /. No entanto, você também pode montar uma partição como um diretório específico na hierarquia, como / home / ou até mesmo como um diretório arbitrário, contanto que você tenha permissões. Um ponto de montagem é basicamente o local onde uma partição pode ser acessada e sua representação na hierarquia

Um arquivo de dispositivo é a representação de um dispositivo na hierarquia do sistema de arquivos

Embora isso geralmente seja abstraído, ao conectar um dispositivo, os drivers necessários são necessários para que o sistema saiba como 'conversar' com o dispositivo físico em questão e, no caso de dispositivos de armazenamento, os arquivos - um total O comando mount incluirá isso, mas geralmente é automático. Exemplos disso são o driver libata genérico para discos rígidos e ext3 ou vários drivers de fusíveis para sistemas de arquivos.

    
por 29.05.2011 / 03:23
3

dispositivo: normalmente uma entidade física (ou seja, uma peça de hardware), mas também pode ser apenas abreviação de "arquivo de dispositivo" e uma abstração (por exemplo, mtd1 é o nome do dispositivo para uma partição em flash memória, mas na verdade é uma camada de driver que é executada hierarquicamente em cima do driver do dispositivo de memória flash real para tornar o dispositivo flash mais compatível com E / S de bloco).

driver de dispositivo: software que realiza operações de E / S no dispositivo em nome do sistema operacional e / ou solicitações do usuário.

arquivo do dispositivo (ou nó do dispositivo): o nome do arquivo para dispositivos acessíveis ao usuário, geralmente no diretório / dev , com atributos de propriedade e permissões. Observe que alguns "dispositivos" (por exemplo, porta Ethernet eth0 ) não possuem um arquivo de dispositivo acessível pelo usuário.

ponto montado: um ponto de montagem é um diretório em um sistema de arquivos (por exemplo, / mnt ) que na verdade acessa outro sistema de arquivos, geralmente em outro dispositivo

    
por 29.05.2011 / 02:42
2

Em geral:

  • Dispositivo = hardware
  • Driver de dispositivo = Interface entre SO / programa e hardware
  • Arquivo do dispositivo = Interface com o driver
  • Ponto montado = Não tenho tanta certeza sobre esse, acho que você está falando sobre "um local físico na partição usada como um sistema de arquivos raiz" ( Wikipedia )
por 29.05.2011 / 02:11
1

(O que se segue está simplificado demais, mas deve lhe dar uma ideia geral)

O dispositivo é uma peça de hardware diretamente conectada à CPU (rara, a menos que seja um barramento) ou indiretamente conectada por meio de um barramento (que é em si um dispositivo). Os dispositivos podem se comunicar com a CPU usando qualquer um dos quatro métodos: endereços de memória, endereços de E / S, canais DMA e IRQs. (A idade em que você teve que se preocupar com isso já passou há muito tempo, ele morreu com a ISA).

Uma das razões pelas quais temos sistemas operacionais é fornecer uma interface comum para conversar com tipos de hardware. Assim, aqueles que escrevem programas podem usar essa interface comum em vez de conhecer os detalhes de baixo nível de cada dispositivo específico. Isso torna a programação mais rápida e fácil.

O driver é um software que apresenta essa interface comum para o lado do aplicativo e converte solicitações usando essa interface para um formulário que o dispositivo pode manipular (usando os endereços de memória, endereços de E / S, DMA e IRQs mencionados anteriormente , ou possivelmente chamando outros drivers), e de volta.

O Linux, sendo um sistema operacional no estilo UNIX, usa uma "interface comum" específica chamada API do UNIX. Um objetivo de design do UNIX é fazer com que tudo pareça um arquivo. As operações que você pode executar em arquivos são: criar, ler, escrever, procurar e fechar. Para coisas que não se encaixam perfeitamente nesses conceitos, há outra operação chamada ioctl que é uma espécie de "pega-tudo" para todo o resto.

Se você emitir solicitações para essas operações em um arquivo de dispositivo, as solicitações não irão para a camada do sistema de arquivos do kernel, mas diretamente para o dispositivo.

Agora, você tem arquivos de dispositivo que permitem falar com dispositivos de armazenamento em um nível baixo (/ dev / sda, etc.), mas os dispositivos de armazenamento são realmente estúpidos. Tudo o que eles podem fazer através da API do UNIX é fornecer um bloco ou LBA de dados (512, 2048 ou 4096 bytes) ou armazená-los (os discos rígidos modernos têm dezenas de milhões de LBAs, se não mais). Eles não organizam em arquivos por si mesmos. Por exemplo, gravar em um arquivo pode envolver a gravação em muitos LBAs e você precisa de um sistema para controlar quais LBAs pertencem a qual arquivo. Esse é o trabalho da camada do sistema de arquivos do kernel, traduzindo solicitações de operações em arquivos para solicitações de operações em dispositivos e usando parte do armazenamento desse dispositivo para rastrear tudo.

A camada do sistema de arquivos é o que implementa todo o sistema de diretórios. É uma estrutura de árvore e você pode anexar ou montar dispositivos de bloco em vários pontos dessa árvore. A camada do sistema de arquivos precisa saber qual dispositivo de "baixo nível" tem arquivos, e é por isso que você precisa montá-lo.

    
por 29.05.2011 / 04:44

Tags