FileOrientedProgramming 2018 程序啪啪啪
FileOrientedProgramming
涉及API
- path
- filepath
- io
- filesystem API
- http://en.wikipedia.org/wiki/File_system_API
Linux API
- http://book.douban.com/subject/1241402/
- 整体层次
- RAID
- LVM
- Linux VFS
- FileSystem
- ext2
- JFS
- ReiserFS
- XFS
- 主要功能
- 创建与删除文件
- 分配和取消存储媒体上的空间
- 资源的管理
- Read/Write
- Search
- Close
- mkdir
- ls dir
- rm file from dir
- 创建与删除文件
- 为性能而生的缓冲区
- 文件系统中的对象与API
- 文件
- struct fown_stuct
- struct file
- API
- llseek
- read
- write
- readdir
- poll
- ioctl
- mmap
- open
- flush
- release
- fsync
- fasync
- check_media_change
- revalidate
- lock
- 信息节点
- struct inode
- API
- default_file_ops
- create
- lookup
- link
- unlink
- symlink
- mkdir
- rmdir
- mknod
- rename
- readlink
- follow_link
- get_block
- readpage
- writepage
- flushpage
- 文件系统
- struct file_system_type
- API
- register_filesystem
- unregister_filesystem
- 名称/dentry
- struct qstr
- struct dentry
- API
- d_revalidate
- d_hash
- d_compare
- d_delete
- d_release
- d_iput
- 文件
- 主要的性能问题
- 目标
- 减少基本设备上的IO数量
- 将小型IO组合成大型IO
- 优化搜索模式, 减少等待磁盘搜索所花的时间
- 缓存尽可能多的数据, 以减少物理IO
- 事务体系
- 记录事务的开始
- 在更改数据之前记录将要更改的数据
- 从存储库中访问数据库记录
- 对数据的不同操作
- 在更改数据之后记录已经做了更改的数据
- 记录事务的结束
- 目标
tags: DesignPattern IO
FileSystem
- http://en.wikipedia.org/wiki/File_system
- 文件系统涉及的主要方面
- 存储空间管理
- 文件名称管理
- 目录管理
- META元数据管理
- 文件数据
- UI
- 基础工具
- 权限管理
- permission
- 数据完整可信
- 数据持久化与一致性
- operation log
- 错误修复
- 多文件系统共存
- 支持硬盘分区
- FS API
- 设计限制/规格
- 例如:最大文件大小,maxfilenamelength
- 主要的类型
- Disk
- 有日志文件系统,版本文件系统
- 光盘
- Flash
- 磁带
- 数据库
- 事务文件系统
- 网络文件系统
- SMB
- NFS
- AFS
- FTP
- 共享磁盘文件系统
- 特殊文件系统
- 设备文件系统
- Disk
Archive
- zip/tar/7z等文件多
- 部分保存了文件系统的元数据信息
- filepath/name
- rsync实现的复杂
- 由于文件系统的差异性, 在进行sync时, 需要有足够的说明
- soft link
- devices
- file permission
- owner/group
- 隐藏文件的处理
- ruby默认不同步hidden file
- 由于文件系统的差异性, 在进行sync时, 需要有足够的说明
泛化价值
- 由于系统体系结构的抽象
- 利用面对文件的编程扩展到面向IPC/信息通信与存储的基本方式上
- 所有针对通信/信息存储的方式均与文件API类似(数据库系统除外)
- 主要关注点
- 一般API接口
- 性能提升方法
- NIO
- 同步与异步
- 缓存
- 编程注意点
- https://en.wikipedia.org/wiki/Comparison_of_file_systems
- 存在性
- 父文件夹不存在, 文件无法创建
- 具体限制点
- 文件名长度与格式
- 文件全路径长度与格式
- 单个文件大小
- 单个分区大小
- 元数据
- NTFS/fat文件系统不支持
- soft link
- file permission
- owner/group
- Owner
- Permission
- file mode POSIX
- access control
- timestamp
- Access
- Create
- Modify
- NTFS/fat文件系统不支持
- 功能性
- link
- Hard
- soft
- 日志
- meta
- data
- 大小写
- 加密
- link
- 特殊点
- softlink
- hidden file
文章目录 |
创建@
2014-09-19
最后修改@
2015-09-08