我正在寻找文件的正式定义,该定义不仅包括存储,还包括与存储无关的抽象,例如procfs或/ dev / null(或任何基于保险丝的文件)。
到目前为止,我知道所有文件都是抽象的
- 可以识别
- 可以具有名称(通常按层次结构组织)
- 可以作为字节流访问
- 通常提供权限和其他(系统特定的)元数据
但是到目前为止,我在任何OS书籍中都找不到有用的正式定义。
您是否研究过inode?
—
Bhaskar
我认为/ dev / null之类的东西根本不是文件,而是黑客,它使我们能够像对待文件一样访问非文件内容。另外,我不清楚您所说的“正式”是什么意思。在什么形式主义内?
—
David Richerby '16
“文件是可以用fopen打开的文件”吗?
—
adrianN '16
@DavidRicherby行为完全类似于文件的任何软件抽象都是文件:我们只能根据软件行为来定义软件实体。至于形式主义,我正在从CS的角度寻找严谨的东西。例如,我们有针对图灵机的正式定义。
—
Giacomo Tesio '16
不同的操作系统将不同的操作分配给文件,例如* nix vs Windows。可以尝试找到一个共同点,但这并不精确。此外,在CS中很少有人谈论文件-我认为只有在设计OS,文件系统(也许是DBMS)或某些磁盘算法(例如排序合并)时才能完成。(和其他一些)
—
2016年