添加一个加密文件系统.PPTVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 实验4:添加一个加密文件系统 主讲教师:夏莹杰 xiayingjie@ Linux目录树 etc home mnt include dev usr lib lsp proc dos 为什么需要VFS 为什么需要VFS VFS是软件, 是一个用来管理多个实际文件系统的软件 比如linux系统下有两个实际的文件系统, 一个fat32类型磁盘A , 一个ext3类型磁盘B, 如果我要将A上的一个文件1.txt拷贝到B中去,我只需要在中端敲击命令 cp path1/1.txt path2 根据path1找到对应的1.txt文件标识(inode 1) 调用inode 1对应的拷贝函数(此拷贝函数对应的是fat32类型的),将磁盘中的1.txt内容读入高速缓存中 根据path2找到对应目的地的inode 2 调用inode 2对应的拷贝函数(此拷贝函数对应的是ext3类型的),将高速缓存中1.txt内容拷贝到path2指定的目的地 这个过程就是VFS其中的一部分 为什么需要VFS VFS的体系结构 VFS重要数据结构files_struct include/linux/file.h, line 35 struct files_struct { atomic_t count; /*当前共享打开文件表的进程的数目 */ struct fdtable *fdt; /*文件表指针,指向fdtab */ struct fdtable fdtab; /*文件表 */ fd_set close_on_exec_init; fd_set open_fds_init; /*文件对象的初始数组,一开始只有32个,如果有需要,内核会再分配 */ struct file * fd_array[NR_OPEN_DEFAULT]; /* Protects concurrent writers. Nests inside tsk-alloc_lock */ spinlock_t file_lock; }; dentry结构组装目录树 root d_mounted!=0 i_sb mnt_mountpoint mnt_root 下挂文件系统 安装点vfsmount ext2文件系统 支持UNIX所有标准的文件系统特征,包括正文(regular files)、目录、设备文件和连接文件等,这使得它很容易被UNIX程序员接受。事实上,ext2的绝大多数的数据结构和系统调用与经典的UNIX一致 能够管理海量存储介质。支持多达4TB的数据,即一个分区的容量最大可达4TB 支持长文件名,最多可达255个字符,并且可扩展到1012个字符 允许通过文件属性改变内核的行为;目录下的文件继承目录的属性 支持文件系统数据“即时同步”特性,即内存中的数据一旦改变,立即更新硬盘上的数据使之一致 实现了“快速连接”(fast symbolic links)的方式,使得连接文件只需要存放inode的空间 允许用户定制文件系统的数据单元(block)的大小,可以是 1024、2048 或 4096 个字节,使之适应不同环境的要求 使用专用文件记录文件系统的状态和错误信息,供下一次系统启动时决定是否需要检查文件系统 ext2在磁盘空间的体系结构 inode 与文件数据的关系 典型文件操作 open()和close() read()和write() 典型文件操作 面向对象的思想 定义各种函数实现各种操作 以函数指针指向目标操作(函数) 例:ext2_read_inode()挂上ext2_file_operations 里面包含generic_file_read()的操作指针 ext2文件系统的read操作和write操作 见“ext2实现文件操作.doc” do_generic_file_read()才去读page cache generic_file_direct_IO()直接读 实验:添加一个加密文件系统 myext2文件系统的物理格式定义与ext2基本一致,除了myext2的magic number是0x6666,而ext2的magic number是0xEF53 myext2是ext2的定制版本,它只支持原来ext2文件系统的部分操作,以及修改了部分操作 添加加密文件系统操作,包括read_crypt, write_crypt,使其增加对加密数据的读写 下载地址:/xiayingjie 教学与课程

文档评论(0)

suijiazhuang1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档