Linux下“一切皆文件”

“Linux下一切皆文件”

Linux 下一切皆文件这个说法是指 Linux 系统中的一种设计理念,即将所有设备、资源和进程等抽象为文件或文件夹的形式。这种设计理念的好处在于统一了对待不同类型资源的方式,提供了统一的接口和工具来进行管理和操作。

Linux 下一切皆文件的含义可以总结为以下几点:

  1. 一致的接口:在 Linux 中,无论是硬件设备、网络连接、进程状态还是文件系统,都可以通过文件的方式来进行访问和操作,这为用户和开发者提供了一致的接口。
  2. 统一的权限管理:Linux 中的一切都是文件,因此都可以受到文件系统的权限管理机制的约束,包括读写执行权限、所有者和群组等。这简化了对不同资源的权限管理。
  3. 扩展性:Linux 文件系统的设计允许用户创建自定义的虚拟文件系统,从而将各种资源抽象为文件的形式,使得系统的可扩展性得到提升。
  4. 便于管理:通过文件系统的方式管理各种资源,使得操作和管理变得更加方便和灵活,比如可以通过文件操作来控制硬件设备、监控进程状态等。

 

“一切皆是文件”是 Unix/Linux 的基本哲学之一,那么为什么Linux在一切皆文件呢? 

图片

在windows中是文件的东西,它们在linux中也是文件,其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件.。你可以使用访问文件的方法访问它们获得信息。甚至一些很离谱的东西,比如管道,也是文件。甚至类似于socket(套接字)这样的东西, 使用的接口跟文件接口也是一致的。

这样做最明显的好处是,开发者仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。举个简单的例子,Linux 中几乎所有读(读文件,读系统状态,读 socket,读PIPE)的操作都可以用read函数来进行;几乎所有更改(更改文件,更改系统参数,写 socket,写 PIPE)的操作都可以用write函数来进行。

因此,Linux 下一切皆文件的设计理念使得 Linux 系统更加灵活、统一和易于管理,这也是 Linux 系统备受推崇的设计之一。

不利之处在于,使用任何硬件设备都必须与根目录下某一目录执行挂载操作,否则无法使用。我们知道,本身Linux具有一个以根目录为树根的文件目录结构,每个设备也同样如此,它们是相互独立的。如果我们想通过Linux上的根目录找到设备文件的目录结构,就必须将这两个文件系统目录合二为一,这就是挂载的真正含义。

中文名称

英文名称

描述

普通文件

Normal File

如.mp4、.pdf、.html、.log等用户可以根据访问权限对普通文件进行查看、更改和删除。

目录文件

directory file

/usr/ /home/目录文件包含了各自目录下的文件名和指向这些文件的指针。打开目录事实上就是打开目录文件,只要有访问权限,就可以随意访问这些目录下的文件。

硬链接

hard links:

若一个inode号对应多个文件名,则称这些文件为硬链接。硬链接就是同一个文件使用了多个别名删除时,只会删除链接, 不会删除文件。

符号链接

(软连接)

symbolic link

若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。

字符设备文件

char

文件一般隐藏在/dev目录下,在进行设备读取和外设交互时会被使用到即串行端口的接口设备,例如键盘、鼠标等等。

块设备文件

block

存储数据以供系统存取的接口设备,简单而言就是硬盘。

FIFO管道文件

pipe

管道文件主要用于进程间通讯。FIFO可以解决多个程序同时存取一个文件所造成的错误。

套接字

socket

以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。用于进程间的网络通信,也可以用于本机之间的非网络通信。

 

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄奕子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值