linux 中设备即文件 该怎么理解

linux 中设备即文件 该怎么理解,第1张

在linux下,所有的设备,都是以文件的形式存在的。都存在在/dev目录下。在/dev目录下的每个文件都对应一个设备。有字符设备,块设备和网络设备等等。

这样的话,所有的设备你就都可以像访问文件一般的访问。比如你要访问串口,串口1对应的文件是"ttyS0".打开文件/dev/ttyS0。往内写,就是往串口写,从文件读,就是从串口读。

而终端x对应的文件是"/dev/ttyX",gnemo模拟的终端对应的是"dev/pts/X"。这个x是终端号。你往这些文件内写东西,就会显示到终端了。

不知道清楚了没有,若没有可以消息联系。

可以建议你做个实验:将两台机器的串口使用一根串口线连在一起。然后一端从终端读往"/dev/ttyS0"写,另一端从“/dev/ttyS0”读往终端写。就可以实现一个简单的通信.

根据两者的定义就知道有什么区别:

设备文件包含如下:

Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。每个字符设备和块设备都必须有主、次设备号,主设备号相同的设备是同类设备(使用同一个驱动程序)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备")。每个设备在 /dev 目录下都有一个对应的文件(节点)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。内核能够识别的所有设备都记录在原码树下的 Documentation/devices.txt 文件中。在 /dev 目录下除了字符设备和块设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、目录。这些东西没有主/次设备号。

链接文件:

Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。

我们首先来了解一下几个名词:

索引节点(inode)

要了解链接,我们首先得了解一个概念,叫索引节点(inode)。在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。

硬链接(Hard Link)

硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。

引用

ln [options] existingfile newfile

ln [options] existingfile-list directory

用法:

第一种为”existingfile”创建硬链接,文件名为”newfile”。

第二种在”directory”目录中,为” existingfile-list”中包含的所有文件创建一个同名的硬链接。

常用可选[options]:-f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。

软链接(Soft Link)

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8677757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存