当前位置:网站首页>二十六、文件系统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/init
2、文件的挂载
文件 = 磁盘上的虚拟磁盘
挂载文件 = 在虚拟磁盘上虚拟出的虚拟磁盘
(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)可以跨文件系统,可以链接目录
边栏推荐
- 2022上半年全国教师资格证下
- Vs2015 secret key
- [转]:Apache Felix Framework配置属性
- [to be continued] [UE4 notes] L2 interface introduction
- [轉]: OSGI規範 深入淺出
- [to be continued] I believe that everyone has the right to choose their own way of life - written in front of the art column
- Haut OJ 1243: simple mathematical problems
- Add level control and logger level control of Solon logging plug-in
- 小程序直播+电商,想做新零售电商就用它吧!
- Shell Sort
猜你喜欢
[trans]: spécification osgi
Count sort
Download and use of font icons
Django reports an error when connecting to the database. What is the reason
Unity ugui source code graphic
[to be continued] [depth first search] 547 Number of provinces
Web APIs DOM node
小程序直播+电商,想做新零售电商就用它吧!
[to be continued] [UE4 notes] L2 interface introduction
2022/7/2 question summary
随机推荐
[interval problem] 435 Non overlapping interval
远程升级怕截胡?详解FOTA安全升级
Use of snippets in vscode (code template)
What is the agile proportion of PMP Exam? Dispel doubts
Zheng Qing 21 ACM is fun. (3) part of the problem solution and summary
2022/7/1 learning summary
BUUCTF MISC
On-off and on-off of quality system construction
UE fantasy engine, project structure
Three dimensional dice realize 3D cool rotation effect (with complete source code) (with animation code)
[turn]: Apache Felix framework configuration properties
Introduction to memory layout of FVP and Juno platforms
Quick sort summary
PMP考生,请查收7月PMP考试注意事项
win下一键生成当日的时间戳文件
Count sort
Use the command character to close the keyboard command of the notebook
2022上半年全国教师资格证下
C语言杂谈1
Haut OJ 1347: addition of choice -- high progress addition