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

    2017-09-24 21:18:00
    一切皆文件 首先通常在windows中是文件的东西,它们在linux中也是文件 其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件. 你可以使用访问文件的方法访问它们获得信息. 再其次,一些很离谱的...

    一切皆文件

    • 首先通常在windows中是文件的东西,它们在linux中也是文件
    • 其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件. 你可以使用访问文件的方法访问它们获得信息.
    • 再其次,一些很离谱的东西, 比如管道, 比如/dev/zero(一个可以读出无限个0的文件) /dev/null(一个重定向进去之后就消失了的文件). 它们也是文件
    • 再再其次, 类似于socket这样的东西, 使用的接口跟文件接口也是一致的.

    带来的好处就是, 你可以使用同一套api(read, write)和工具(cat , 重定向, 管道)来处理unix中大多数的资源.这就使得组合了简单的命令和字符处理工具(awk, sed)之后, shell脚本就能发挥出强大的功能.

    文件分类

    Linux下文件一般有如下几种类型:

    1.普通文件          # xxx.log
    2.目录              # /usr/ /home/
    3.字符设备文件      # /dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件,比如猫等串口设备
    4.块设备文件        # /dev/hda1 的属性是 brw-r----- ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备
    5.套接字文件        # /var/lib/mysql/mysql.sock srwxrwxrwx
    6.管道              # pipe
    7.符号链接文件      # softlink...

    文件操作系统调用

    虽然对文件的操作就那么几个,但是由于linux把所有的设备、文件的操作都统一了,所以这些系统调用会有很多参数来处理各种类型的文件,所以还是有点复杂的,这里的复杂有一点是如果你还没有全面掌握各种类型的文件操作,读文档的时候就会遇到某些参数一脸懵逼,不知所云,比如 O_NONBLOCK 这个标志对普通的文件是不起作用的,对什么文件起作用?那你得操作块设备,字符设备,FIFOs (named pipes),所以这里需要有比较系统全面的知识才能看的比较通透

    详细的系统调用说明参考 man或系统文档 man-fileopen

    内核实现

    代码示例 / github

    转载于:https://www.cnblogs.com/how-are-you/p/7588703.html

    展开全文
  • 关于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下一切皆文件

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

    在Linux下,大多数资源都是以文件的方式访问的。Linux系统上的文件类型有:

    • 普通文件。
      就是储存到磁盘上大家所操作的各种数据文件;
    • 管道文件。
      是一个从一端发送数据,从另一端接收数据的通道;
    • 目录
      也叫目录文件,是包含了保存在目录中文件的列表;
    • 设备文件
      是一种特殊文件,提供了大多数物理设备的接口;
    • 符号链接
      包含了到另一个人文件的连接,类似于windows的快捷方式;
    • 套接口
      套接口更像管道文件,但可以让处于不同机器上的进程通讯。
      比如进入Linux系统,cd不带参数回到宿主目录,然后:
    cd /proc
    ls
    

    列举出很多文件:
    在这里插入图片描述打开其中几个看看,比如:cat cpuinfo
    在这里插入图片描述
    可以看出来,cpu的详细信息都列举在这个文件中,以后如果我们要编程获取cpu信息,那就是读取这个文件;
    再比如 cat meminfo,读取这个文件可以看到内存详细的信息:
    在这里插入图片描述
    以后如果编程中要使用到内存的信息,也是读取这个文件就可以了。
    其他的设备也类似。

    更进一步,我们在Linux上运行的程序,其实也是由一个文件维护。我们看一个例子,这个程序的功能很简单,就是让程序一直运行着:

    #include <unistd.h>
    
    int main()
    {
    	while(1)
    	{
    		sleep(1);
    		return 0;
    	}
    }
    

    编译执行起来,然后执行命令:ps -u 系统用户名,找到刚刚执行起来程序的PID:
    在这里插入图片描述
    然后回到/proc目录下,ls列举出这个文件夹下的所有的文件,刚好可以找到有一个4032名称的文件夹:
    在这里插入图片描述
    对了,这个文件夹就是维护着刚才打开的、正在运行的test程序,Linux系统给这个程序分配的各种资源:
    在这里插入图片描述
    比如查看test程序的状态:
    在这里插入图片描述
    可以看出来,在Linux中,一个进程都是用一个文件来描述的,可见文件在Linux中的重要性。

    展开全文
  • 一、Linux一切皆文件Windows中时文件的在Linux是文件 在Windows中不是文件的在Linux中也是文件(如Windows中的进程,盘符) 二、Linux的目录系统 1.bin:全程binary,该目录中存储的时二进制文件,文件都...

    一、Linux一切皆文件

    在Windows中时文件的在Linux是文件

    在Windows中不是文件的在Linux中也是文件(如Windows中的进程,盘符)

     

    二、Linux的目录系统

    1.bin:全程binary,该目录中存储的时二进制文件,文件都可以运行

    2.dev:存放外接设备,如外接U盘,硬盘。但不能直接使用,需要挂载(手动分配盘符,类似Windows中U盘盘符)。

    3.etc:存放配置文件,如网站、数据库等的配置信息。

    4.home:表示家目录,存放除了root用户以外其他用户的信息(似Windows中的user/目录)。

    5.proc:全称process,表示进程。该目录存放Linux运行时的进程。

    6.root:该目录是root用户的家目录,只有root用户可以使用。

    7.sbin:全称super binary,存放可以执行的二进制文件。但是只有super权限的用户可以执行,sudo

    8.tmp:临时。存放系统运行时产生的临时文件。其中的文件不用删,运行完会自动删除(类似Windows中C/WINDOWS/temp)

    9.usr:存放用户自己安装的软件,类似Windows下的program files目录

    10.var:存放程序/系统的日志文件

    11.mnt:当外接设备需要挂载时,就挂载在mnt目录下(承接dev目录)

     

     

    展开全文
  • Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。...
  • Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是...
  • Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是...
  • Linux中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资也都是...
  • windows文件管理

    2016-03-03 23:40:51
    前言一切皆文件。 操作文件的函数总是比你想象的更强大,windows操作文件的函数返回是HANDLE句柄,它可以标识一块内存,所以它的功能也是远比文件更强大。 文件读写 打开/创建文件 HANDLE CreateFile( LPCTSTR ...
  • 在计算机出现之前其实就有文件系统的概念了,此时的文件系统是指用于管理(存储和检索等)纸质文件的系统。计算机及发明后,文件系统逐渐专指用于管理存储介质的系统。...Linux有个理念就是“一切皆...
  • 在linux上做开发,linux万物皆文件,对大小写敏感,但是scp转到window上编写测试就麻烦了,文件缺失什么的就来了。 那么怎么让windows对文件大小写敏感 这下面一切的操作都有一个前提 item des OS windows10...
  • 在Linux系统中一切皆可以看成是文件文件又可分为:普通文件、目录文件、链接文件和设备文件 fd:file descriptor 文件描述符0,1,2分别给了标准输入、标准输出和错误输出。 ls -l /proc/pid/fd可以查看某个进程...
  • 在Linux系统中一切皆可以看成是文件文件又可分为:普通文件、目录文件、链接文件和设备文件fd:file descriptor文件描述符0,1,2分别给了标准输入、标准输出和错误输出。ls -l /proc/pid/fd可以查看某个进程所使用...
  • linux文件

    2020-12-26 16:21:39
    Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是...
  • Linux 的哲学思想之一,一切皆文件,所以我们学习 Linux 处处要与文件目录打交道,熟悉它们是我们学好 Linux 的基本前提。 用户跟计算交互,是通过接口来实现的。而交互接口又分为两种:GUI 图形接口 和 CLI 命令行...
  • Linux 文件操作

    2020-02-29 17:10:09
    Linux一切皆文件 ①在windows是文件的,在Linux下同样是文件 ②在windows不是文件的,在Linux下也是以文件的形式存储的 Linux文件目录
  • Windows与Unix思想

    2018-11-11 11:45:00
    Unix中的哲学是“一切皆文件”,这里的一切皆文件是一个广泛的概念,有一些特殊的设备文件,在/dev目录下 物理设备在Unix中就对应一个特殊的设备文件,比如打印机就是/dev/lp0,这个设备文件直接与物理设备的串行...
  • Python 文件 IO

    千次阅读 2017-10-11 17:59:06
    文件是磁盘上的一个指定位置,用来存储相关信息。它用于永久地将数据存储在非易失性的内存中(例如...而在 Linux 中,一切皆文件。 对于 Python 而言,文件是一种类型对象,像前面介绍的其他类型(例如:`str`)一样。
  • ① Linux上使用ext3或ext4等文件系统(一般来说,特别是小文件特别多的情况下,ext3性能远超NTFS),Linux上一切皆文件。 ② Linux上是以挂接点(mount point)的模式来构架文件系统,挂接点可能是根目录,也可能...
  • windows与unix思想

    2018-11-11 11:45:00
    Unix中的哲学是“一切皆文件”,这里的一切皆文件是一个广泛的概念,有一些特殊的设备文件,在/dev目录下 物理设备在Unix中就对应一个特殊的设备文件,比如打印机就是/dev/lp0,这个设备文件直接与物理设备的串行...
  • AIX文件系统基本之文件

    千次阅读 2011-09-29 13:55:44
    AIX也属于一种UNIX操作系统,正如UNIX中"一切皆文件"的思想一样,AIX也是如此。 文件系统实际上是一种存储和检索数据工具,作为一种物理或者逻辑的存储,创建在逻辑卷之上,文件系统分配的一块存储空间,通过这块...
  • 一:文件 与 文件夹文件一般是1个独立的东西,可以通过一些特性的工具进行打开,并且其中不能再包含...在Linux中,一切皆文件(就像在Python中,一切皆对象)在Windows中是文件的,在Linux中也是文件在Windows中不是...
  • linux的文件系统

    2020-05-01 22:32:42
    文件系统一、目录和路径1.1 目录1.2 路径二、 文件系统2.1 Windows和Linux文件系统区别2.2 Linux目录结构三、一切皆文件3.1 一切皆文件3.2 文件分类四、 文件权限4.1 访问用户4.2 访问权限4.3 示例说明 一、目录和...
  • [Windows] 内核对象

    2020-09-07 00:21:20
    Windows一切皆为 对象,Linux 中一切皆文件。内核对象是 Windows 用来管理资源的一种 数据结构 内核对象分类 访问标记对象 注册表键对象 调试对象 目录对象 符号链接对象 事件对象 文件对象 文件映射对象 IO...
  • Linux -文件目录

    2020-12-23 16:08:15
    3.在Linux中,一切皆文件(就像在Python中,一切皆对象) 在Windows中是文件的,在Linux中也是文件 在Windows中不是文件的,在Linux中也是以文件的形式存储的 对文件有哪些操作? 创建文件 查看文件.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 624
精华内容 249
关键字:

windows一切皆文件