-
Notifications
You must be signed in to change notification settings - Fork 1
/
Important
43 lines (32 loc) · 2.19 KB
/
Important
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
FUSE - File System in users - A library to create in python or in c++,c
can create different types of file system, - SSHFS,gitFS,GoogleDriveFileSyste,mySQLFS,fuse-zip,rarfs,gmailFS,ntfs-3g and many more
architecture of fuse - diagram how they interext with kernel,
https://www.youtube.com/watch?v=C2FuPxyip2A&t=689s - video for understanding
practise code up for simple dirctory structure
create runnable code,
list commands to execute
list system calls used in these,
does this supports asynchrnous i/o?
yes, it supports in c.. python also does as this is binding to c
does this have any limit??
no it doesn't have, however it has for i/o block size whic can be made upto 32KB.
goto the folder where gfs.py is located
command to run - "python3 gfs.py mpoint/"
questions - why getattr & access gets called three times??
for group,user & other gid-4,uid-2,other-1
basically it fetches files for differnt priviledged user.
Basically its filesystem, which is intended to provide access via familiar posix calls to files which are actually
stored behind a resftul api(like Google Drive API).The filesystem caches files once they've been retrieved for the first time
so that they are more readily available next time.
stackoverflow good questions?
should getattr always need to serialised?
https://stackoverflow.com/questions/18471238/should-the-fuse-getattr-operation-always-be-serialised
(in short explanation - yes getattr needs to be serialised since lookup in same directory is in serial manner)
see architcture of FUSE.----------------
basically whatever we type (commands) goes into kernel space of VFS(virtual file system) , FUSE interacts with these VFS
and then FUSE provides interface to implement its own ls or other functionalities(function in FUSE class), and then these
functions are executed which again pass its result to FUSE which to VFS and then VFS to user.
FUSE defination -
Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer
operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved
by running file system code in user space while the FUSE module provides only a "bridge" to the actual kernel interfaces.