AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 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

“串行端口”或“并行端口”是否仅适用于字符设备,而不适用于块设备?

  • 772

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

字符 ('c') 设备是驱动程序通过发送和接收单个字符(字节、八位字节)与之通信的设备。

块 ('b') 设备是驱动程序通过发送整个数据块与之通信的设备。

字符设备示例:串行端口、并行端口、声卡。

块设备的示例:硬盘、USB 摄像头、Disk-On-Key。

“串行端口,并行端口”是指通过电线进行串行通信和并行通信吗?

“串行端口”或“并行端口”是否仅适用于字符设备,而不适用于块设备?

谢谢。

serial-port block-device
  • 2 2 个回答
  • 825 Views

2 个回答

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

    虽然现代计算机上通常有几种互连,例如 USB、SATA 和 PCI/e,它们在技术上是串行的(即使在控制块式设备时也是如此),但您引用的文本更多地是在并行和串行的上下文中,因为它最早用于 20 世纪的计算。

    它们指的是用于将计算机与外围设备或有时与其他计算机互连的方法。

    虽然有很多变化,但最常见的“串行端口”是一次发送和/或接收一个字符的 I/O 设备,通常使用固定波特率的异步协议。通常通过 RS232 电缆。串行端口和 RS232 端口这两个术语有时可以互换使用,尽管因为 RS-232 实际上是一种电气标准而用词不当。一个常见的应用是将用户终端连接到计算机或调制解调器,用户可以拨入并连接远程终端。可以追溯到机电时代,例如 110 波特 ASR-33 电传打字机,字符串 'tty' 的来源经常出现在 unix 命令和设备文件名中。

    串行端口相当慢,因此对于需要更高字符速率的用途,可以使用未串行化的并行端口。这有时被称为打印机制造商,他们将其作为“Centronix”端口流行起来。

    并不是说没有使用串行连接的打印机。

    但是正如您引用的那样,串行端口和并行端口是指这两种外围连接方案。

    因此,即使块式设备可能在技术上通过串行数据方法在某个低级别连接,这不是作者所指的,

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

    “字符设备”和“块设备”是抽象的,通常在 Unix 风格的系统中用于对各种设备进行分类。Unix 风格的设备节点 ( /dev/<something>) 通常分为字符设备或块设备。

    基本上,字符设备一次可以有意义地处理数据,甚至是一个字节,但块设备可以处理特定大小的块(通常为 512、1024 或 4096 字节)。如果您向块设备提供不完整的块,您可能必须用零或其他合适的填充填充它以完成该块,否则块设备可能无法完成其操作。

    在 Unix 风格的系统中,磁盘通常表示为块设备。但是,在传统的 Unix 系统中,单个磁盘可能表示为两个设备:一个用于常规文件系统访问的块设备,另一个用于“原始访问”和其他特殊操作的设备:原始访问设备通常是字符设备。

    在现代 Linux 中,可以通过使用标志打开常规块设备来实现原始访问,但是如果从另一个 Unix 风格系统移植的应用程序特别需要专用的原始设备,则可以使用命令O_DIRECT根据需要设置一个。raw

    另一方面,串行和并行端口通常是指物理连接技术。

    在 PC 硬件中,串口或COM 口通常指的是RS232 端口(通常由美国国家半导体 8250 兼容的 UART 芯片驱动)。由于它不需要固定的块大小,它通常被归类为 Unix 系统中的字符设备。正如串行端口的名称所暗示的那样,该端口以串行方式传输数据,一次一位。此端口的最现代规范称为 EIA/TIA-232。

    同样在 PC 硬件中,并行端口、打印机端口、LPT 端口或Centronics 端口都指一种端口类型,其最现代的实现被标准化为 IEEE 1284。它在 Unix 风格的系统中也表示为字符设备,因为它需要没有固定的块大小。顾名思义,它并行传输数据:它有 8 条数据线,一个字节中的每一位。

    与串行端口不同,最古老形式的并行端口基本上是单向的:计算机可以一次发送一个字节的数据,但另一端的设备只有几条固定含义的状态线可以用来与计算机通信。(早期版本的 Linux 内核将这些状态行的无效状态组合报告为半幽默的lp<n> on fire错误消息。)双向通信模式被实现为后来的增强功能。

    在引入 USB 之前,并行端口可能是典型 PC 上最快的通用外部连接器。如果需要具有更快数据传输速度的外部设备,通常意味着向系统添加专用接口卡或带有外部连接器的 SCSI 适配器卡。例如,专业的平板图像扫描仪可能需要 SCSI 连接。

    • 2

相关问题

  • NVMe 存储设备的持久设备命名

  • 如何防止为 cdc_acm 打开 DTR?

  • 在没有打开会话的情况下在后台运行 picocom

  • QEMU 4个以上的串口

  • 设置似乎没有 I/O 端口的 PCIe 串行卡

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

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

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve