随笔分类 -  Linux文件系统

ext2文件系统
摘要:很久以来,就想写一篇关于ext 家族文件系统的文章,源于我刚工作的时候,曾经一不小心rm -rf,误删除了很多文件,当时真想有个数据恢复软件能帮我把数据回复了。当然学习数据恢复,首先要学习文件系统。最近工作原因,好长时间没看学习Linux kernel 相关的东西,感觉面目可憎。扯远了,开始我们的e 阅读全文

posted @ 2018-02-13 20:28 AlanTu 阅读(551) 评论(0) 推荐(0) 编辑

与进程相关的文件系统
摘要:进程是通过文件描述符(file descriptor,fd)来访问文件的,每个进程最多能同时使用NR_OPEN个文件描述符,这个值在include/linux/limits.h中定义为1024。每一个进程用一个打开文件表files_struct来描述进程的文件描述符使用情况。每一个文件都有一个文件指 阅读全文

posted @ 2018-02-13 20:27 AlanTu 阅读(823) 评论(0) 推荐(0) 编辑

Linux VFS数据结构
摘要:先说明一下,linux内核中各种数据结构也不停的在变,所以不同版本的内核各个数据结构的定义可能会差别很大,这一组关于linux 文件系统的文章中的代码都摘自linux-2.6.34.1。 VFS依赖于数据结构来保存其对于一个文件系统的一般表示。 超级块结构:存放已安装的文件系统的相关信息 索引节点结 阅读全文

posted @ 2018-02-13 20:20 AlanTu 阅读(1011) 评论(0) 推荐(0) 编辑

虚拟文件系统
摘要:VFS的层次 文件系统实现与用户进程(或C库)之间。 文件系统分类 基于磁盘的文件系统(ext2/3 fat iso9660…)、虚拟文件系统(proc)、网络文件系统(nfs) 通用文件模型 VFS提供一种结构模型,包含了一个强大的文件系统所应具备的所有组件。所有的文件系统实现,都必须提供与VFS 阅读全文

posted @ 2018-02-13 20:19 AlanTu 阅读(1072) 评论(0) 推荐(0) 编辑

linux文件系统 - 初始化(三)
摘要:执行init程序 一、目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs、proc文件系统,加载了磁盘驱动程序驱动程序等。接下来,内核跳转到用户空间的init程序,由init完成创建磁盘设备文件、加载磁盘文件系统、从rootfs切换到磁盘根文件系统等工作 阅读全文

posted @ 2018-02-13 20:16 AlanTu 阅读(1768) 评论(0) 推荐(0) 编辑

linux文件系统 - 初始化(二)
摘要:加载initrd(上) 一、目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd。 initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可执行程序和驱动程序。在linux初始化的初级阶段,它提供了一个基本的运行环境。当成功加载磁盘文件系统 阅读全文

posted @ 2018-02-13 20:14 AlanTu 阅读(966) 评论(0) 推荐(0) 编辑

linux文件系统 - 初始化(一)
摘要:术语表: struct task:进程 struct mnt_namespace:命名空间 struct mount:挂载点 struct vfsmount:挂载项 struct file:文件 struct super_block:超级块 struct dentry:目录 struct inode 阅读全文

posted @ 2018-02-13 20:09 AlanTu 阅读(4350) 评论(0) 推荐(0) 编辑

导航