推荐:文件描述符和文件指针的关系 fs_struct 记录该进程所在文件系统等信息. files_struct 记录该进程当前打开的所有文件等信息,其中有一个元素为数组,数组索引是文件描述符,数组元素(FILE *类型)指向了 file 对象.由此可知两个文件描述符可以指向同一 file 对象,即使不在同一进程. file 为 FILE 对象,可以在 include/linux/fs.h 中查看. 结合以上知识来图 进程与管道的接口和进程与文件的接口是一致的.不同的是,在实现上,内核将读写的偏移…
点击返回 自学Linux命令行与Shell脚本之路 1.3-Linux文件系统 文件系统是文件存放在磁盘等存储设备上的组织方法.Linux系统能支持多种目前流行的文件系统,如EXT2. EXT3. FAT. FAT32. VFAT和ISO9660. 1. 文件类型概述 1.1 Linux下面的文件类型主要有: 普通文件:C语言元代码.SHELL脚本.二进制的可执行文件等.分为纯文本和二进制. 目录文件:目录,存储文件的唯一地方. 链接文件:指向同一个文件或目录的的文件. 设备文件:与系统外设相关…
1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式:更进一步,对文件的 操作可以跨文件系统而执行.如图 1 所示,我们可以使用 cp 命令从 vfat 文件系统格式的硬盘拷贝数据到 ext3 文件系统格式的硬盘:而这样的操作涉及到两个不同的文件系统. 图 1. 跨文件系统的文件操作 “一切皆是文件”是 Unix/Linux 的基本哲学之一.不…
2017-03-08 10:37:55 一.虚拟文件系统VFS 文件系统用于将位于磁盘上的文件按照某种方式组织进内存,并给上层应用程序提供统一的访问接口.Linux支持多种文件系统EXT2/3,NTFS,XFS等,而LInux下支持这些文件系统的方式就是VFS,即虚拟文件系统.虚拟文件系统向上层提供统一的调用接口,向下层请求具体的文件系统.整理架构如图所示. 如上图所描述的,应用程序通过C语言库函数,请求对文件的访问.库函数会调用系统提供的系统调用进入内核,而这里的系统调用不过是一般函数的封装,…
1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式:更进一步,对文件的 操作可以跨文件系统而执行.如图 1 所示,我们可以使用 cp 命令从 vfat 文件系统格式的硬盘拷贝数据到 ext3 文件系统格式的硬盘:而这样的操作涉及到两个不同的文件系统. 图 1. 跨文件系统的文件操作 “一切皆是文件”是 Unix/Linux 的基本哲学之一.不…
本文涉及命令:dumpe2fs.df.du.fdisk.mkfs.mke2fs.fsck.badblocks.mount.umount.e2label.tune2fs.hdparm.parted 概念: 磁盘容量计算公式: 磁头数量(其实是可读写的表面) X 磁柱数量(其实是每个表面的磁轨) X 每条磁轨的磁区数量 X 每个磁区的容量 = 硬碟容量 ext2等格式的文件系统为索引式文件系统.通过inode内容一次提取所有block号得到档案内容.fat等格式文件系统没有inode,每个block…
转http://www.cnblogs.com/yyyyy5101/articles/1901842.html 谈谈个人对于文件系统的认识,其实这也体现了计算机操作系统的抽象:你不用管计算机中的文件如何存储,你只要在文件系统中操作使用即可,而底层的功能是如何实现的那? 也就是文件系统的作用:帮我们管理磁盘,存储器. 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基本原理.文…
linux下进程间通信的几种主要手段: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信: 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身:linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于B…
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication).如下图所示. 目前进程通信的方式有: 管道 FIFO 消息队列 信号量 共享内存 套接字 管道 管道概念 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数…
Ext 全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过为了快速恢复文件系统,减少一致性检查的时间,增加了日志功能,所以Ext2被称为索引式文件系统,而Ext3/Ext4被称为日志式文件系统. 备注:Linux支持很多文件系统,包括网络文件系统(NFS).Windows的Fat文件系统. 查看Linux支持的文件系统:ls -l /lib/modules…