




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简谈Windows7操作系统文件夹的奥妙2009年9月7日的时候,Win7之家发过这篇Windows 7中Windows目录到底占用了多少硬盘空间?,里面的内容比本篇更详实一些,也提供了专门的工具软件,想深度了解的朋友可以读读看。今天这个算是缩略篇吧如果你安装了时下最流行的微软Windows 7操作系统,是否会觉得微软Windows 7操作系统下的winsxs文件夹庞大的吓人,有些人就装X说Windows 7操作系统占空间了,本文为你详解。关于最近的新的微软安全,稳定着称的操作系统我们知道,查看一个目录有多大的最快捷的方法就是看看资源管理器文件夹的属性,但是我今天要说的是:如果你用这个方法去看 Windows Vista / Windows 7 系统的目录,你会被你的眼睛所欺骗,因为,Microsoft 同学在 Windows Vista/ Windows 7 里面大量使用了NTFS文件系统的特性之一的:硬连接(Hard Link)来实现WinSxS机制!用过的人都知道,要安装 Windows Vista / Windows 7系统,那么系统分区必须是NTFS文件系统。原因有以下一些:系统文件保护所需各种安全保护机制,如MIC所需WinSxS 所需关于最后一点的 WinSxS 所需,所以NTFS这是Windows Vista / Windows 7 系统需要的一个条件,因为只有在 NTFS 文件系统上面,才能实现硬连接机制,也才能达到优化Windows目录占用磁盘空间的目的。关于微软系统的硬链接硬链接是什么呢?简单的说,就是一种针对文件的特殊快捷方式,只不过这种快捷方式的实现和一般的快捷方式不一样。硬连接是NTFS文件系统特有的属性之一,在Linux下面,也有类似的机制。硬连接适用于在同一个卷的文件级别,硬连接是不能跨卷的。硬链接,系统属性测试Windows Vista / Windows 7自带了创建硬连接的命令:mklink.exe,利用这个命令,我们可以给指定的文件创建硬连接:下面的命令将在link.txt和source.txt之间建立硬连接关系C:UsershoiiDesktopmklink /h link.txt gb.txt为 link.txt = gb.txt 创建了硬链接注意上面的例子:link.txt本是一个不存在的文件,但是当执行完mklink命令以后,link.txt文件也就被创建了。其实,link.txt是一个虚假的文件,它是在文件系统层面上对gb.txt文件的一个映射,而link.txt是不占硬盘空间的。关于硬盘空间的占用问题,可以这样测试:1、给硬盘划分一个新分区,空间只有2GB2、在这个分区的test目录里面新建了一个1.9GB大小的文件,此时剩余空间是0.1GB3、用mklink命令给这个1.9GB大小的文件建立了一个硬连接4、检查这个分区的剩余空间,还是0.1GB,但是如果用资源管理器看test目录的属性,会发现有2个文件,总大小是3.8GB(整个分区才2GB,能够容纳3.8GB大小的文件吗?显然不可能了)还是针对上述的例子,如果我们把原始的文件 gb.txt 删除以后,link.txt文件还是会继续存在的,且内容就是source.txt的文件内容。也就是说,我们删除gb.txt,实际上删除的仅仅是这种连接关系,文件本身还是没有被操作的。关于硬连接,最后一个需要介绍的内容是:当硬连接建立以后,硬连接双方任何一个对象被修改,都会造成对应的连接对象被修改。例如上面的例子:如果修改了link.txt,那么gb.txt文件也会同步被修改,反之亦然。这一点和SHELL层面的快捷方式不同,SHELL层面的快捷方式文件LNK仅仅是一个指示关系,修改LNK文件并不影响LNK文件指向的对象,修改LNK文件指向的对象也不会影响LNK文件。WIN新系统下的硬链接情况和使用这种技术的原因好了,基本知识介绍完了,我们来实际看看Windows目录里面对于硬连接的使用情况吧。经常看到有人抱怨,WindowsWinSxS目录占用了太多的空间,里面经常发现有同名的文件,而且这些同名的文件在 WindowsSystem32 目录下面也有存在,这是为啥呢?其实这就是硬连接导致的。Microsoft为啥这么麻烦搞这个呢?其实这样对系统的稳定性的增加非常有好处同样的文件,只需要维护硬连接关系,不需要进行多重的拷贝,这样可以节省硬盘空间如果涉及文件更新,只需要先在WinSxS 目录里面下载好一个新版本,然后修改 WindowsSystem32 下面同名文件的硬连接关系,从旧版本的硬连接指向新版本的硬连接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度也会快不少补丁卸载也是一样的,只需要把硬连接指向改为旧版本就可以了,没有文件替换的问题。而且建立了硬连接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改真相大白说了这么多,那么如何知道 Windows 目录的真实大小呢?有很多小工具可以使用,也可以在DOS下的第三方工具来测试,有兴趣的童鞋就自己测试吧,我的测试结果如下:对于纯净的系统测试结果如下,共有文件65088个,其中,真实的文件有48022个,其他17066个文件都是硬连接文件。真实的文件占用了14981682 KB的硬盘空间,而如果你用资源管理器看的话,那么会提示说占用了 18244902 KB的硬盘空间。其实呢?, Windowssystem32 目录下的大多数文件都和 WinSxS 目录建立了硬连接关系都多算了一次。Windows 7操作系统winsxs那么多空间占着。其实没那么多。那不过是文件同步映射导致的结果。 原本这个话题是准备在8个月前写的,但是由于种种原因,一直推迟到现在。今晚(或者说今天凌晨),抽空把程序弄完了,因为只有程序写完以后,这个话题才有实际的价值。这个话题就是:Windows 目录到底占用了多少真实的硬盘空间?看到这个问题,我想99%的人都会说:用资源管理器右键点击Windows目录,看看属性不就知道了吗?何必故弄玄虚呢!但是,我 Smallfrogs 会有那么傻的把一个大家都知道的问题重新翻出来吗?既然提出了这个话题,就有我的道理!请各位耐住性子往下看,看看我们的Microsoft同学又玩了什么样的花活,呵呵。我们知道,查看一个目录有多大的最快捷的方法就是看看资源管理器文件夹的属性,但是我今天要说的是:如果你用这个方法去看 Windows Vista / Windows 7 系统的目录,你会被你的眼睛所欺骗,因为,Microsoft 同学在 Windows Vista/ Windows 7里面大量使用了NTFS文件系统的特性之一的:硬连接(Hard Link)来实现WinSxS机制!我们知道,要安装 Windows Vista / Windows 7系统,那么系统分区必须是NTFS文件系统。原因有以下一些: 系统文件保护所需 各种安全保护机制,如MIC所需 WinSxS 所需 关于最后一点的 WinSxS 所需,我没有看到过相关的资料说明,不过可以肯定的是,这也是Windows Vista / Windows 7 系统需要NTFS文件系统的一个条件,因为只有在 NTFS 文件系统上面,才能实现硬连接机制,也才能达到优化Windows目录占用磁盘空间的目的。关于硬连接,MSDN是这样解释的:A hard link is the file system representation of a file by which more than one path references a single file in the same volume. To create a hard link, use the CreateHardLink function. Any changes to that file are instantly visible to applications that access it through the hard links that reference it. However, the directory entry size and attribute information is updated only for the link through which the change was made.简单的说,就是一种针对文件的特殊快捷方式,只不过这种快捷方式的实现和一般的快捷方式不一样。 一般的快捷方式是创建一个LNK文件,在这个LNK文件里面描述了目标文件/目录的属性,资源管理器或者其他文件管理工具利用SHELL32.DLL里面的API函数获得这个LNK文件所指向的文件/目录,从而进行访问。 硬连接:是一种基于文件系统级别上的针对文件的快捷方式,基于文件系统级别的含义就是说,只要文件系统启动了,那么对应的快捷方式也就生效了。换句话说,这种连接是常存的,因为文件系统是必须要随机启动的。硬连接是NTFS文件系统特有的属性之一,在Linux下面,也有类似的机制。硬连接适用于在同一个卷的文件级别,硬连接是不能跨卷的。 Windows Vista / Windows 7自带了创建硬连接的命令:mklink.exe,利用这个命令,我们可以给指定的文件创建硬连接:下面的命令将在link.txt和source.txt之间建立硬连接关系C:UsersSmallfrogsDesktopmklink /h link.txt source.txt为 link.txt source.txt 创建了硬链接注 意上面的例子:link.txt本是一个不存在的文件,但是当执行完mklink命令以后,link.txt文件也就被创建了。其实,link.txt是 一个虚假的文件,它是在文件系统层面上对source.txt文件的一个映射,而link.txt是不占硬盘空间的。关于硬盘空间的占用问题,Smallfrogs 是这样测试的:1、给硬盘划分一个新分区,空间只有2GB2、在这个分区的test目录里面新建了一个1.9GB大小的文件,此时剩余空间是0.1GB3、用mklink命令给这个1.9GB大小的文件建立了一个硬连接4、检查这个分区的剩余空间,还是0.1GB,但是如果用资源管理器看test目录的属性,会发现有2个文件,总大小是3.8GB(整个分区才2GB,能够容纳3.8GB大小的文件吗?显然不可能了)还是针对上述的例子,如果我们把原始的文件 source.txt 删除以后,link.txt文件还是会继续存在的,且内容就是source.txt的文件内容。也就是说,我们删除source.txt,实际上删除的仅仅是这种连接关系,文件本身还是没有被操作的。关 于硬连接,最后一个需要介绍的内容是:当硬连接建立以后,硬连接双方任何一个对象被修改,都会造成对应的连接对象被修改。例如上面的例子:如果修改了 link.txt,那么source.txt文件也会同步被修改,反之亦然。这一点和SHELL层面的快捷方式不同,SHELL层面的快捷方式文件LNK 仅仅是一个指示关系,修改LNK文件并不影响LNK文件指向的对象,修改LNK文件指向的对象也不会影响LNK文件。好了,基本知识介绍完了,我们来实际看看Windows目录里面对于硬连接的使用情况吧。经常看到有人抱怨,WindowsWinSxS目录占用了太多的空间,里面经常发现有同名的文件,而且这些同名的文件在 WindowsSystem32 目录下面也有存在,这是为啥呢?其实这就是硬连接导致的。Microsoft 实际上在 WindowsWinSxS 目录和Windows目录之间建立了硬连接的关系,举一个最简单的例子:对于 Windows 7 RTM 来说,你可以在2个地方找到Ntoskrnl.exe文件。第一个地方是:WindowsSystem32ntoskrnl.exe,另外还有一个地 方是WindowsWinSxSx86_microsoft-windows-os- kernel_31bf3856ad364e35_6.1.7600.16385_none_6c06b7c41576a7d9ntoskrnl.exe, 这就是一个典型的硬连接例子。Microsoft 在文件系统上面对 ntoskrnl.exe 做了一个硬连接,使得 ntoskrnl.exe 能够出现在不同的目录里面,但是只占用了一份 ntoskrnl.exe 的硬盘空间。利用这种机制,有下面的一些好处: 同样的文件,只需要维护硬连接关系,不需要进行多重的拷贝,这样可以节省硬盘空间 如果涉及文件更新,只需要先在WinSxS 目录里面下载好一个新版本,然后修改 WindowsSystem32 下面同名文件的硬连接关系,从旧版本的硬连接指向新版本的硬连接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度也会快不少 补丁卸载也是一样的,只需要把硬连接指向改为旧版本就可以了,没有文件替换的问题。而且建立了硬连接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改 说了这么多,那么如何知道 Windows 目录的真实大小呢?Smallfrogs 提供了一个工具,可以很方便的知道您系统里面有哪些文件是有硬连接关系的,以及Windows 目录下真实的文件大小。工具可以从 http
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版八年级音乐上册(五线谱)说课稿
- 九年级历史上册 第三单元 中古时期的欧亚国家 第8课 西欧的乡村与城市说课稿 岳麓版
- 2025机械设备公司零部件经销商合同
- 人教版七年级上册历史与社会第四单元 第 五课《城市规划的典范:巴西利亚》说课稿2 (2份打包)
- 北京理工大学出版社教学设计-2025-2026学年中职中职专业课物流类73 财经商贸大类
- 2025农资采购合同(复合肥)
- 2024-2025年高中化学 专题1 第3单元 金属的腐蚀与防护说课稿 苏教版选修4
- 第3课 作品展示说课稿-2025-2026学年小学信息技术大连理工版六年级下册-大连理工版
- 课题3 金属资源的利用和保护(第1课时)(说课稿)九年级化学下册同步高效课堂(人教版2024)
- 六年级品德与社会上册 春天的故事(变化着的人,变化中的家园)说课稿 北师大版
- 成人肠造口护理-2019中华护理学会团体标准
- 医古文医古文绪论
- 2023-商业购物中心大型活动舞台搭建标准
- 艾滋病基本知识
- 佛山市顺德区飞鹅永久墓园管理处招考2名管理员工模拟检测试卷【共1000题含答案解析】
- 幼儿园一日生活指南汇总
- GB/T 25775-2010焊接材料供货技术条件产品类型、尺寸、公差和标志
- GB/T 14454.2-2008香料香气评定法
- 肌内效贴布疗法课件
- 阿甘正传全部台词中英对照
- 人教版八年级下册英语全册教案完整版教学设计含教学反思
评论
0/150
提交评论