ext2
文章平均质量分 91
guoguangwu
这个作者很懒,什么都没留下…
展开
-
linux文件系统-其他文件操作
系统调用open、close、write、read无疑是最基本、最重要、而且也是最复杂的文件操作。除此以外,还有许多用于文件操作或与文件操作有关的系统调用。尽管这些系统调用相比之下只是辅助性的,但是在不同的应用中分别起着很重要的作用,限于篇幅,我们不可能对所有这些系统调用都一一列举并加以介绍。我们可以在后面讲解的系统调用函数跳转表中找到与所有这些系统调用对应的内核函数,对于这些(未必是全部)系统调用的作用于运用可以参考关于Unix、linux程序设计的专著。至于实现这些系统调用的代码,则大多数后面自己要下工原创 2021-09-25 14:28:57 · 565 阅读 · 0 评论 -
linux文件系统-文件的写与读
只有打开可文件以后,或者建立起进程与文件之间的连接之后,才能对文件进行读写。文件的读写主要是通过系统调用read和write来完成的,对于读写的进程,目标文件由一个打开文件号代表。为了提高效率,稍微复杂一点的操作系统对文件的读写都是带缓冲的,linux也不例外。像vfs一样,linux文件系统的缓冲机制也是它的一大特色。所谓缓冲,是指系统为最近的读写过的文件内容在内核中保留一份副本,以便当再次需要已经缓冲存储在副本的内容时不必再临时从设备上读入,而需要写的时候则可以先写到副本中,待系统较为空闲时再从副本原创 2021-09-21 08:21:49 · 2949 阅读 · 0 评论 -
linux文件系统-文件的打开与关闭
用户进程在能够读写一个文件之前必须先要打开这个文件。对文件的读写从概念上说是一种进程与文件系统之间的一种有连接通信,所谓打开文件实质上就是在进程与文件之间建立起连接,而打开文件号就唯一地标识着这样一个连接。不过,严格意义上的连接意味着一个独立的上下文,如果一个进程与某个目标之间重复建立起多个连接,则每个连接都应该是互相独立的。在文件系统的处理中,每当一个进程重复打开同一个文件时就建立起一个由file数据结构代表的独立的上下文。通常,一个file数据结构,即一个读写文件的上下文,都由一个打开文件号加以标识,但原创 2021-09-11 11:52:51 · 2652 阅读 · 0 评论 -
linux文件系统-文件系统的安装与拆卸
在一块设备上按一定的格式建立起文件系统的时候,或者系统引导之初,设备上的文件和节点都还是不可访问的。也就是说,还不能按一定的路径名访问其中特定的节点或文件(虽然设备是可访问的)。只有把它安装到计算机系统的文件系统中的某个节点上,才能使设备上的文件和节点成为可访问的。经过安装以后,设备上的文件系统就成为整个文件系统的一部分,或者说一个子系统。一般而言,文件系统的结构就好像一棵倒立的树,不过由于可能存在着的节点间的链接和符号链接不并不一定是严格的图论意义上的一棵树。最初,整个系统只有一个节点,那就是整个文件系统原创 2021-08-29 12:24:31 · 1001 阅读 · 2 评论 -
linux文件系统-从路径名到目录节点
本博客先介绍几个函数的代码,主要是两个函数,即path_init和path_walk以及它们下面的一些底层函数。目的在于帮助读者加深对文件系统内部结构的理解,同时业务以后的代码阅读做些准备,因为以这两个函数为入口的操作比较大,并且很重要,在后面的博客中常常要用到。这两个函数通常是在一起调用的,二者合在一起就可以根据给定的文件路径名在内存中找到或者建立代表着目标文件或者目录的dentry结构和inode结构。在老的一些版本汇总,这一部分功能一直是通过一个namei的函数完成的,现在则有了新的实现。与namei原创 2021-08-27 22:22:25 · 718 阅读 · 0 评论 -
linux 文件系统基本概念
概念:文件系统是是linux操作系统中非常重要的部分。这里我们主要介绍有关ext2的相关实现。为了让Linux支持不同文件系统,就要将各种不同的文件系统的操作和管理纳入到一个统一的框架中。让内核中的文件系统界面成为一条文件系统的总线,使得用户程序可以通过同一个文件系统操作界面,即同一组系统调用,对各种不同的文件系统(以及文件)进行操作。这样,就可以对用户程序隐藏掉对各种不同的文件系统的实现细节,为用户程序提供一个统一的、抽象的、虚拟的文件系统界面,这就是所谓的虚拟文件系统交换VFS(The Virtu.原创 2021-07-17 22:16:43 · 625 阅读 · 0 评论