文件命名
我们如何命名欲访问的文件呢?通常来说,我们给出一个符号名,也就是文件名以便于访问一个文件。这个文件名既可以是英语名、中文名,也可以是图像名(图标)。例如"file"、“文件1”等都是合法的文件名。
当用户给出一个文件名,操作系统就可以根据这个名字找到对应文件的内容具体来说,就是找到该文件存放在磁盘上的所有数据块。操作系统如何在磁盘上找到所有这些数据块呢?很简单,将该文件名翻译成其数据块在磁盘上存放的地址。由于磁盘的寻址单位是扇面,而这些磁盘地址实际上就是一个个的扇面号。由于一个文件可能占用多个扇面,因此文件在磁盘上的地址通常有多个。根据文件在磁盘上的组织方式不同,这种从名字到磁盘地址的翻译将有所不同
。
命名规则则因文件系统的不同而不同。一个文件名通常有2~8个字符,但也可以长达255个符号。早期的操作系统通常将文件名长度限制在8个字符之内,并且只能使用字符集合的一部分作为文件名的构成。
例如,空白符在过去不能出现在文件名内。现代的操作系统则允许文件名长度达到255个字符,且允许使用的字符集合也扩大了许多。一个文件名到底可以使用何种字符因操作系统不同而不同。读者可参阅具体操作系统的使用手册。
扩展名
除了正式名字外,它们还可以有扩展名。扩展名通常用来表明文件的类型,如文本文件、二进制文件等。例如file.c表明该文件是一个c源文件;file2.cpp表明该文件是一个C++源文件;file3.exe表明该文件是一个可执行文件。
这里需要注意的是,扩展名对文件类别的指示仅仅是指示性的,并不具有强制性。例如,在UNIX操作系统下,扩展名仅仅用于提醒用户,系统并不遵守。即只要一个文件是可执行文件,即使其扩展名不是.exe,该文件也能在UNIX下执行。
但有些系统对扩展名进行了强制服从,即扩展名必须和文件类型相同,否则无法使用。例如Windows,如果一个文件的扩展名不是.bat、.exe、.com,则该程序无法执行,即使该文件确确实实是一个可执行文件。
总结
- 操作系统将文件名翻译为磁盘地址
ps - 如何翻译?