当前位置:网站首页>二十六、文件系统API(设备在应用间的共享;目录和文件API)
二十六、文件系统API(设备在应用间的共享;目录和文件API)
2022-07-05 05:21:00 【[T]】
一、设备咱应用程序之间的共享
终端
1、多个进程并行打印,如何保证不混乱
2、多个进程并行读,就会发生竞争
GPU(CUDA)
1、每个CUDA应用程序都是一系列CUDA的API调用
2、全部有驱动实现调度(隔离)
磁盘需要支持数据的持久化
1、应用程序的数据
(1)可执行文件和动态链接库
2、用户数据
3、系统数据
(1)manpage
(2)系统配置
二、文件系统:虚拟磁盘
目标:
1、提供合理的API使得多个应用程序能共享数据
2、提供一定的隔离,使得恶意/错误不会大量奔溃
存储设备(字节序列)的虚拟化
1、磁盘(I/O设备)=一个可以读写的字节序列
2、虚拟磁盘(文件)=一个可以读写动态字节序列
(1)命名管理
虚拟磁盘的名称,检索和便利
(2)数归管理
随机访问(读写)
三、虚拟磁盘:命令管理
信息的局部性:将虚拟磁盘(文件)组织成层次结构
1、目录树
目录的根
1、Windows
C:\Program Files\
D:\User
2、Unix/Linux
(1)只有一个根目录
/home/xxx
3、目录树的拼接
Unix:允许任意目录”挂载“一个设备代表的目录树
(1)可以将把设备挂载在任何位置
mount系统调用
int mount(const char *source, const char *target,
const char *filesystemtype, unsigned long mountflags,
const void *data);mount /dev/sdb /mnt
umount mnt
四、Linux的启动流程
Linux-minimal运行在‘initramfs’模式
1、Linux-minimal启动流程
export PATH=/bin
busybox mknod /dev/sda b 8 0
busybox mkdir -p /newroot
busybox mount -t ext2 /dev/sda /newroot #将/dev/sda设备挂载在/newroot
exec busybox switch_root /newroot/ /etc/init2、文件的挂载
文件 = 磁盘上的虚拟磁盘
挂载文件 = 在虚拟磁盘上虚拟出的虚拟磁盘
(1)Linux的处理方式
创建一个loopback(回环)设备
设备驱动把设备的read/write翻译成文件的read/write
使用lsblk查看系统中的block devices(strace)
strace查看挂载的流程
ioctl(3, LOOP_CTL_GET_FREE)
ioctl(4, LOOP_SET_FD, 3)五、目录管理
1、mkdir
(1)创建一个目录
(2)可以设置权限
2、rmdir
(1)删除一个空目录
(2)没有”递归删除“的系统调用
rm -rf 遍历删除
六、硬链接
需求:同一个运行库有多个版本
使用一个链接可以避免一份拷贝
七、软链接
软链接:在文件里存储一个跳转提示
1、软链接也是一个文件
(1)当引用这文件时,去找另一个文件
(2)可以跨文件系统,可以链接目录
边栏推荐
猜你喜欢

Remote upgrade afraid of cutting beard? Explain FOTA safety upgrade in detail

Ue4/ue5 illusory engine, material part (III), material optimization at different distances
![[trans]: spécification osgi](/img/54/d73a8d3e375dfe430c2eca39617b9c.png)
[trans]: spécification osgi
![[speed pointer] 142 circular linked list II](/img/f8/222a360c01d8ef120b61bdd2025044.jpg)
[speed pointer] 142 circular linked list II

sync.Mutex源码解读

Gbase database helps the development of digital finance in the Bay Area

Web APIs DOM node

嵌入式数据库开发编程(六)——C API

Pointnet++学习

远程升级怕截胡?详解FOTA安全升级
随机推荐
Embedded database development programming (zero)
利用HashMap实现简单缓存
How can the Solon framework easily obtain the response time of each request?
Zheng Qing 21 ACM is fun. (3) part of the problem solution and summary
Learning notes of "hands on learning in depth"
[depth first search] 695 Maximum area of the island
2022 / 7 / 1 Résumé de l'étude
A new micro ORM open source framework
远程升级怕截胡?详解FOTA安全升级
Transport connection management of TCP
UE fantasy engine, project structure
小程序直播+电商,想做新零售电商就用它吧!
Data is stored in the form of table
What is the agile proportion of PMP Exam? Dispel doubts
win10虚拟机集群优化方案
2022上半年全国教师资格证下
[paper notes] multi goal reinforcement learning: challenging robotics environments and request for research
Quick sort summary
cocos2dx_ Lua card flip
Do a small pressure test with JMeter tool