Home Understand vfs in linux
Post
Cancel

Understand vfs in linux

前言

POSIX File System

POSIX 想必所有写过代码的人都很熟悉,就是 IEEE 定义的一套标准,用于定义操作系统的编程接口,从而使得不同的操作系统能够兼容同一套代码。

mount

一直以来 linux 中使用的 mount 系统调用都是旧的版本:

  • mount: sys_mount
  • umount2: sys_umount

在2018年的LSFMM大会上 Al Viro 等人提出了新 mount 系统调用的想法。

fsopen: sys_fsopen

fsmount: sys_fsmount

fsconfig: sys_fsconfig

move_mount: sys_move_mount

mount_setattr: sys_mount_setattr

可以用 glibc 提供的 syscall 函数来调用新的系统调用:

files

  • open: sys_open -> do_sys_open -> do_sys_openat2 -> do_filp_open -> path_openat -> link_path_walk -> walk_component ->
    • lookup_slow
    • step_into -> handle_mounts -> traverse_mounts
This post is licensed under CC BY 4.0 by the author.

Build a filesystem from scratch

-