浅议计算机名词“文件”的定义お

时间:2022-07-07 04:56:42

浅议计算机名词“文件”的定义お

摘要:在“定义”的定义和“操作系统”的定义的基础上,针对“文件”这个计算机学科基本名词,详细分析了其概念内涵,指出了国内外常见教材和词典工具书中相关定义存在的问题,并给出了能揭示概念本质特性的新定义。

关键词:名词,定义,文件,操作系统

中图分类号:N04;TP3文献标识码:A文章编号:1673-8578(2015)06-0037-04

引言

在参考文献[1-2]中,笔者提出了关于“定义”的定义:“A的定义应是能足以用来判断任何一个东西(事物)是A或不是A的判断工具和依据。”或者说,“A的定义一定要能揭示A的唯一性――能把A与非A(这世上所有其他事物)区分开来的唯一性。”所以(达标的)定义一定要明确、清晰、严格到能够作为上述判断工具或区分工具的程度,否则就只能算是解释或描述(或者说定义未达标)。

据此“定义”的定义,笔者在参考文献[1,3]中提出了“计算机操作系统”的定义:“操作系统是计算机中最重要和最底层的系统软件,是这样的一组系统程序的集成:这些系统程序在整个计算机系统和所有用户程序的运行过程中(包括用户程序的装入、启动、运行、结束和退出的完整过程中),负责完成所有硬件相关、应用无关的基本使用工作,为使计算机系统能高效、安全、可靠、方便地运转,而从最底层统一提供所有通用的帮助和统一的管理。”

下面将以上述两个定义为基础来探讨和分析关于计算机“文件”的定义。

一计算机“文件”与日常“文件”的含义是否相同

很多计算机名词都是在计算机领域才开始出现和使用的,例如“内存”和“外存”等。但“文件”属于另一类名词,它在计算机最早出现之前就已经在日常生活和工作的很多领域(如政治、军事、经济、法律等领域)广泛使用多年了,如机密文件、密码文件、遗嘱文件、合同文件等。那么,计算机领域使用的“文件”这个名词(称为“计算机文件”),与日常生活和工作领域使用的“文件”名词(称为“日常文件”),其含义是否完全相同?

曾有计算机专业人员认为二者的含义完全相同,甚至据此提出不应在计算机领域中再将“文件”列为计算机专业术语,更不必在计算机领域对“文件”做出专门的解释和定义。

但有更多的计算机专业人士和笔者观点相同,认为二者的含义并不完全相同,甚至有很大的不同。例如,可以将 100份薄薄的红头政策文件合放在一个计算机文件中,或者将一份厚厚的政策白皮书文件分放在5个计算机文件中(每章一个计算机文件);再例如,日常生活和工作中通常不会将一本小说书或一张唱片称为一份文件,但此书或唱片存入计算机中则作为计算机文件存在。

《辞海》中对文件一词的解释:“1.机关、部队、团体、企业事业单位对外发出的和内部使用的一种书面材料,例如法规文件、行政文件等;2.计算机的一个专用名词(1)指由若干相关的记录构成的集合(2)指磁盘、磁带、纸带或卡片存储的内容。”[4]

正如下文所述,在计算机领域中,计算机文件是有其特定含义和定义的。

二计算机领域常见的“文件”定义

在计算机领域,和“操作系统”一样,文件这个基本名词,也是一个所有人都很熟悉但都不能准确描述的那一类名词。以下是国内外计算机领域常见辞典和教材上给出的“文件”定义:

“文件是同类记录的集合”;

“文件是有组织的数据的集合”等,例如: Organized collection of related data or material in a computer(计算机中相关数据的有组织的集合);

“字符序列”,例如文件是一个具有符号的一组相关联元素的有序序列;

“按名存取”,例如计算机百科全书中的“文件”词条:文件使“用户不再需要了解文件存放的物理位置和物理结构,可实现‘按名存取’,由文件系统根据用户给出的文件名自动地完成数据传输操作,旨在使用方便、安全可靠、便于共享”。

笔者认为,这些定义至少对计算机专业工作者来说或者在计算机专业课程(如操作系统原理课程等)中并不适用,因为它们含糊得让人无从判断与区分(不能用以判断A是或不是文件,不能用以区分文件与非文件,不能揭示文件的唯一性):例如对于“同类记录的集合”定义,比如一个文件f1中有100条记录,那么其中前40条记录形成的子集叫不叫文件?再如100个学生的信息(每个学生的信息是一条记录)分放在两个文件f1和f2中,每个文件放50个记录,那么这100条记录形成的集合叫不叫文件?这两个例子都是“同类记录的集合”。最关键的是,文件作为操作系统提供的一个重要界面机制,上述“同类记录的集合”的定义并没有揭示出这个界面机制的本质。

再例如“按名存取”特性,它确实是文件的一个重要特性,但它不能作为文件的定义,因为有其他数据存取单位也是按名存取的,例如目录也是按名存取的,“按名存取”特性不能把文件与目录等其他按名存取的机制区分开来,按名存取并非文件独家特有的特性,所以“按名存取”不能揭示文件的唯一性。

三关于计算机“文件”的定义

在笔者提出对“文件”所给出的定义之前,先来看一下文件的一些有关的特性:

首先,我们在使用Windows或Linux等操作系统时都知道,可以把一组学生的情况放在一个文件中,一组教师的情况放在另一个文件中,也可以把这两种数据合放在一个文件中,还可以把学生情况分放在两个文件中(比如共1万个学生,前5000个放在一个文件中,后5000个学生放在另一个文件中)。其他很多类型的信息,如软件、信件等也是一样。例如一个软件可能由多个文件组成(即分放在多个文件中),也可能由一个文件组成;一封信可以形成一个文件,也可以由两个文件组成,或反过来两封信也可以放在一个文件中,等等。照此看来,文件的内容划分是非常灵活的,完全由用户根据应用要求来确定。打个比方,文件就像个“容器”――存放数据的“容器”,这“容器”放什么、放多少,是由用户根据需要来灵活决定的。但是,计算机系统中外存上的数据“容器”,并不止文件一种,还有目录、分区、外存介质、记录等,而且这些数据“容器”或数据集合的内容也是可以由用户根据需要灵活决定的,那么文件与外存的上述其他数据“容器”(集合)间有区别吗?有着什么样的区别?是只有量上、规模上的区别,还是有着什么根本的区别?

让我们进一步再来看文件的另一特性:虽然文件内容可以由用户根据需要灵活决定,但是,一旦放在了一个文件里,在下次修改之前,文件中的内容的连续顺序关系就固定了。比如把一封信放在一个文件中之后,到用户再修改该信的内容之前,这封信里的内容,也就是字句之间的前后顺序关系也固定了,甚至哪个地方空几个空格或空行,也都固定了。由此看来,虽然文件的内容可以由用户灵活存放,但在用户对文件内容的两次存放或修改之间,文件中的内容是固定的,具有固定的连续顺序关系。进一步再来看一个例子:如果把1万个学生的情况放在一个文件中,每个学生的情况都占10字节,那么用户在编程顺序读取该文件内容时,每读取下一个学生的情况,都可以通过将文件内当前读写指针顺序后移10字节(有些系统是自动后移的),再读就得到了下一个学生的情况。这就意味着用户认为这1万个学生情况在外存上是连续存放的。而实际上,这1万组数据在外存上的物理存放位置却不一定连续的。

那么外存其他数据“容器”有这种固定的连续顺序关系吗?让我们再通过一个例子来看一下:如果把1万个学生的情况分放在两个文件中,每个文件5000个,那么在取下一学生的情况时,前5000条仍旧移动指针,但在从第5000个到第5001个时,用户却知道这时不能靠移动指针,而是重新打开另一个文件取出第一个,接下来又开始指针移动。这说明用户虽然认为这两个文件各自内部都是连续的,但不认为两个文件间存在连续关系,虽然从第5000个到第5001个在纯逻辑上是连续的。这里要注意,也许有时可以勉强认为放在一个目录里的不同文件间具有顺序关系(根据dir或ls这样的命令显示的顺序关系),但不会在操作上体现出来这两个文件间具有连续关系,因此用户也不会这么认为。

因此,笔者早在1997年和2000年就提出“文件”的定义应是:文件是外存上的一种数据存放单元或单位,是由操作系统提供的、在用户观点中其内容是连续顺序存放的最大逻辑数据空间[3,9]。

或者也可以这样表达:文件是外存上的由操作系统提供的具有以下特性的一种数据容器、数据空间、数据集合、数据存放单元或单位:(1)在用户眼中(亦即在逻辑上),文件的内容是连续顺序的;(2)但实际上在外存物理空间中不一定是连续存放的;(3)比文件更大的容器都不具有上述(1)的连续特性。

对于上述新定义,笔者给出以下强调和解释:

