首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux基础(目录是什么鬼)

所以,linux的目录并没有存放文件本身。这是linux跟windows不同之处。 Linux的目录只是代表一个路径,存放的只是目录项。目录项由文件名和i-node number组成。...而文件名显然只是一个字符串,而i-node 一般大小是128字节或256字节,所以4KB足矣。 但是目录里面只有这两种东西那是怎么读取到文件的呢?...关键就在i-node number 节点编号,它inode索引结点的成员之一。可以使用 stat 命令来查看文件/目录的元信息: ?...* 链接数,即有多少文件名指向这个inode * 文件数据block的位置 当我们访问一个文件的时候,直观的就是找它的文件名,而文件名与i-node number联系,从而找到索引节点 inode...由此可以推出,inode和文件数据并不是在同一片地方的,这和linux的文件系统有关系。linux是先有路径,再有分区的,这个路径就像是一棵倒挂的树,由 / 根目录开始。

4.5K30

低调的 Linux 文件系统家族

i-node 索引节点,包含了每一个文件的描述符。 ❝在 Linux 中,目录和设备也表示为文件,因为它们具有对应的 i-node ❞ 超级块和索引块所在的文件系统都在磁盘上有对应的结构。...在超级块之后分布的是 i-node 它们自己,i-node 取值范围是 1 - 某些最大值。每个 i-node 是 128 字节的 long ,这些字节恰好能够描述一个文件。...i-node 包含了统计信息(包含了 stat 系统调用能获得的所有者信息,实际上 stat 就是从 i-node 中读取信息的),以及足够的信息来查找保存文件数据的所有磁盘块。...对应于目录的 i-node 分散在整个磁盘组上。如果有足够的空间,ext2 会把普通文件组织到与父目录相同的块组中,而把同一块上的数据文件组织成初始 i-node 节点。...第一个属性是 i-node 节点数量,文件 first 的 i-node 编号是 19 ,文件 second 的编号是 42,目录 third 的 i-node 编号是 88。

97040
您找到你想要的搜索结果了吗?
是的
没有找到

来,聊个小问题

实际上在OS中,磁盘这种物理实体是通过文件系统(FS)实现了系统抽象,在Linux下,磁盘基本上被抽象成了很多部分,其中比较重要的三个部分分别是「超级块」、「i节点」、「数据块」,其中超级块是存储文件系统...不属于本文我们需要关注的地方,我们需要关注「i节点」和「数据块」: i节点:包含了大量节点信息、文件属性、所有者、可执行者等等信息 数据块:文件数据真正存放的区域,这块儿区域一般说来并不是连续的 同时,在Linux...中实际上文件名都是障眼法,真正起作用的是一个叫做i-node号的玩意,多个文件名可以对应同一个i-node号,Linux是先根据文件名获取到其对应的i-node号,然后根据i-node号就可以在「i节点...最后推荐大家补充一下关于Linux文件系统的相关知识点,相信各位都擅长使用搜索引擎以及优质的提问或搜索方式。

63820

Linux手动清除内存命令的方法

Linux手动清除缓存的方法 Linux长时间使用会导致cache缓存占用过大,甚至拖累CPU的使用率,可以通过命令手动释放Linux内存,详细教程如下: 一:先查看下当前Linux的内存占用情况 命令...一般我们清理Linux缓存主要是清理buff/cache占用的内存资源。...二:执行sync命令 命令:sync 执行sync命令是为了确保文件系统的完整性,手动执行sync命令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。...三:执行清除Linux缓存命令 命令:echo 3 > /proc/sys/vm/drop_caches /proc是一个虚拟文件系统,通过对它的读写操作做为与kernel实体间进行通信的一种手段。...综上,3条命令即可清除Linux缓存释放内存。

6.2K30

File Descriptor问题总结

今天客户物理机上遇到文件描述符用尽的问题,现象包括: SSH连接物理机卡住 PG服务端口TCP心跳检测失败 PSQL卡住 报错:too many open files 概念 在Linux系统中一切皆可以看成是文件...102400 * hard nofile 102400 mingjie.gmj soft nofile 75535 mingjie.gmj hard nofile 75535 shell级参数配置 Linux...或使用lseek()直接修改) 打开文件时所使用的状态标识(即,open()的flags参数) 文件访问模式(如调用open()时所设置的只读模式、只写模式或读写模式) 与信号驱动相关的设置 对该文件i-node...、打开的文件句柄以及i-node之间的关系,图中,两个进程拥有诸多打开的文件描述符。...进程A的描述符0和进程B的描述符3分别指向不同的打开文件句柄,但这些句柄均指向i-node表的相同条目(1976),换言之,指向同一个文件。

97660

CentOS5.8 x86_64系统手动释放内存

线上集群后端某台Web服务器例行检查时,我观察到+buffers/cache值(即Linux内存的实际使用情况)一直都是5365左右,就算停掉Nginx+FastCGI程序和其它程序也是一样,考虑到这台机器经常在使用...而Linux系统有一个特性:在Linux下频繁存取文件时,就会占用物理内存。当程序结束时并不会自动释放被占用的内存,而是一直作为Cache存在。...2、使用sync命令,将系统缓存区中的脏数据写入磁盘中,包括已修改的i-node、已延迟的块I/O和读写映射文件,命令如下: sync 3、配置文件/proc/sys/vm/drop_caches中记录了缓存释放的参数...不过个人觉得Linux系统(尤其是CentOS系统)管理内存的方式其实是很优异的,很多时候并不需要手动释放内存;另外,工作中感觉rsync+inotify的方式还是存在着很多缺陷,正在慢慢将其往rsync...CentOS 5.6 Linux安装系统后的基本优化 http://www.linuxidc.com/Linux/2012-02/54504.htm

51820

白话linux操作系统原理

linux内核的本质 简单来说如上图所示,咱们平时的应用程序或者linux命令要和操作系统打交道,都要经过一个叫做linux内核的软件。所有的硬件操作都需要通过他。就像古代女子出嫁,都要有媒人。...而linux之父林纳斯最初设计linux内核也是设计成一种保护机制。 为什么说linux内核是一种保护机制呢,这要从冯·诺依曼体系结构说起。...不同的文件描述符也可能指向同一个文件 相同的文件可以被不同的进程打开,也可以在同一个进程被多次打开 2.系统为维护文件描述符,建立了三个表 进程级的文件描述符表 系统级的文件描述符表 文件系统的i-node...进程A的描述符0和进程B的描述符3分别指向不同的打开文件句柄,但这些句柄均指向i-node表的相同条目(#1936),换言之,指向同一个文件。发生这种情况是因为每个进程各自对同一个文件发起了打开请求。...linux基础里有介绍怎么重定向,下面一条命令可以将标准输出1和错误输出2重定向到一个文件: 总结 linux的内存分段、中断机制和文件描述符限制都是内核的保护机制。当然这并不全面,还有其他机制。

3.7K10

类Unix系统中,fd指的啥?

fd 是(file descriptor)即文件描述符,这种一般是BSD Socket的用法,用在Unix/Linux系统上。...Linux中一切皆文件,这句话我们都知道,可见文件的重要性,因此文件的管理在Linux中占据了很大比重,那么操作系统怎么管理文件的呢? 要管理一个东西,那么必须经历两个步骤——描述和组织。...在Linux中,进程与文件的模型是这样的: 进程的PCB中保存着一个指向文件组织结构的一个指针,而对于每个打开的文件,在文件组织结构的文件指针数组中都会有一个指针指向它,因此进程只要通过files指针访问到...不同的文件描述符也可能指向同一个文件 相同的文件可以被不同的进程打开,也可以在同一个进程被多次打开 2.系统为维护文件描述符,建立了三个表 进程级的文件描述符表 系统级的文件描述符表 文件系统的i-node...进程A的描述符0和进程B的描述符3分别指向不同的打开文件句柄,但这些句柄均指向i-node表的相同条目(#1936),换言之,指向同一个文件。发生这种情况是因为每个进程各自对同一个文件发起了打开请求。

99030

文件描述符与socket连接(下)

三.内核维护的3个数据结构 1.进程级的文件描述符表 2.系统级的打开文件描述符表 3.文件系统的i-node表 进程级的描述符表的每一条目记录了单个文件描述符的相关信息。...或使用lseek()直接修改) 打开文件时所使用的状态标识(即,open()的flags参数) 文件访问模式(如调用open()时所设置的只读模式、只写模式或读写模式) 与信号驱动相关的设置 对该文件i-node...对象的引用 文件类型(例如:常规文件、套接字或FIFO)和访问权限 一个指针,指向该文件所持有的锁列表 文件的各种属性,包括文件大小以及与不同类型操作相关的时间戳 下图展示了文件描述符、打开的文件句柄以及i-node...此外,进程A的描述符0和进程B的描述符3分别指向不同的打开文件句柄,但这些句柄均指向i-node表的相同条目(1976),换言之,指向同一个文件。

1.3K20
领券