您的位置: 翼速应用 > 业内知识 > 运维 > 正文

详解linux中的三种设备类型

    Linux设备是采用Linux内核并可能部分GNU操作系统计算机设备,常见的linux设备类型有三种,可以分为字符设备、块设备和网络设备这三类,大致内容如下:1、字符设备,是能够像字节流一样被访问的设备,当对字符设备发出读写请求,相应的IO操作立即发生,常见有字符终端、串口、键盘、鼠标等。2、块设备,是进行TO操作时必须以块为单位进行访问的设备,常见有硬盘、软驱等。3、网络设备,由网络子系统驱动,负责数据包的发送和接收。


详解linux中的三种类型设备


详解linux中的三种设备类型


一、字符设备


    字符设备是能够像字节流一样被访问的设备,当对字符设备发出读写请求,相应的IO操作立即发生。Linux系统中很多设备都是字符设备,如字符终端、串口、键盘、鼠标等。在嵌入式Linux开发中,接触最多的就是字符设备以及驱动。


二、块设备


    块设备是Linux系统中进行TO操作时必须以块为单位进行访问的设备,块设备能够安装文件系统。块设备驱动会利用一块系统内存作为缓冲区,因此对块设备发出读写访问,并不一定立即产生硬件I/O操作。Linux系统中常见的块设备有如硬盘、软驱等等。


三、网络设备


    网络设备既可以是网卡这样的硬件设备,也可以是一个纯软件设备如回环设备。网络设备由Linux的网络子系统驱动,负责数据包的发送和接收,而不是面向流设备,因此在Linux系统文件系统中网络设备没有节点。对网络设备的访问是通过socket调用产生,而不是普通的文件操作如open/closc和read/write等。


在linux中查看块设备信息


    在linux中,可以使用lsblk命令来查看块设备信息。lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,CD-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。lsblk命令有几个选项如下:


默认选项(lsblk命令默认情况下将以树状列出所有块设备)


打开终端,并输入以下命令:


$ lsblk


输出如下:


lsblk default
lsblk default


7个栏目名称如下:


NAME : 这是块设备名。
MAJ:MIN : 本栏显示主要和次要设备号。
RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
SIZE : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。(LCTT译注,此处sr0的RO项没有标记为1,可能存在一些错误?)
MOUNTPOINT : 本栏指出设备挂载的挂载点。


列出所有设备:


默认选项不会列出所有空设备。要查看这些空设备,请使用以下命令:


$ lsblk -a


该选项将列出所有设备,包括空设备在内。


lsblk bytes sda
lsblk bytes sda


列出设备权限和属主:


lsblk命令也可以用于列出一个特定设备的拥有关系,同时也可以列出组和模式。可以通过以下命令来获取这些信息:



$ lsblk -m
lsblk permissions
lsblk permissions


列出指定设备:


该命令也可以只获取指定设备的信息。这可以通过在提供给lsblk命令的选项后指定设备名来实现。例如,你可能对了解以字节显示你的磁盘驱动器大小比较感兴趣,那么你可以通过运行以下命令来实现:


$ lsblk -b /dev/sda


或者,以下命令等同:


$ lsblk --bytes /dev/sda


以列表形式列出不带头的设备:


你也可以组合几个选项来获取指定的输出。例如,你也许想要以列表格式列出设备,而不是默认的树状格式。你可能也对移除不同栏目名称的标题感兴趣。可以将两个不同的选项组合,以获得期望的输出,命令如下:


$ lsblk -nl


或者,你可以使用下面的长选项,它们也能给出相同的输出。


$ lsblk --noheadings --list
lsblk no header and list
lsblk no header and list


列出SCSI设备:


要获取SCSI设备的列表,你只能使用-S选项。该选项是大写字母S,不能和-s选项混淆,该选项是用来以颠倒的顺序打印依赖的。


$ lsblk -S


lsblk列出SCSI设备,而-s是逆序选项(LCTT译注:将设备和分区的组织关系逆转过来显示),其将给出如下输出。输入命令:


$ lsblk -s


或者:


$ lsblk --inverse


关于linux中的三种类型设备类型分享就到这里,翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题