当前位置:网站首页>26、 File system API (device sharing between applications; directory and file API)

26、 File system API (device sharing between applications; directory and file API)

2022-07-05 05:23:00 [T]

One 、 Sharing between devices and Applications

terminal

1、 Multiple processes print in parallel , How to ensure no confusion

2、 Multiple processes read in parallel , There will be competition

GPU(CUDA)

1、 Every CUDA Applications are a series CUDA Of API call

2、 All drivers realize scheduling ( Isolation )

Disks need to support data persistence

1、 Application data

(1) Executable files and dynamic link libraries

2、 User data

3、 system data

(1)manpage

(2) The system configuration

Two 、 file system : Virtual disk

The goal is :

1、 Provide reasonable API Enable multiple applications to share data

2、 Provide some isolation , Make malicious / Mistakes don't run away in large numbers

The storage device ( Byte sequence ) Virtualization of

1、 disk (I/O equipment )= A sequence of bytes that can be read and written

2、 Virtual disk ( file )= A dynamic byte sequence that can be read and written

(1) Name Management

        The name of the virtual disk , Retrieval and convenience

(2) Data management

        Random access ( Reading and writing )

3、 ... and 、 Virtual disk : Command management

Locality of information : Set the virtual disk ( file ) Organized into a hierarchy

1、 Directory tree

Root of directory

1、Windows

C:\Program Files\

D:\User

2、Unix/Linux

(1) There is only one root

/home/xxx

3、 Splicing of directory tree

Unix: Allow any directory ” mount “ A directory tree represented by a device

(1) You can mount the device anywhere

mount system call 
int mount(const char *source, const char *target,
          const char *filesystemtype, unsigned long mountflags,
          const void *data);

mount /dev/sdb /mnt

umount mnt

Four 、Linux Startup process

Linux-minimal Running on the ‘initramfs’ Pattern

1、Linux-minimal Start process

export PATH=/bin
busybox mknod /dev/sda b 8 0
busybox mkdir -p /newroot
busybox mount -t ext2 /dev/sda /newroot    # take /dev/sda The device is mounted on /newroot
exec busybox switch_root /newroot/ /etc/init

2、 File mount

file = Virtual disk on disk

Mount the file = Virtual disk created on virtual disk

(1)Linux Treatment mode

        Create a loopback( Loop ) equipment

        The device driver drives the device read/write Translated into documents read/write

        Use lsblk Check... In the system block devices(strace)

        strace View the process of mounting

ioctl(3, LOOP_CTL_GET_FREE)
ioctl(4, LOOP_SET_FD, 3)

5、 ... and 、 Directory management

1、mkdir

(1) Create a directory

(2) You can set permissions

2、rmdir

(1) Delete an empty directory

(2) No, ” Recursive delete “ System call

        rm -rf Traverse delete

6、 ... and 、 Hard links

demand : There are multiple versions of the same runtime

Using a link can avoid a copy

7、 ... and 、 Soft link

Soft link : Store a jump prompt in the file

1、 Soft link is also a file

(1) When referencing this document , Find another file

(2) Can cross file systems , You can link to a directory

原网站

版权声明
本文为[[T]]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050521296060.html