首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏渗透云笔记

    文件系统(第9章)

    什么是OS模块,OS模块就是operating system的缩写,意思是操作系统。

    54010发布于 2019-07-26
  • 来自专栏Miigon's Blog

    笔记 Lab9: File System | 文件系统

    Lab 9: File Systems 为 xv6 的文件系统添加大文件以及符号链接支持。该 lab 难度较低。 Large files (moderate) 原理与分析 与 FAT 文件系统类似,xv6 文件系统中的每一个 inode 结构体中,采用了混合索引的方式记录数据的所在具体盘块号。 这里祭出上学校 OS 课的时候的笔记图: 本 lab 比较简单,主要前置是需要对文件系统的理解,确保充分理解 xv6 book 中的 file system 相关部分。

    1.5K10编辑于 2022-10-27
  • 来自专栏计算机学习

    xv6(9) 文件系统理论部分

    文件系统理论部分 文件系统是操作系统的重要组成部分,是对文件的组织管理,本文就主要讲述磁盘上的文件是如何组织的和文件操作两个部分,废话不多说直接来看。 EXT2 来看一个具体的文件系统 EXT2,捋一捋上面所讲的知识点,看看 EXT2 这种文件系统在磁盘上是怎么布局的。 虚拟文件系统 操作系统可能支持多个文件系统,各个文件系统对文件操作管理实现的方式可能不尽相同,而为了统一,在文件系统之上添加一个代理虚拟文件系统,使其对外表现出统一的接口。 进程,虚拟文件系统文件系统,外存的大致关系如下所示: 虚拟文件对外提供统一的接口供进程调用,这个接口一般是 POSIX 标准的系统调用,比如说 open,write 之类的,各个文件系统提供实际的功能函数进行实际的操作 挂载是一种访问文件系统的方法,实际上就是将某个文件系统和当前目录树中的一个目录联系起来的一个过程。

    72010编辑于 2023-12-06
  • 来自专栏技术派

    如何在Debian 9上设置文件系统配额

    先决条件 本教程假设您已登录到Debian 9服务器,该服务器具有非root,sudo启用的用户,如使用Debian 9的初始服务器设置中所述。 接下来,我们将更新文件系统的mount选项,以在根文件系统上启用配额。 第2步 - 更新文件系统挂载选项 要激活特定文件系统上的配额,我们需要使用指定的一些与配额相关的选项来安装它。 我们通过更新/etc/fstab配置文件中的文件系统条目来完成此操作。 我们可以通过查看/proc/mounts文件来验证新选项是否用于挂载文件系统。 现在我们已经安装了我们的工具并更新了我们的文件系统选项,我们可以打开配额系统。

    1.2K30发布于 2021-06-18
  • 来自专栏大内老A

    文件系统:物理文件系统

    物理文件系统由定义在NuGet包“Microsoft.Extensions.FileProviders.Physical”中的PhysicalFileProvider来构建。 这是一个公共类型,如果我们具有监控物理文件系统变化的需要,可以直接使用这个类型。 六、小结 我们借助下图所示的UML来对由PhysicalFileProvider构建物理文件系统的整体设计做一个简单的总结。 [ASP.NET Core 3框架揭秘] 文件系统[1]:抽象的“文件系统” [ASP.NET Core 3框架揭秘] 文件系统[2]:总体设计 [ASP.NET Core 3框架揭秘] 文件系统[3] :物理文件系统 [ASP.NET Core 3框架揭秘] 文件系统[4]:程序集内嵌文件系统

    2.2K50发布于 2019-11-24
  • 来自专栏大内老A

    文件系统:抽象的“文件系统

    一、树形层次结构 IFileProvider对象为我们构建了一个具有层次化目录结构的文件系统。 由于IFileProvider是一个接口,所以由它构建的是一个抽象化的文件系统,这里所谓的目录和文件都是一个抽象的概念。 为了让读者朋友们对这个文件系统有一个大体认识,我们先来演示几个简单的实例。 文件系统管理的所有文件以目录的形式进行组织,一个IFileProvider对象可以视为针对一个根目录的映射。 该方法具有一个类型为Action<int, string>的参数负责将文件系统的节点(目录或者文件)名称呈现出来。 对文件系统实施监控并在其发生改变时发送通知也是IFileProvider对象提供的核心功能之一。

    2.2K40发布于 2019-11-20
  • 来自专栏人人都是极客

    文件系统专栏 | 之文件系统架构

    文件系统层:不同的文件系统实现了VFS的这些函数,通过指针注册到VFS里面。所以,用户的操作通过VFS转到各种文件系统文件系统把文件读写命令转化为对磁盘LBA的操作,起了一个翻译和磁盘管理的作用。 文件系统的第一块是超级块,描述文件系统的总体信息,挂载文件系统的时候在内存中创建超级块的副本。 (2)挂载描述符。虚拟文件系统在内存中把目录组织为一棵树。 每次挂载文件系统,虚拟文件系统就会创建一个挂载描述符:mount 结构体,并且读取文件系统的超级块,在内存中创建超级块的一个副本。 (3)文件系统类型。 每次挂载文件系统,虚拟文件系统就会创建一个挂载描述符。挂载描述符用来描述文件系统的一个挂载实例,同一个存储设备上的文件系统可以多次挂载,每次挂载到不同的目录下。 因为每种文件系统的超级块的格式不同,所以每种文件系统需要向虚拟文件系统注册文件系统类型 file_system_type,并且实现 mount 方法用来读取和解析超级块。

    3.7K32编辑于 2022-08-26
  • 来自专栏大内老A

    文件系统:程序集内嵌文件系统

    由于内嵌于程序集的资源文件采用扁平化存储形式,所以在通过 EmbeddedFileProvider构建的文件系统中并没有目录层级的概念。我们可以认为所有的资源文件都保存在程序集的“根目录”下。 由于资源文件系统并不具有层次化的目录结构,它所谓的物理路径毫无意义,所以PhysicalPath属性直接返回Null。 对于内嵌资源文件系统来说,根本就不存在所谓的文件更新的问题,所以它的Watch方法会返回一个HasChanged属性总是False的IChangeToken对象。 [ASP.NET Core 3框架揭秘] 文件系统[1]:抽象的“文件系统” [ASP.NET Core 3框架揭秘] 文件系统[2]:总体设计 [ASP.NET Core 3框架揭秘] 文件系统[3] :物理文件系统 [ASP.NET Core 3框架揭秘] 文件系统[4]:程序集内嵌文件系统

    2.2K30发布于 2019-11-26
  • 来自专栏人人都是极客

    文件系统专栏 | 之文件系统挂载

    ext4文件系统挂载 大家可以使用以下命令挂载一个u盘到 /mnt目录下: mount -t ext4  /dev/sda1 /mnt 其中mount这个应用程序就是使用了mount函数进行系统调用,其系统调用为 fstype)   return -EINVAL;  type = get_fs_type(fstype);//根据文件系统名字查找文件系统类型  if (! (多见于FUSE),设置子文件系统类型名  if (! do_add_mount(real_mount(mnt), path, mnt_flags);  if (err)   mntput(mnt);  return err; } do_new_mount挂载函数首先根据文件系统名字查找文件系统类型 ;2.新文件系统的挂载实例的根inode是一个符号链接,这两种情况返回错误。

    4.2K10编辑于 2022-08-31
  • 来自专栏技术分享

    文件系统

    基本概念 文件系统和文件 文件系统: 一种用于持久性存储的系统抽象 在存储上: 组织,控制,导航,访问和检索数据 在大多数计算机系统包含文件系统 个人电脑,服务器,笔记本电脑 ipod,tivo,机顶盒 ,手机,电脑 google可能也是由一个文件系统构成的 文件: 文件系统中的一个单元的相关数据在操作系统中的抽象 文件系统的功能: 1. 管理文件集合** 定位文件及其内容 命名: 通过名字找到文件的接口 最常见: 分层文件系统 文件系统类型(组织文件的不同方式) 3. 网络,分布式文件系统: 例如: NFS,SMB,AFS,GFS 特殊,虚拟文件系统 网址等 文件可以通过网络被共享 分布式文件系统的问题 第二部分: 虚拟文件系统 分层结果 上层: 虚拟文件系统 底层: 特定文件系统模块 虚拟文件系统的目标 目的: 对所有不同文件系统的抽象 功能: 提供相同的文件和文件系统接口 管理所有文件和文件系统关联的数据结构 高效查询例程,遍历文件系统 与特定文件系统模块的交互

    1.5K21编辑于 2024-05-31
  • 来自专栏linux

    文件系统

    1.文件系统概览 文件系统本质就是磁盘和用户进程之间的中介 1.1.文件系统的作用 数据存储和组织:文件系统将存储设备划分成文件和目录,使得用户进程更易使用,实际还是存储到存储设备的磁盘块 数据命名和定位 : 允许用户对文件进行命名,可通过不同文件系统的inode进行文件定位 数据持久化:会将数据持久化到磁盘 数据共享和包含:文件系统提供了文件权限机制,可以控制不同用户对文件的权限类型不同,比如rwx-wxr ,然后被格式化为具体的文件类型,比如ext4 结构: 超级块:记录整个文件系统实例的元数据(大小,数量,空闲块数量等) inode表:记录文件和目录的元数据 数据块:实际存储文件内容的地方 2.常用文件系统 RPC 主要作用 实现文件级别的共享,类似于共享网盘 3.文件系统使用 3.1 创建分区 (在存储设备上创建可容纳文件系统的分区) 创建分区工具 fdisk : 任意存储设备上创建和管理分区,最大处理2TB (数据存储到分区之前,必须用文件系统对其进行格式化) 文件系统工具 3.3 将分区挂载到虚拟目录 4.逻辑卷(logic volumn manager LVM) 4.1 解决问题 在线、动态地调整大小

    46110编辑于 2025-11-06
  • 来自专栏python知识

    文件系统

    home - 用户主目录的父目录 /lib - 共享库文件 /lib64 - 共享64位库文件 /lost+found - 存放未链接文件 /media - 自动识别设备的挂载目录 /mnt - 临时挂载文件系统的挂载点 opt - 可选插件软件包安装位置 /proc - 内核和进程信息 /root - root账户主目录 /run - 存放系统运行时需要的东西 /sbin - 超级用户的二进制文件 /sys - 设备的伪文件系统 磁盘管理 列出文件系统的磁盘使用状况 - df。 磁盘分区表操作 - fdisk。 格式化文件系统 - mkfs。 文件系统检查 - fsck。 挂载/卸载 - mount / umount。

    1.3K30发布于 2021-05-20
  • 来自专栏codechild

    文件系统

    文件系统的了解阶段 当文件没有打开的时候,那么文件存储在磁盘之中。 扇区就是磁盘的基本单位 虽然磁盘的基本单位是扇区(512字节),但是比较小,而且有可能不同的生产商给出的扇区的大小可能本不一样,所以操作系统(文件系统)和磁盘进行I/O操作的基本单位的块 块是对磁盘存储和访问的抽象 块通常由下面几个部分构成: Block Group:ext2文件系统根据分区的大小划分为数个快组BlockGroup。 ,且每一个BlockGroup都有着相同的结构 Block Group分为: 超级块:存放文件系统本身的结构信息。

    1.1K20编辑于 2023-05-30
  • 【Linux文件系统】Linux文件系统与设备驱动

    其实这背后藏着 Linux 最精妙的设计之一 —— 文件系统与设备驱动的协同工作。 VFS的职责:它定义了一套所有文件系统都必须支持的通用接口和数据结构(就像一个标准的工作流程模板)。 无论是本地的Ext4、NTFS,还是网络文件系统NFS,甚至是设备驱动的“伪文件系统”,只要它们按照VFS的“模板”实现一套自己的操作方式,就能接入VFS。 对下,它管理着所有不同类型的真实文件系统和设备驱动。应用程序发出的文件操作请求,先到达VFS,再由VFS根据文件类型,转发给对应的“下属”(比如Ext4文件系统或设备驱动)去具体执行。 七、关键概念图 Linux文件系统与设备驱动协作 ├── 核心纽带:VFS(虚拟文件系统) │ ├── 作用:统一接口,屏蔽差异 │ ├── 对接对象:文件系统、设备驱动、用户程序 │ └─

    37010编辑于 2026-01-21
  • 来自专栏程序员的园——原创文章

    文件系统操作

    作为一名QT开发工程师,对于QT的文件系统操作的便利性推崇备至,但在非QT程序中仅仅因为操作文件系统而集成QT库显得过于繁重。 C++17引入了std::filesystem,使得文件系统操作变得前所未有的便捷和高效。 同时,文件系统操作的相应功能是在std中的filesystem命名空间内,所以在包含头文件<filesystem>的基础上,还要注意使用命名空间。 filesystem_error& ex) { std::cerr << "Exception caught (" << ex.what() << ")\n"; } 结语 std::filesystem不仅极大地简化了文件系统的操作

    77510编辑于 2024-07-18
  • 来自专栏Netkiller

    Glusterfs 文件系统

    success # gluster volume info Volume Name: testvol Type: Replicate Volume ID: cd4cdf2f-178b-4160-9ee9 success # gluster volume info Volume Name: testvol Type: Replicate Volume ID: cd4cdf2f-178b-4160-9ee9

    1.3K100发布于 2018-03-05
  • 来自专栏原创分享

    文件系统杂谈

    文件系统中重要的概念有大概有超级块、inode、file、文件描述符、文件缓存系统、目录。下面我们逐个说一下。 文件系统的概念: 1.超级块 超级块是负责管理整个文件系统,他记录了文件系统的元数据。 从数据结构中我们可以看到他记录了文件系统的inode数量、文件系统在硬盘中占据的扇区数、inode位图、数据块位图、文件系统在硬盘中第一块的块号、该文件系统中文件大小的最大值。 文件系统的数据结构 文件系统的本质是利用一些策略对一块存储进行管理。所以我们首先需要了解文件系统的数据结构。 ; // 文件入度,即有多少个目录指向他 unsigned char i_nlinks; // 存储文件内容对应的硬盘块号 unsigned short i_zone[9] unsigned long i_mtime; unsigned char i_gid; unsigned char i_nlinks; unsigned short i_zone[9]

    1.9K32发布于 2020-02-25
  • 来自专栏linux驱动个人学习

    squashfs文件系统

    一、Squashfs文件系统简介  squashfs是以linux 内核源码补丁的形式发布,附带mksquashfs工具,用于创建squash文件系统。 squashfs可以将整个文件系统或者某个单一的目录压缩在一起, 存放在某个设备, 某个分区或者普通的文件中. · 支持多达4G的文件系统. (cramfs是16M)。 SQ可以将文件系统MOUNT到不同的字节顺序(byte-order)的机器上面。   文件系统到一个临时目录.   5.如果需要的话,更改/etc/fstab 或者起始脚本, 以使linux操作系统自动加载新的 squashfs 文件系统.  

    5.4K70发布于 2018-03-07
  • 来自专栏玖叁叁

    linux文件系统

    Linux是一个基于Unix的操作系统,具有强大的文件系统功能。Linux文件系统是在硬盘上组织和存储数据的一种结构,通过文件系统可以管理文件、目录、权限等信息。 在Linux中,文件系统被组织成一个树形结构,称为文件系统层次结构(Filesystem Hierarchy Standard,FHS),该标准规定了Linux操作系统中各级目录的名称和用途,使得Linux 文件系统具有统一性和规范性。 /proc /proc目录是Linux系统中一个特殊的目录,用于提供进程和系统信息的虚拟文件系统。 /mnt /mnt目录是Linux系统中用于挂载文件系统的目录,通过挂载可以将其他文件系统的内容挂载到/mnt目录下,使得这些文件系统可以被访问。

    13.5K00编辑于 2023-04-08
  • 来自专栏就业 C++ 综合学习

    【Linux】文件系统

    今天我们来了解如何管理磁盘文件 — 文件系统。 2 物理磁盘 我们首先来了解物理磁盘是什么样子的: 通常由金属外壳、控制电路板和接口组成。硬盘内部有盘片、磁头和悬臂等部件,用于存储和读取数据。 (如何管理磁盘文件) 5.1 了解文件系统 有了上面的线性大地址,我们就可以开始构建出文件系统了。 在每个分区内部分组,然后写入文件系统的管理数据,称之为格式化!!! Linux 文件系统特定: 文件属性 与 文件内容 分开存储。 接下来我们来研究文件系统: 每个组里有这些部分: Block Group(占据空间最大的一部分):每个Block Group都有着相同的结构组成。 Super Block的信息被破坏,可以说整个文件系统结构就被破坏了,超级块不是每个分区都有的,但是超级块也会有多个,内容也保持一致,防止数据丢失,提高系统健壮性。

    7.2K10编辑于 2024-05-03
领券