WinNT Namespace 与 ext3 结构

Linux的 ext3 文件系统结构是 一个 / 根,然后衍生出整个PC的文件、设备、一切。 其实呢,WinNT 也是这样设计的,只是没有暴露给用户罢了。说白了, C:\ D:\ 等只是一个符号连接。如图:用了反汇编高手WQXNETQIQI推荐的工具,Sysinternals 的大作:WinObj

 在 cmd 命令行里,我们可以通过
tree \\?\CdRom0
来查看机器上第一个光驱的 目录结构,也可以通过
type \\?\GLOBALROOT\Device\CdRom0\autorun.inf
来读取 第一个光驱根目录下 autorun.ini 的内容。

是不是和 Linux 的 cat /media/cdrom 有点相似呢?

再看看一个WinNT NTFS的的命令:
C:\>mountvol
创建、删除或列出卷装载点。
MOUNTVOL [drive:]path VolumeName
MOUNTVOL [drive:]path /D
MOUNTVOL [drive:]path /L

    \\?\Volume{d1dd98a0-85e1-11db-9bf6-806d6172696f}\
        C:\
    \\?\Volume{d1dd98a1-85e1-11db-9bf6-806d6172696f}\
        D:\
    \\?\Volume{d1dd98a2-85e1-11db-9bf6-806d6172696f}\
        E:\
    \\?\Volume{aa4a8921-f599-11da-9600-806d6172696f}\
        F:\
    \\?\Volume{b2938600-f565-11da-a449-806d6172696f}\
        G:\
    \\?\Volume{aa4a8920-f599-11da-9600-806d6172696f}\
        A:\

输入
C:\>dir \\?\Volume{d1dd98a0-85e1-11db-9bf6-806d6172696f}\Windows
就相当于
dir %WinDir% 了。

输入
type \\?\GLOBALROOT\Device\HardDiskVolume1\boot.ini
就相当于
type C:\Boot.ini

看来Windows 也有一个类似于 ext3 的文件系统啊。加上 Windows Shell Namespace,应该比 ext3 丰富了吧。

粗略的估计,用命令行可以查看一些Win32的 NamedPipe 和 内存、TCP 连接的情况。由于本人才疏学浅,不知道从哪里入手,不过总体感觉是:Windows  到底还是MS几亿美金打造的OS,还是有其深刻内涵的。从这点看来,Linux又显得原始了点。

[内有附件]

Comments