inode

实现mypwd

左心房为你撑大大i 提交于 2020-02-03 06:59:25
实现mypwd 要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 学习pwd命令 首先是用man命令学习pwd。 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。 1.命令格式: pwd [选项] 显示当前目录的物理路径: pwd –P 显示当前目录的连接路径:pwd -L 2.命令功能: 查看”当前工作目录“的完整路径 3.常用参数: 一般情况下不带任何参数 如果目录是链接时: 格式:pwd -P 显示出实际路径,而非使用连接(link)路径。 linux系统下pwd命令用法详解 伪代码 1.获取当前i-Node 2.从根目录中找到和i-Node相同的值 3.用i-Node向前递归 4.输出路径 实现mypwd #include<stdio.h> #include<sys/stat.h> #include<dirent.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> void printpath(); char *inode_to_name(int); int getinode(char *); int main() { printpath(); putchar('\n');

磁盘 inodes 不足 Free inodes is less than 20% on volume

我的未来我决定 提交于 2020-02-01 18:26:14
一、问题 最近在遇到这个报错: Free inodes is less than 20% on volume / 二、问题原因 其实是服务器上的文件数过多。 三、解决办法 查找每个目录下面的文件数 for i in /*; do echo $i; find $i |wc-l ;done 然后看看哪个目录下面的文件比较多,然后删除一些没有作用的文件。 查看磁盘总的 inodes 数。 使用命令: df -i 四、扩展 什么是 inodes 是一个数据结构在unix 系统里面,类似一个文件系统对象,像一个文件或者是一个目录。 每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有inode和Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。 inodes 里面存储了什么? 每个索引节点都存储对象数据的属性和对应的磁盘块位置。对象数据的属性包含元数据(上次更改的时间、访问、修改的时间)和所有者等。 inodes 的大小取决于什么,一个磁盘的 inodes 是多大? 每个文件都有一个 inode,一个inodes至少需要占用1kb,当一个磁盘为100G 时

Why is the JDK NIO using so many anon_inode file descriptors?

穿精又带淫゛_ 提交于 2020-02-01 04:52:24
问题 I'm using Sun's JDK 1.6.0_26 and NIO (with Netty) and in lsof I see hundreds of file descriptors that are anon_inode : $ lsof -np 11225 | fgrep -w anon_inode java 11225 nobody 57u 0000 0,9 0 1386 anon_inode java 11225 nobody 61u 0000 0,9 0 1386 anon_inode java 11225 nobody 65u 0000 0,9 0 1386 anon_inode java 11225 nobody 69u 0000 0,9 0 1386 anon_inode java 11225 nobody 73u 0000 0,9 0 1386 anon_inode java 11225 nobody 77u 0000 0,9 0 1386 anon_inode java 11225 nobody 81u 0000 0,9 0 1386 anon

理解inode

梦想与她 提交于 2020-01-31 20:49:11
inode 是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。 下面就是我的inode学习笔记,尽量保持简单。 =================================== 理解inode 作者:阮一峰 一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。 二、inode的内容 inode包含文件的元信息,具体来说有以下内容: * 文件的字节数 * 文件拥有者的User ID *

理解inode

我只是一个虾纸丫 提交于 2020-01-31 20:48:28
从inode的角度理解软链接和硬链接的区别。转载自: http://www.ruanyifeng.com/blog/2011/12/inode.html 一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。 二、inode的内容 inode包含文件的元信息,具体来说有以下内容:   * 文件的字节数   * 文件拥有者的User ID   * 文件的Group ID   * 文件的读、写、执行权限   * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。   * 链接数

Inode详解

走远了吗. 提交于 2020-01-31 20:47:44
一、inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个sector组成一个block。 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。 二、inode内容 inode包含文件的元信息,具体来说有以下内容: * 文件的字节数 * 文件拥有者的User ID * 文件的Group ID * 文件的读、写、执行权限 * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。 * 链接数,即有多少文件名指向这个inode * 文件数据block的位置 可以用stat命令,查看某个文件的inode信息: stat example.txt 总之,除了文件名以外的所有文件信息

Linux的文件系统

巧了我就是萌 提交于 2020-01-30 17:54:44
文件系统 1.分区与文件管理 2.文件系统的组成 3.文件读取 4.磁盘碎片 5.block 6.inode 7.目录 8.日志 9.挂载 10.目录配置 1.分区与文件管理 对分区进行格式化是为了在分区上建立文件系统。一个分区通常只能格式化为一个文件系统,但是磁盘阵列等技术可以将一个分区格式化为多个文件系统。 2.文件系统的组成 最主要的几个组成部分如下: inode:一个文件占用一个 inode,记录文件的属性,同时记录此文件的内容所在的 block 编号; block:记录文件的内容,文件太大时,会占用多个 block。 除此之外还包括: superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等; block bitmap:记录 block 是否被使用的位图。 3.文件读取 对于 Ext2 文件系统,当要读取一个文件的内容时,先在 inode 中查找文件内容所在的所有 block,然后把所有 block 的内容读出来。 而对于 FAT 文件系统,它没有 inode,每个 block 中存储着下一个 block 的编号。 4.磁盘碎片 指一个文件内容所在的 block 过于分散,导致磁盘磁头移动距离过大,从而降低磁盘读写性能。 5.block 在 Ext2 文件系统中所支持的 block 大小有 1K

Linux磁盘与文件系统原理

旧时模样 提交于 2020-01-28 23:16:11
这一章主要是原理性的,介绍了Linux文件系统的运作原理。涉及到很多计算机组成和操作系统的原理性知识,这部分知识很多都忘了,在这里复习下。 我们只看本章第1,2节。 --------------------------------------------------------------------------------------------------------------------------------------------------- 1 硬盘物理组成 //原理 磁头负责读写 磁道(硬盘同半径的一圈) 磁柱(所有盘磁道叠加起来的柱) 扇区(2条半径将磁道分开的一个扇形区域,是磁盘的最小存储单位) --------------------------------------------------------------------------------------------------------------------------------------------------- 2 磁盘分割 //原理 磁柱是磁盘分割的最小单位 磁盘分割就是指定一个分割(Partition)的是从A磁柱到B磁柱 所有磁盘的分割信息存放在MBR (主要开机扇区,master boot recoder),即一块硬盘的第0轨上。计算机一开机就会去读取这个区域。

字符设备驱动程序

。_饼干妹妹 提交于 2020-01-28 03:42:22
在这里首先需要说明,这一系列的文章可能跨度比较大,比如按照正常的逻辑,写完怎样搭建开发环境之后,就该接着讲一个helloworld的内核模块,然 后才是这一篇字符驱动的文章,但是我不想重复的去写那么多东西,至于有这方面需求的博友,可以随便google一下就能查到很多类似的文章,因为我是希望 linux的博客和Mac专题的一起同时对比着写,所以理论上的东西不会太多,主要还是讲解每一个能真正运行起来的小实例,用这种方式来阐述内核开发的方 方面面。而且需要重点说明的是,这一个阶段涉及的比较多的内容是关于网络方面的扩展,也就是主要介绍的内容是Netfilter,因为在Mac上我也主要 是介绍Net Kernel Extensions。当然为了阐述NetFilter,也必须介绍一些基本的知识,例如内存管理,同步机制,中断等等。本文主要介绍的是如何实现一个简 单的字符驱动程序,来达到内核和用户空间之间的内存数据交换。 一、设备分类 在Linux系统中设备分为三种类型:字符驱动、块设备驱动和网络接口设备。字符设备是指那些只能一个字符一个字符按照先后顺序进行读写的设备。而块设备是指那些可以从设备的任意位置读取指定长度数据的设备,不必按照先后顺序进行读取。 常见的字符设备有鼠标、键盘、串口等,常见的块设备有硬盘、U盘、SD卡、光盘等。在Linux中用ls

软链接和硬链接的联系和区别

只愿长相守 提交于 2020-01-25 05:00:28
为了共享使用,给一个文件在其他地方创建一个链接,使用ln或者link命令实现 1、首先我们来个通俗地理解: 软链接(符号链接):相当于windows里的快捷方式,在其他地方给文件创建一个快捷方式,快捷方式删了,原来文件还是存在的。 硬链接:可以理解为是复制了一份文件(只是通俗理解,其实并不占用磁盘空间)链接文件和原始文件只要有一个存在,文件就会存在,不会消失。 相同点:linux的软链接和硬链接删除都不会影响原始文件,但是修改的话都会影响原始文件。 2、使用方法: 软连接:ln –s 源文件 目标文件,如下图: 解释:首先我创建了一个新的文件,并输入了内容this is a test,然后使用ln -s为test创建软连接,查看软连接内容和test一样。 硬链接:ln 源文件 目标文件 解释:利用ln为test创建了硬链接,查看内容和test是一样的。 3、那软连接和硬链接有什么区别呢?我们看看下图: 我们看到,我们之前为test创建的硬链接的inode和test是一样的,但是软连接和test是不一样的。这个怎么解释呢? inode 号即索引节点号(是文件元数据的一部分但其并不包含文件名),是文件的唯一标识而非文件名,文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。下图展示了程序通过文件名获取文件内容的过程。 linux中