1.对于定义中的“连续顺序特性”,众所周知只是用户观点中的特性,实际上文件在外存即物理存放时并不一定是,而且经常不是连续顺序的(外存物理空间利用率的原因)。因此,文件的连续顺序特性,就起到了掩盖底层物理硬件细节的作用,从而使其上层的软件和用户操作是硬件无关的。这就说明了,文件作为操作系统的一个重要界面机制,恰在“硬件相关、应用无关”与“硬件无关、应用相关”的分界线上。这种固定的连续顺序关系,恰是文件(及其子集“容器”――例如记录)的特有本质。比文件更大的、更上层的容器,例如目录等,都不具有这种连续顺序特性。

2.定义中的“最大”二字,就将文件与记录区分开来:记录虽然具有“连续顺序特性”,但不是“最大的”;文件是用户认为在外存上连续顺序存放数据的最大单位。

3.定义中的“空间”二字,在这里用的是“空间”而不是“集合”。这是因为,严格来说,文件不能说成是一种数据集合,因为通常提到集合的时候,集合中的内容是无序的,而上面的事实却说明文件中的内容是有严格的连续顺序关系(在两次修改之间),所以应该说文件是一种数据空间――一种具有连续顺序特性的数据空间。

4.定义中的“由操作系统提供的”,把文件与操作系统之外的上层应用软件提供的连续顺序空间区别开来。操作系统之外的上层应用软件提供进一步的文件结构(有结构的文件,二维或多维结构文件等,都建立在一维顺序连续空间结构基础上)、文件类型、文件间关系、数据库等,这些都是硬件无关、应用相关的。

5.此定义能否用于非计算机专业的用户和读者,尚需斟酌。以下解释似乎更适用于非计算机专业:“文件是计算机系统中用于在外存上存放数据的一种数据容器或集合、一种数据空间、一种数据存放单元或单位。人们通常把逻辑意义上相对完整或独立的一组数据放在一个文件中,或把格式相同或格式可统一管理的一组数据放在一个文件中。例如,一篇文章是一个文件,一张照片是一个文件,等。”

四结语

上述为在参考文献[1-3]关于“定义”的定义和“操作系统”定义的基础上,探讨和分析了关于文件的定义。

此外,在笔者多年编写的操作系统原理教材各版(参考文献[3,9-14]为其中一部分)和操作系统教学探讨论文中(参考文献[1-2,15]),对内存、虚存、文件子系统、链接、缓冲等大量名词,都在定义达标方面做了大量努力,并在教材各章末尾通过作者提出的“内存四空间模型”等各章总结模型,对这些定义做了系统化的比较、联系、分析、总结。因篇幅所限,在此不一一细述。

笔者学疏识浅,水平有限,上述定义必定有待改进之处,本文旨在抛砖引玉,若有意见、建议或异议,欢迎共同探讨。

参考文献

[1] 孟静,唐志敏. 关于计算机操作系统的定义[J]. 中国科技术语,2014,16(4):35-39.

[2] 孟静. OS教学之我思我做[J].烟台大学学报,2007(20):12-18.

[3] 孟静. 计算机操作系统教程[M]. 北京:中国人民大学出版社,1997.

[4] 辞海[M].上海:上海辞书出版社,1989.

[5] Andrew S. Modern Operating Systems [M].3rd ed. New York: Prentice Hall, 2008.

[6] William S. Operating Systems: Internals and Design Principles [ M ]. 7th ed. New York: Prentice Hall, 2012.

[7] 牛津高阶英汉双解词典[M]. 4版. 北京:商务印书馆,1997.

[8] 计算机科学技术百科全书[M].2版. 北京:清华大学出版社,2005.

[9] 孟静. 操作系统原理教程[M]. 北京:清华大学出版社,2000.

[10] 孟静. 操作系统教程――原理和实例分析[M].2版. 北京:高等教育出版社,2006.

[11] 孟静. 作业系统导论[ M]. 台北: 博硕文化出版公司,2007.

[12] 孟静,唐志敏. 操作系统教程[M]. 北京:人民邮电出版社,2009.

[13] 孟静. 操作系统实验教程[M].北京:高等教育出版社,2002.

[14] 孟静. 操作系统教程――原理和实例分析[M].北京:高等教育出版社,2001.

[15] Meng J. A Reformed Scheme of Teaching Memory Management in Operating System Courses [EB/OL].[2015-09-25] http:///mics_2001/meng.pdf .

上一篇:手机新媒体在高校思想政治教育中的应用 下一篇:基于因子分析的大学本科创新人才培养影响因素...