与NFS类似的Linux文件path相对应的基础协议/标准是什么“Windows文件path”?

这可能是一个措辞很差的问题,但这个问题的分类是我正在寻找的(不幸的是在这一点上我不能帮助它)。

这是我的问题。

我们不会四处调用Centos“Centos文件path”的文件系统表示,同样我们也不会在Ubuntu“Ubuntu文件path”甚至“Linux文件path”中调用文件系统 – 我通常会将这些称为“ NFSpath(不pipe这是否正确)。

我听说Windows用户将文件系统表示(带有盘符)称为“Windows文件path”。 所以我想我问“什么是Windows文件path”? 我的意思是pipe理Windows文件path的底层概念和协议是什么。

为了进一步明确,这里是一些例子。 据我的理解,我所说的NFSpath(无论是正确还是不正确)如下所示:

的/ etc /一些-其他-DIR

每个级别/目录除以/

我的“Windowspath”的天真分类看起来像这样:

C:\一些-DIR \一些孩子-DIR

所以在默认情况下,当我跳到我使用的各种Linux变体(Centos,Ubuntu)之一时,通常将其称为NFSpath。 当我跳到Windows时,我称之为“Windowspath”。 我意识到有可能pipe理这个文件系统映射的协议和标准(例如,把c:\ some-dir映射到一个磁盘的各个部分),Google指出了我在这里描述的CIFS / SMB: http://en.wikipedia .ORG /维基/ CIFS

但是这似乎描述了Windowsnetworkingpath。 我还在这里看到了“驱动器命名scheme” – http://en.wikipedia.org/wiki/DOS#Drive_naming_scheme – 但这并不能真正回答我的问题。 当我跳到我的Windows机器上,究竟是什么使Windowspath? 具体来说,当我指定c:\ some-dir \ some-child-dir时,操作系统正在使用哪些协议和标准将此地址指向我的硬盘? 让我们假设我们正在谈论Windows 7(尽pipe我也有兴趣知道Windows 7是否与其他版本的Windows不同)。

我意识到这可能是noob问题,答案可能很容易find正确的关键字,但不知道的挫折开始得到我。

没有“只是谷歌”的答案请 – 我已经做了这个广泛的,似乎只是提出了进一步的问题。 我在这里寻找技术解释。

几乎每一个现代系统都使用支持分层结构的文件系统 – 一些基本级别,文件夹包含更多文件夹(等等),其中一些文件包含文件。

在界面中使用的字符的select,告诉你你在哪里是非常随意的; 基于UNIX的系统使用正斜杠(/),DOS派生的使用反斜杠(\) – MSDN有一些背景select – 而OSX之前的Mac用冒号(:)

DOS(和后代,直到NT)给了所有的物理驱动器设备(以及伪造它们的东西)的单字母标识符。 原来有2个软盘驱动器(A:和B :)的空间,所以硬盘驱动器变成C :,并保持传统的方式(如果你改变你的启动驱动器的信,一个令人震惊的数量程序中断)。

在NT中,他们取消了驱动器为C:的大部分幕后要求,并增加了将另一个物理驱动器挂载到C:下的目录的function。 这使得它更符合UNIX的方式:启动驱动器挂载为“/”,其他各种驱动器可以挂载在它下面的文件夹(/ home,/ usr,/ tmp,无论你喜欢什么)。

当DOS发现networking时,他们摆脱了远程设备的驱动器盘符,为您提供了UNC风格的path:\ servername \ share \ folder \ file.txt。 共享只是服务器端基本目录的名称,共享名称与共享的顶级目录的名称相匹配是非常典型的,但不是必需的。

当你保持UNIX到UNIX或者Windows到Windows的时候,这很简单,只要把斜线和反斜线保持一致就可以了。 当你越过时,事情变得混乱。 大多数程序坚持使用它们运行的​​平台的语法,即使它们(可能在不知不觉中)从另一个平台访问某些东西。 一些应用程序 – 专门为跨平台兼容性编写,或者尝试用户友好的方式 – 就像input其他平台的预期格式一样。 这会变得麻烦:UNIX shell使用反斜杠作为转义字符; 您需要键入'\\'以获取作为input发送到UNIX命令的单个反斜杠作为命令行选项。

所有这些当然都是用户界面的东西。 在sceens之后,一个文件实际上由(基本上)一个数字(UNIX系统称之为一个inode)来标识,文件系统负责跟踪哪些名称(可能是多个,在硬链接的情况下是不同的目录中)映射到相同的inode,哪个磁盘扇区是同一个inode的内容)。