Arquivos de dispositivos e drivers de um disco, partição e sistema de arquivos?

1

No Linux,

  1. Para um disco rígido, há um arquivo de dispositivo como /dev/sda ou /dev/hda dependendo do tipo de interface do disco rígido.

    A existência de seu arquivo de dispositivo significa que o driver para o disco rígido está em execução?

    Como posso descobrir qual é o driver de dispositivo?

  2. Para uma partição em um disco rígido, há um arquivo de dispositivo como /dev/sda1 ou /dev/hda1 .

    A existência de seu arquivo de dispositivo significa que o driver para o partição está em execução?

    Como posso descobrir qual driver de dispositivo é?

    O driver de uma partição em um disco é o mesmo do driver para o disco?

  3. Para um sistema de arquivos em uma partição em um disco rígido, não podemos acessar o sistema de arquivos até montá-lo em algum diretório em / .

    Antes de montar um sistema de arquivos, o driver do sistema de arquivos não está em execução?

    Um sistema de arquivos possui um driver de dispositivo para o tipo de sistema de arquivos (por exemplo, Linux tem algum driver de dispositivo para sistemas de arquivos ntfs), então é um arquivo sistema considerado como um dispositivo?

    Qual é o arquivo de dispositivo de um sistema de arquivos? É o dir de montagem para um sistema de arquivos o arquivo do dispositivo para o sistema de arquivos?

por Tim 08.02.2015 / 06:34

2 respostas

2

  1. Sim, se houver dispositivo de disco como / dev / sda, esse driver significa que esse tipo de disco está carregado. Você pode verificar o driver exato executando

    ls -l / dev / sda

    brw-rw ---- 1 disco raiz 8, 0 abr 8 2014 / dev / sda

E neste caso você tem o maior número = 8, então você pode procurar na fonte do kernel o que é esse driver

  1. Não existe algo como executar partição. Também não há driver para partição. A partição faz parte do dispositivo de armazenamento e o acesso a ela é via driver de armazenamento (consulte o ponto 1).

    ls -l / dev / sda1

    brw-rw ---- 1 disco raiz 8, 1 8 de abril de 2014 / dev / sda1

  2. Para sistemas de arquivos, o nome do propper é o módulo do kernel, não o driver. Driver está relacionado a dispositivos. Mesmo que o seu sistema de arquivos não esteja montado, o módulo pode ser carregado. É independente. Não há arquivo de dispositivo para o sistema de arquivos

por 08.02.2015 / 08:05
2

No Linux, a palavra " driver " é usada tanto quanto "módulos do kernel" que suportam determinado hardware.

O suporte a kernel é decidido quando as opções são selecionadas e o kernel é compilado a partir da fonte e vem em dois formulários, estático ou como um módulo carregado dinamicamente. (Monolítico versus micro-kernel)

Um módulo estático é uma parte fixa do kernel e a funcionalidade principal desse kernel e módulo dinâmico pode ser carregada sob demanda para estender a funcionalidade básica.

O nome dos dispositivos de bloco e caractere não é importante, pelo menos para o kernel. É o maior e menor número que instrui o kernel que módulo deve ser usado para acessá-lo. Uma série de números maiores e menores é atribuída estaticamente (verifique Documentation/devices.txt na fonte do kernel para obter uma lista ), os módulos mais modernos do kernel usam números principais / secundários dinâmicos.

É puramente convencional chamar o primeiro disco SCSI /dev/sda , mas é o principal e os números usados pelo kernel para selecionar o módulo correto para acessá-lo.

ls -l /dev/sda 
brw-rw---- 1 root disk 8, 0 Apr 8 2014 /dev/sda 

Por exemplo, eu posso acessar o mesmo disco configurando um novo dispositivo com os mesmos números mágicos 8,0 com mknod

 mknod /dev/my-first-disk b 8 0

Isso nos aproxima da resposta da sua primeira pergunta: a presença da entrada do dispositivo significa que ela é suportada pelo seu kernel em execução? Não. Com o mknod você pode criar dispositivos com qualquer número e nome maior e menor, mesmo aqueles que não são usados / reservados por nenhum módulo do kernel.

A nuance é que a maioria das pessoas não cria seus próprios dispositivos, mas confiam em udev para fazê-lo dinamicamente eles. Em seguida, a presença de nomes de dispositivos é frequentemente uma indicação de que determinado hardware foi identificado corretamente.

Os módulos dinâmicos carregados atualmente são exibidos com lsmod , mas o suporte estático requer conhecer as opções de tempo de compilação usadas para criar o kernel, geralmente armazenado em um arquivo chamado /boot/config-<kernel-version> . O suporte estático está sempre disponível.

Um sistema de arquivos não é um dispositivo, mas uma camada de conversão dos bytes armazenados no dispositivo para os dados utilizáveis. Muito mais aqui

    
por 08.02.2015 / 08:51