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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488369.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漫漫数学之旅033

文章目录 经典格言数学习题古今评注名人小传 - 托马斯赫胥黎 经典格言 如果只有一点知识是危险的,那么知识足够丰富而不危险的人又在哪里呢?——托马斯赫胥黎(Thomas Huxley) 托马斯赫胥黎这位智慧的先知曾经用一种妙趣横生的方式…

22款奔驰C260L升级小柏林音响 无损音质效果

奔驰新款C级号称奔驰轿车的小“S”,在配置方面上肯定也不能低的,提了一台低配的车型,通过后期升级加装件配置提升更高档次,打造独一无二的奔驰C级,此次来安排一套小柏林之声音响,效果怎么样,我们…

12 个顶级音频转换器软件(免费)

当涉及不受支持的音乐文件时,音频文件转换器软件总是会派上用场。当您希望缩小大量大型音乐文件的大小以节省设备存储空间时,它也很有帮助。您在寻找传输音频的软件吗?好吧,请仔细选择音频转换器,因为最好的音乐转换器…

什么是IP地址,IP地址详解

在互联网的世界中,每一台连接的设备都需要一个独特的标识,这就是IP地址。IP地址,全称为“Internet Protocol Address”,即互联网协议地址,它是网络中进行数据传输的基础。下面,我们将对IP地址进行详细的解析…

电路设计(28)——交通灯控制器的multisim仿真

1.功能设定 南北、东西两道的红灯时间、绿灯时间均为24S,数码管显示倒计时。在绿灯的最后5S内,黄灯闪烁。有夜间模式:按下按键进入夜间模式。在夜间模式下,数码管显示计数最大值,两个方向的黄灯不停闪烁。 2.电路设计 …

CentOS 7 定时任务 + Shell 脚本自动备份 MySQL 数据库(一次 Halo 建站数据库丢失的教训)

文章目录 前置条件创建备份脚本设置 Cron 任务测试备份脚本备份安全和维护一键恢复自动清除备份文件常见问题总结 TIP: 原文链接阅读体验更佳:CentOS 7 自动备份 MySQL 数据库 最近抽空简单搭了一个博客,目前内容较少,后续陆续发…

第四十三回 锦豹子小径逢戴宗 病关索长街遇石秀-Python XML解析和Base64编解码

李云和李逵打了五七个回合,不分胜负,被朱富劝说也上了梁山。李云号人称青眼虎,朱富绰号庙笑面虎,宋江说李逵杀了四虎,梁山添了两个活虎,值得庆贺。 吴用对将领们进行了调配,朱富重掌山东酒店&a…

数据结构之平衡二叉搜索树

什么是平衡二叉树 AVL是一种自平衡二叉搜索树(self-balancing binary search tree)的数据结构,它的名称来源于其发明者G.M. Adelson-Velsky和E.M. Landis。AVL树通过在每次插入或删除节点时进行旋转操作,来确保树的高度始终保持在…

C语言——实用调试技巧——第1篇——(第22篇)

坚持就是胜利 文章目录 一、什么是bug?二、调试是什么?有多重要?三、debug 和 release 的介绍?1、2、3、 四、windows环境调试介绍1、调试环境的准备2、学会快捷键F5 或者 Fn F5条件断点 Ctrl F5F9 或者 Fn F9F10 或者 Fn F10F11 或者 F…

C语言读取 ini 配置文件,修改/添加键值对

C语言读取 ini 配置文件,修改/添加键值对 C语言读取 ini 配置文件,对section中的键值对进行修改/添加,如果section不存在,则在末尾将新的section/key/value 添加进去。 一、了解什么是INI文件? ini 文件是Initializ…

unity Aaimation Rigging使用多个约束导致部分约束失去作用

在应用多个约束时,在Hierarchy的顺序可能会影响最终的效果。例如先应用了Aim Constraint,然后再应用Two Bone Constraint,可能会导致Two Bone Constraint受到Aim Constraint的影响而失效。因此,在使用多个约束时,应该仔…

5G网络(接入网+承载网+核心网)

5G网络(接入网承载网核心网) 一、5G网络全网架构图 这张图分为左右两部分,右边为无线侧网络架构,左边为固定侧网络架构。 无线侧:手机或者集团客户通过基站接入到无线接入网,在接入网侧可以通过RTN或者IP…