AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 472818
Accepted
Tim
Tim
Asked: 2018-10-03 09:31:38 +0800 CST2018-10-03 09:31:38 +0800 CST 2018-10-03 09:31:38 +0800 CST

As "portas seriais" ou "portas paralelas" aplicam-se apenas a dispositivos de caracteres, mas não a dispositivos de bloco?

  • 772

De http://haifux.org/lectures/86-sil/kernel-modules-drivers/node10.html

Um Dispositivo de Caractere ('c') é aquele com o qual o Driver se comunica enviando e recebendo caracteres simples (bytes, octetos).

Um Dispositivo de Bloco ('b') é aquele com o qual o Driver se comunica enviando blocos inteiros de dados.

Exemplos de dispositivos de caracteres: portas seriais, portas paralelas, placas de som.

Exemplos de dispositivos de bloco: discos rígidos, câmeras USB, Disk-On-Key.

As "portas seriais, portas paralelas" significam comunicação serial e comunicação paralela por fios ?

As "portas seriais" ou "portas paralelas" aplicam-se apenas a dispositivos de caracteres, mas não a dispositivos de bloco?

Obrigado.

serial-port block-device
  • 2 2 respostas
  • 825 Views

2 respostas

  • Voted
  1. infixed
    2018-10-03T12:36:32+08:002018-10-03T12:36:32+08:00

    Embora muitas vezes existam vários tipos de interconexões em computadores modernos, como USB, SATA e PCI/e que são tecnicamente seriais (mesmo ao controlar dispositivos de estilo de bloco), o texto que você cita está mais no contexto de paralelo e serial, pois foi usado pela primeira vez na computação do século 20.

    Referem-se a métodos usados ​​para interligar computadores a periféricos ou, às vezes, outros computadores.

    Embora existam muitas variações, a 'porta serial' mais comum era um dispositivo de E/S que enviava e/ou recebia um caractere por vez, geralmente usando protocolo assíncrono a uma taxa de transmissão fixa. Geralmente através de um cabo RS232. Os termos porta serial e porta RS232 às vezes eram usados ​​​​de forma intercambiável, embora um nome impróprio porque RS-232 é realmente um padrão elétrico. Uma aplicação comum era conectar terminais de usuário a um computador ou modems que os usuários pudessem discar e conectar terminais remotos. Pode remontar aos dias eletromecânicos, como o teletipo ASR-33 de 110 bauds, a fonte da string 'tty' frequentemente vista em comandos unix e nomes de arquivos de dispositivos.

    As portas seriais eram bastante lentas, portanto, para usos que precisavam de uma taxa de caracteres mais alta, era possível usar uma porta paralela que não fosse serializada. Isso às vezes era referido a um fabricante de impressora que o tornou popular como uma porta "Centronix".

    Para não dizer que não havia impressoras que usavam uma conexão serial.

    Mas, conforme usado em sua cotação, porta serial e porta paralela se referem a esses dois esquemas de conexão periférica.

    Portanto, embora os dispositivos de estilo de bloco possam ser tecnicamente conectados em algum nível baixo com um método de dados seriais, não é a isso que esse gravador está se referindo,

    • 3
  2. Best Answer
    telcoM
    2018-10-03T23:28:28+08:002018-10-03T23:28:28+08:00

    Um "dispositivo de caractere" e "dispositivo de bloco" são abstrações , geralmente usadas em sistemas do estilo Unix na classificação de vários dispositivos. Um nó de dispositivo no estilo Unix ( /dev/<something>) geralmente é classificado como um dispositivo de caractere ou um dispositivo de bloco.

    Basicamente, um dispositivo de caractere pode processar dados de forma significativa, mesmo um único byte de cada vez, mas um dispositivo de bloco funciona com blocos de tamanho específico (geralmente 512, 1024 ou 4096 bytes). Se você fornecer um bloco incompleto a um dispositivo de bloco, pode ser necessário preenchê-lo com zeros ou outro preenchimento adequado para completar o bloco, ou então o dispositivo de bloco pode não conseguir concluir sua operação.

    Os discos geralmente são representados como dispositivos de bloco em sistemas no estilo Unix. No entanto, em um sistema Unix tradicional, um único disco pode ser representado como dois dispositivos: um dispositivo de bloco para acesso regular ao sistema de arquivos e outro dispositivo para "acesso bruto" e outras operações especiais: o dispositivo de acesso bruto geralmente é um dispositivo de caractere.

    No Linux moderno, o acesso bruto pode ser obtido abrindo o dispositivo de bloco regular usando um O_DIRECTsinalizador, mas se um aplicativo que é portado de outro sistema no estilo Unix requer especificamente um dispositivo bruto dedicado, um pode ser configurado conforme necessário usando o rawcomando.

    As portas seriais e paralelas, por outro lado, geralmente se referem a tecnologias de conexão física .

    Em hardware de PC, porta serial ou porta COM normalmente se refere a uma porta RS232 (geralmente com um chip UART compatível com National Semiconductor 8250 conduzindo-o). Como não precisa de um tamanho de bloco fixo, normalmente é classificado como um dispositivo de caracteres em sistemas Unix. Como o nome porta serial indica, esta porta transfere dados serialmente, um bit de cada vez. As especificações mais modernas para esta porta são conhecidas como EIA/TIA-232.

    Da mesma forma em hardware de PC, porta paralela, porta de impressora , porta LPT ou porta Centronics referem-se a um tipo de porta cuja implementação mais moderna é padronizada como IEEE 1284. Também é representada como um dispositivo de caractere em sistemas do estilo Unix, pois requer nenhum tamanho de bloco fixo. Como o nome indica, ele transfere dados em paralelo: possui 8 linhas de dados, uma para cada bit em um byte.

    Ao contrário da porta serial, a porta paralela em sua forma mais antiga é basicamente unidirecional: o computador pode enviar dados um byte por vez, mas o dispositivo na outra extremidade tem apenas algumas linhas de status de significado fixo que podem ser usadas para comunicar de volta ao computador. (Uma combinação de estado inválido dessas linhas de status foi relatada pelas primeiras versões dos kernels do Linux como uma lp<n> on firemensagem de erro semi-humorística.) Os modos de comunicação bidirecional foram implementados como aprimoramentos posteriores.

    Antes da introdução do USB, a porta paralela era provavelmente o conector externo de uso geral mais rápido em um PC típico. Se fossem necessários dispositivos externos com velocidades de transferência de dados mais rápidas, isso geralmente significava adicionar uma placa de interface dedicada ou uma placa adaptadora SCSI com um conector externo ao sistema. Por exemplo, um scanner de imagem de mesa profissional provavelmente exigiria uma conexão SCSI.

    • 2

relate perguntas

  • nomeação de dispositivo persistente para dispositivos de armazenamento NVMe

  • Como evitar que o DTR seja aberto para cdc_acm?

  • Executando picocom em segundo plano sem sessão aberta

  • QEMU mais de 4 portas seriais

  • Configurando uma placa serial PCIe que não parece possuir portas de E/S

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve