精华内容
下载资源
问答
  • Linux中一切皆文件

    2021-01-17 18:29:35
    谈一谈Linux中一切皆文件1、Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。普通文件是文件。目录(在win下称为文件夹)是文件。硬件设备(键盘、硬盘、打印机)是文件。套接字(socket)、网络通信等资源也...

    谈一谈Linux中一切皆文件

    1、

    Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。

    普通文件是文件。

    目录(在win下称为文件夹)是文件。

    硬件设备(键盘、硬盘、打印机)是文件。

    套接字(socket)、网络通信等资源也都是文件。

    2、

    文件类型:

    1) 普通文件

    类似 mp4、jgp、html这样,可直接拿来使用的文件都属于普通文件。

    8773429fcedb509ffef539905f668a72.png

    2) 目录文件

    习惯win系统的用户来说,目录是文件可能不太好接受。

    Linux系统中,目录文件包含了此目录中各个文件的文件名以及指向这些文件的指针,打开目录等同于打开目录文件。

    即:只要有权限,可以随意访问目录中的任何文件。

    vim 目录名

    5633990860d1973ff8deb908bc12e876.png

    3) 字符设备文件和块设备文件

    通常隐藏在/dev/目录下,当进行设备读取或外设交互时才会被使用。

    例如:磁盘光驱属于块设备文件,串口设备则属于字符设备文件。

    0c301b7914c2f02cd11ba74ec25073cc.png

    4) 套接字文件(socket)

    套接字文件一般隐藏在 /var/run/目录下,用于进程间的网络通信。

    15e7130bea152ab6017046b65ea33482.png

    5) 符号链接文件(symbolic link)

    类似与win中的快捷方式,是指向另一文件的指针(软链接)。

    436dfdb8b5ed04ee501be2570a75352f.png

    6) 管道文件(pipe)

    主要用于进程间通信。

    例如:使用mkfifo命令创建一个FIFO文件,与此同时启用进程A从FIFO文件读数据,启用进程B从FIFO文件中写数据,随写随读。

    3、

    一切皆文件的利弊:

    与Windows 系统不同,Linux 系统没有C盘、D盘、E盘那么多的盘符,只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。

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

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

    展开全文
  • 一切皆文件“其实不是linux专属的,这是一种设计理念。在linux中大家都在强调这一点,可能是这么说显得自己很高端。。“一切皆文件“在可执行文件上可能表现不太明显,但是在一些奇奇怪怪(误)的东西上就显得很清晰...

    “一切皆文件“其实不是linux专属的,这是一种设计理念。在linux中大家都在强调这一点,可能是这么说显得自己很高端。。

    “一切皆文件“在可执行文件上可能表现不太明显,但是在一些奇奇怪怪(误)的东西上就显得很清晰了,比如:我给电脑装了1T的硬盘,对于系统来说,这不是一个硬盘,这是一个文件;

    我给电脑装了个贼拉风的机械键盘,对于系统来说,这不是一个键盘,这是一个文件;

    我给电脑装了个骚粉色的鼠标,对于系统来说,这不是一个粉色鼠标,这是一个文件。。

    嗯,我500+的机械键盘在linux上是没有姓名的

    这么搞有什么用呢?省心拿鼠标来举例子:

    我们平常用的鼠标,都是双击确定,但是突然出现了一个鼠标,不按常理出牌。。它双击表示取消

    如果没有“一切皆文件”,那 linux 就会很迷惑,为啥别的鼠标都是双击表示确定,就你是取消呢

    然后没办法,就只能再给这个鼠标一个单独的类型,叫——“双击表示取消的奇怪鼠标”

    然后每次都要先判断,这是一个正常鼠标,还是一个奇怪鼠标。。

    当各种各样的东西多起来以后,程序没别的事了,1w行代码里9k行是判断类型的。。

    所以,linux决定,你虽然是一个鼠标,但你不能再当一个鼠标了,因为你可太操心了。

    具体操作是啥呢?

    我linux不管你鼠标是双击确定,还是单击确定,还是双击取消

    反正,我收到1就当你是确定,我收到2就当你是取消,我收到83251我就当你是在开玩笑。。

    linux不管这到底是什么高贵的设备,我就当是个文件,硬件驱动到位了我就用,硬件驱动不到位我就不用。

    其实不光是硬件设备,系统的进程啦,代码啦在linux里都是一个文件,linux改了对应的文件,就改了这个设备/进程/代码,而不用操心是怎么改的。

    就问你省心不省心。

    所以,“一切皆文件”=“一切皆玩意,这个玩意在linux里叫文件”

    所以题主你说,windows可执行文件是二进制文件,没错。因为“一切皆文件”跟“文件”其实没啥关系。

    这个就是个思想,linux把这个思想用“文件系统”实现了。

    展开全文
  • 0.一切皆文件首先,在windows中是文件的东西,它们在linux中也是文件,其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件.。你可以使用访问文件的方法访问它们获得信息。甚至一些很离谱的东西,...

    339f9f2a2947

    前言:接触Linux的同志们都听过一句话:“Linux下一切皆文件”。“一切皆是文件”是 Unix/Linux 的基本哲学之一,那么为什么Linux在一切皆文件呢?

    0.一切皆文件

    339f9f2a2947

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

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

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

    1.虚拟文件系统VFS

    VFS是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统<1>实现的接口。虚拟文件系统(VFS)是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。严格说来,VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。(cite from百度百科)

    339f9f2a2947

    比较晦涩难懂是不是?那么换一种描述:虚拟文件系统使得Linux可以存在多个“实际的文件系统”,比如分区1是ext2,分区2是ext3,分区3是fat32。那么每个“实际的文件系统”的结构和操作方式是不一样的。如果是这样的话用户怎么去操作它们呢?总不能每种不同的文件系统都采用不同的方法吧,那么这个时候就需要VFS作为中间层!用户直接控制VFS,VFS再去控制各个文件系统。

    2.VFS存在的意义

    可归结为以下四点:

    对应用层提供一个标准的文件操作接口;

    对文件系统提供一个标准的接口,以便其他操作系统的文件系统可以方便的移植到Linux上;

    VFS内部则通过一系列高效的管理机制,比如inode cache, dentry cache 以及文件系统的预读等技术,使得底层文件系统不需沉溺到复杂的内核操作,即可获得高性能;

    此外VFS把一些复杂的操作尽量抽象到VFS内部,使得底层文件系统实现更简单。

    标注

    <1>文件系统(一般可以分为以下几类)

    网络文件系统,如 nfs、cifs、cdoa、afs等网络文件系统

    磁盘文件系统,如ext2/ext3/ext4文件系统;

    特殊文件系统,如 proc、sysfs、ramfs、tmpfs、pipe文件系统等。

    展开全文
  • 为何说在LINUX中一切皆文件

    千次阅读 2020-03-20 00:11:16
    关于linux下一切皆文件的思考linux和windows的区别了解一切皆文件的内容文件解析图虚拟文件系统VFS文件系统 linux和windows的区别 今天突然想到 在linux中 我们所熟知的一句话叫做,“linux下一切皆文件” 于是乎就...

    linux和windows的区别

    今天突然想到 在linux中 我们所熟知的一句话叫做,“linux下一切皆文件”
    于是乎就查找在windows中 是什么样子的通过链接:Linux一切皆文件(包含好处和弊端)
    里明白了 linux和window的区别以及各自的优缺点

    了解一切皆文件的内容

    再然后 就要深入的了解一切皆文件的 最高奥义了“
    linux将文件作为一切可用资源的使用接口.“一切资源”包括内存、磁盘、其他各种设备、进程间的通信,还有网络通信。这是一种简化的思想,把一切资源都简化为文件展示出来,将这些对资源的操作简化为对文件的操作。

    在linux中 一共有七种文件类型: 标识符如下
    -:
    b:
    c:
    d:
    l:
    s:
    p:
    在这里插入图片描述

    文件解析图

    在这里插入图片描述

    虚拟文件系统VFS

    介绍一下vfs
    虚拟文件系统(Virtual File System, 简称 VFS), 是 Linux 内核中的一个软件层,用于给用户空间的程序提供文件系统接口;同时,它也提供了内核中的一个抽象功能,允许不同的文件系统共存。系统中所 有的文件系统不但依赖 VFS 共存,而且也依靠 VFS 协同工作。

    为了能够支持各种实际文件系统,VFS 定义了所有文件系统都支持的基本的、概念上的接口和数据 结构;同时实际文件系统也提供 VFS 所期望的抽象接口和数据结构,将自身的诸如文件、目录等概念在形式 上与VFS的定义保持一致。换句话说,一个实际的文件系统想要被 Linux 支持,就必须提供一个符合VFS标准 的接口,才能与 VFS 协同工作。实际文件系统在统一的接口和数据结构下隐藏了具体的实现细节,所以在VFS 层和内核的其他部分看来,所有文件系统都 是相同的。下图显示了VFS在内核中与实际的文件系统的协同关系。

    文件系统

    给链接吧 很详细 就是排版不太好看不下去 > - <
    liunx下的文件系统
    · 对普通文件操作,用户通常使用的是open、close、read、write等函数,而这也是文件系统的基本操作。
    · 这里讲的文件系统都是真实的文件系统,也就是文件是的确存在的,而不仅仅是个接口。而文件数据最重要的就是如何在这种介质上存放数据。这里依据存储介质做一个简单的分类:
    1)内存文件系统
    这种文件系统的文件是存储在内存当中的,主要作用就是暂存运行时的数据。特点是,掉电不保存,存储速度快。例如tmpfs。
    2)磁盘文件系统
    这是最主要的文件系统,最初的计算机都是用磁盘来存取数据的,因此这种类型的文件系统数量最多。例如NTFS、ext4等。
    3)flash文件系统
    由于flash芯片的成本不断降低,以及在嵌入式领域的广泛使用,由于flash独特的存取访视,因而也出现了很多专门针对flash的文件系统,例如jffs2、yafffs等。
    · 文件系统设计上的不同,主要是由于存储介质和存取效率的差异。存取效率又和应用场景、操作系统等因素关系密切。因此我们可以看到,不同操作系统的文件系统通常是不同的。
    ————————————————
    版权声明:本文为CSDN博主「辰子老八」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_42523774/article/details/103207654

    参考链接:
    LINUX一切皆文件
    为何linux下一切皆文件

    展开全文
  • 深入解析Linux系统中的“一切皆文件

    千次阅读 2021-03-23 10:29:11
    一切皆文件1 C文件IO2 文件相关系统调用接口2.1 open 接口介绍3 文件描述符3.1 什么是文件描述符3.2 文件描述符的分配规则3 你是怎么理解重定向的(从OS的角度)4二级目录三级目录 1 C文件IO C默认会打开三个输入...
  • Linux下一切文件,文件夹,socket,管道,设备等都被看成是文件,可以直接用相同的系统API(如write/read)对其读写操作,所以说Linux下一切皆文件。(在windows下,不同文件或者不同的文件类型需要调用不同的API去...
  • 谈一谈linux中一切皆文件1、Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。普通文件是文件。目录(在win下称为文件夹)是文件。硬件设备(键盘、硬盘、打印机)是文件。套接字(socket)、网络通信等资源也...
  • Linux下一切皆文件

    2020-05-18 21:29:56
    在Linux下,大多数资源都是以文件...包含了到另一个人文件的连接,类似于windows的快捷方式; 套接口 套接口更像管道文件,但可以让处于不同机器上的进程通讯。 比如进入Linux系统,cd不带参数回到宿主目录,然后: cd
  • Linux一切皆文件(包含好处和弊端)

    千次阅读 2019-06-29 20:44:56
    Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是...
  • 在linux环境中有一个基本的设计原则—...所有的内容都是以文件的形式来抽象(比如:普通文件、目录、进程、网络、硬件等),可以对其进行打开、读取、写入等操作。 文件系统为操作系统提供了组织管理数据的方式。 ...
  • 一、Linux一切皆文件Windows中时文件的在Linux是文件 在Windows中不是文件的在Linux中也是文件(如Windows中的进程,盘符) 二、Linux的目录系统 1.bin:全程binary,该目录中存储的时二进制文件,文件都...
  • Windows文件系统-NTFS文件系统

    千次阅读 2021-02-02 16:35:24
    我们几乎每天都会经历打开文件管理器,进入具体磁盘,打开具体文件,而Windows采用文件系统管理着所有的文件和磁盘空间,这个文件系统就是NTFS。 NTFS文件系统 文档主要分为两大部分: 1.NTFS文件系统简介 2.文件...
  • 一切皆文件

    2017-09-26 19:36:00
    LINUX系统中,一切都是文件 对任何目标对象的访问,系统抽象了一个文件操作界面。 每个文件访问结构STAT,都有一个属性就是s-dev设备号,如果是字符或块设备,那么就是s_rdev设备号 转载于:...
  • Linux一切皆文件

    2017-09-24 21:18:00
    一切皆文件 首先通常在windows中是文件的东西,它们在linux中也是文件 其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件. 你可以使用访问文件的方法访问它们获得信息. 再其次,一些很离谱的...
  • 不管文件是什么,Liunx读写他们调用的API都是一样的,但是windows下却不是这样,windows则是用的不同的api。 然后,真正把这统一的API解析成相应的不同的API的,是(文件描述符)句柄对应的file结构体和它的inode和...
  • 是面向接口编程的典范。 使用统一的open,read,write,close等操作 ...商业转载请联系作者获得授权,非商业转载请注明出处。...“一切皆文件”的好处更多的表现在开发者上,好处就是大部分操作可以统一接口,甚至...
  • linux一切皆文件

    千次阅读 2018-03-06 11:52:59
    为什么说linux中一切都为文件?首先,我们看一下linux中文件的类型有哪些。 VFS(Virtual Filesystem,虚拟文件系统)是linux内核中的重要组成部分,用来处理与Unix标准文件系统相关的所有系统调用。其健壮性表现在能...
  • 一切皆文件

    2017-02-11 16:32:35
    对于linux来说,一切 皆文件。包括硬件 。。。。。 因此每个文件都有它们的文件名, 1  硬件 设备文件名:  IDE硬盘 /dev/hd[a-d]  SCSI/SATA/USB硬盘
  • 初识Linux Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。 目录结构唯一 根目录 树形 绝对路径:从根目录开始表达的路径...linux 一切皆文件 文件类型:(以.开头为隐藏文件,可用ls -...
  • Linux ❉ 一切皆文件

    2022-01-10 15:34:45
    Linux 一切皆文件
  • 走进Linux(一切皆文件)

    万次阅读 多人点赞 2021-12-16 17:43:30
    众生皆浮云,一切皆文件 我来管系统,文件任我玩

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,409
精华内容 5,763
关键字:

windows一切皆文件