##前言
本文作者为原苹果工程师 Arno Gourdol,正是他主导了 Mac OS X 系统上 Finder 应用的开发。这篇文章为我们阐述了 .DS_Store 文件的由来,是个很不错的计算机历史小文章。原文链接:http://arno.org/arnotify/2006/10/on-the-origins-of-ds_store/。
##译文
如果你是一个 Mac 用户,或者你曾经从 Mac 向 Windows 传输过文件,你可能会对一个名为 .DS_Store
的文件很熟悉。但这个名字是从何而来呢?
时间回到 1999 年,我在苹果公司担任 Mac OS X 系统内 Finder 应用的技术主管。在那时,Finder 的代码已有 8 年的历史,代码已经很难以维护。做任何改变都需要做大量的工作,而且常常会影响到两三个看似跟它无关的功能。所以在 Mac OS X 上我们决定,从设计开始,重写 Finder。
涉及到的工作之一,便是分离用户界面和核心功能,也就是后台代码。Finder 的后台会穷举文件、监视文件系统变化、处理元数据,包括图标的位置和文件夹设置。在内部,这两个部分被我们称作 Finder_FE 和 Finder_BE(Frontend 和 Backend)。
但是,没过多久我们就意识到,Finder 以外的应用也很可能需要调用 Finder 后台的功能。所以我们计划在将来某一天,让它成为一个公共的 API。由于我之前曾负责命名了 Icon Services 和 Navigation Services,所以我们决定把它命名为 Desktop Services(在那时,我们还曾考虑过把 Finder 改名为 “Desktop”)。因此,.DS_Store
这个名字,就是 “Desktop Services Store”(桌面服务存储) 的意思。我们在文件名之前添加了一个句点,以保证在 Unix 操作系统上,包括 Mac OS 上,被识别为一个隐藏文件。
个人认为这并不是一个好的名字,我曾希望找到一个描述性更好的名字,但已经太晚了 :)
另外,还有一个至今仍未被修复的 bug,会导致过度创建 .DS_Store
文件。仅当用户更改了视图设置或改变了目录内图标的位置时,这些文件才应创建。可惜的是,事情并没有如此发生,而是当某个目录被访问时,.DS_Store
文件就会被创建。
另外,Finder_BE,也就是 Desktop Services,不再只被 Finder 调用:Navigation Services(打开/保存对话框)现在也会调用它,在 Mac OS 的最初版本中并不是这样的。但现在,Desktop Services 的 API 依然没有完全开放出来。