1.1 前情回顾
1.2 文件的属性
文件名:文件的名称,用于标识文件。通常包括文件扩展名,如 .txt
、.docx
等。
文件路径:文件在文件系统中的位置,表示为一个路径。绝对路径是从根目录开始的完整路径,例如 /home/user/document.txt
。
文件大小:文件占用的存储空间大小,通常以字节为单位。
文件类型:指文件的类型,如文本文件、二进制文件、图像文件、可执行文件等,通常通过文件扩展名识别。
创建时间:文件最初被创建的时间戳。
修改时间:文件最后一次被修改的时间戳。
访问时间:文件最后一次被读取的时间戳。
文件权限:定义了哪些用户或用户组可以读取、写入或执行该文件。例如在 Linux 系统中,权限通常用 rwx
(读、写、执行) 表示。
文件所有者:文件的所属用户和用户组信息,决定了谁拥有该文件及其权限设置。
隐藏属性:某些文件可以设置为隐藏文件,使其在常规文件列表中不显示。
只读属性:文件可以被设置为只读,防止修改或删除。
符号链接或硬链接(在一些操作系统中):可以指向文件或文件夹的快捷方式,符号链接是指向文件路径的引用,硬链接是指向文件的物理数据。
1.3 文件内部数据的组织方式
无结构文件
指文件内部的数据没有特定的组织方式或格式规范,通常也被称为非结构化文件。这类文件包含的数据没有固定的格式或严格的逻辑关系,数据通常以*形式存在,因此解析和处理它们需要依赖外部的规则或人类理解。
有结构文件
指内部数据按照预定义的格式或规则进行组织和存储的文件。这类文件具有固定的数据模式,文件中的数据可以根据某种结构轻松解析、读写和查询。通常,它们用于存储和传输结构化信息,如表格、数据库记录或配置参数。
1.4 操作系统向上提供的文件功能
文件创建与删除
- 创建文件:操作系统提供创建新文件的功能,允许用户或应用程序在文件系统中生成空文件以存储数据。
- 删除文件:提供删除已有文件的功能,以释放存储空间。
文件读写
- 读取文件:允许用户或程序从文件中读取数据,通常通过打开文件后按需读取内容。
- 写入文件:支持向文件中写入数据,修改文件内容或将新数据存储到文件中。
文件打开与关闭
- 打开文件:在对文件进行读写之前,操作系统需要提供打开文件的功能,建立文件的操作上下文。
- 关闭文件:在文件操作完成后,必须关闭文件,释放相关的系统资源。
文件定位(文件指针管理)
- 文件定位(seek):支持移动文件的读写指针,允许程序从文件的任意位置读取或写入数据,而不仅仅是从头开始。
文件属性管理
- 查看文件信息:提供基本的文件属性查询功能,比如文件大小、创建时间、修改时间、权限等。
- 修改文件属性:支持更改文件的元数据,如修改权限、时间戳等。
权限与安全控制
- 文件权限管理:操作系统提供基本的权限控制,决定哪些用户或进程可以读取、写入或执行某个文件。
这些功能构成了文件管理的基本接口,是操作系统与应用程序或用户交互的最基础层,确保文件可以被有效地创建、存取和管理。
文件共享
指多个用户或进程通过操作系统提供的机制访问和使用同一个文件。操作系统支持的文件共享功能通常包括权限管理、文件锁定、多用户访问、以及网络文件共享。
文件保护
用于确保文件的安全性和完整性,防止未经授权的访问、修改、或破坏。文件保护功能通过权限管理、加密、备份、文件锁定等技术实现。
1.5 文件应如何放在外存
与内存一样,外存也是由一个个存储单元组成,每一个存储单元可以存储一定量的数据(比如1B)。每个存储单元对应一个物理地址。
类似于内存分为一个个“内存块”,外存会分为一个个“块/磁盘块/物理块”。每个磁盘块的大小是相等的,每块一般包含2的整数幂个地址(如本例中,一块包含210个地址,即1KB)。同样类似的是,文件的逻辑地址也可以分为(逻辑块号,块内地址),操作系统同样需将逻辑地址转换为外存的物理地址(物理块号,块内地址)的形式。块内地址的位数取决于磁盘块的大小。
操作系统以”块”为单位为文件分配存储空间,因此即使一个文件大小只有10B,但它依然需要占用 1KB 的磁盘块。外存中的数据读入内存时同样以块为单位。