- 浏览: 994915 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (394)
- OSGI (14)
- 多线程 (10)
- 数据库 (30)
- J2ME (1)
- JAVA基础知识 (46)
- 引用包 (1)
- 设计模式 (7)
- 工作流 (2)
- Ubuntu (7)
- 搜索引擎 (6)
- QT (2)
- Ubuntu下编程 (1)
- 小程序 (2)
- UML (1)
- Servlet (10)
- spring (16)
- IM (12)
- 文档视频转为flash格式在线播放 (19)
- Maven (8)
- 远程调用 (2)
- PHPRPC (1)
- EXTJS学习 (2)
- Hibernate (16)
- 技术文章 (38)
- flex (5)
- 海量数据处理 (5)
- FTP (8)
- JS (10)
- Struts (1)
- hibernate search (13)
- JQuery (2)
- EMail (3)
- 算法 (4)
- SVN (7)
- JFreeChart (4)
- 面试 (4)
- 正规表达式 (2)
- 数据库性能优化 (10)
- JVM (6)
- Http Session Cookie (7)
- 网络 (12)
- Hadoop (2)
- 性能 (1)
最新评论
-
hy1235366:
能够随便也发一下,你退火算法程序使用的DistanceMatr ...
模拟退火算法总结(含例子)(转) -
梅强强:
感谢分享。。帮大忙了
swftools转换文件时线程堵塞问题的解决方法 -
wenlongsust:
openoffice和文件不在同一个服务器上,用过吗?
[JODConverter]word转pdf心得分享(转) -
2047699523:
如何在java Web项目中开发WebService接口htt ...
利用Java编写简单的WebService实例 -
abingpow:
唉,看起来好像很详细很不错的样子,可惜不是篇面向初学者的文章, ...
Spring与OSGi的整合(二)(转)
一个磁盘是分成一个个扇区来存放信息,整个磁盘的第一个扇区是作为引导扇区(为方便下描述,这里给个名字:0号引导扇),称为”主引导纪录“,它存放引导指令和分区表。应该是除第一个扇区外的磁盘空间再划分为可使用的磁盘分区,即主分区和扩展分区,由0号引导扇,的空间有限,只能用64个字节记录磁盘分区(应该是分区的起止位置),所以最多只有四个分区,所以可以全是主分区(即可以用来装系统的分区),也可以有一个扩展分区(最多也只有一个,且它不能用来装系统),扩展分区是主分区分剩后的空间可为整个扩展分区空间,在扩展分区里再进行逻辑分区划分,这些逻辑分区是由链表串起来的,所以逻辑分区可以任分(还是受磁盘空间限制的)。每一个主分区上都有引导你操作系统的程序,所以在一个主分区上可以装N个操作系统,它们会记录到这个主分区的第一块磁盘空间去。BOIS加载0号引导扇,找出各主分区所在的位置,然后去加载主分区上登记的操作系统,这样就可以提示用户选择一个系统,然后CPU再跳转到系统所在地去加载它,并转交执行权给操作系统。
详细转:
对于磁盘分区(又称为卷)与文件系统的定义,虽然多数人未必知道,但大致指的是什么也还是很清楚的,本文也并不想去讨论二者到底是什么,只是谈一谈它们之间的关系。
在《硬盘是如何工作的》一文中我曾对硬盘做过一个简单的介绍,从中可以看出,无论你的系统磁盘有多少个分区,硬盘都始终只有一个,那么,磁盘分区从何而来?我们常说的主分区,扩展分区,逻辑分区之间到底有什么区别?分区与文件系统又有什么关系呢?
我们知道,每一个计算机都只有一块硬盘(不像内存,可以同时使用多个内存条),而硬盘被分为许多个扇区,这些扇区之间按照0---MAX数值标号(按照从外到内的顺序),而分区则是在进行分区操作时指定从某个扇区到某个扇区之间为一个分区(由指定的分区大小决定),而文件系统就存在于分区之中(这就是为什么可用磁盘空间总是小于分出的空间了),而且,每个分区都有着各自独立的文件系统,于是,你可以将某些文件系统设为FAT-32,另一些则可设为NTFS(但文件系统受到操作系统的识别能力限制,如Linux系统下的ext格式Windows系统就无法识别)。
而文件系统的重要性就在于,磁盘上的所有文件都是在文件系统内进行操作的,这就意味着,一旦磁盘上某些扇区没有被分配到某个分区,这一部分扇区将不可用,磁盘的可用容量就减小了。
但凡事都有个例外:磁盘的0号扇区是不能属于任何分区的,因为0号扇区有着特殊的用途,一般,我们称0号扇区为“主引导纪录(即MBR)”,它是用于引导计算机启动的,在这个扇区的尾部还保存这分区表。分区表纪录了磁盘上每个分区的起始和终止地址。
我们在安装系统时会发现,无论你怎样分区,都有且仅有一个分区被标明为活动分区(有时是系统分区,Windows 7下则可能是100MB的隐藏分区)。活动分区是否正常可以决定系统是否能正常启动,因为每次开机,BIOS读入内存后都会执行MBR中的指令,MBR要做的第一件事就是找到活动分区,然后读取它的第一个块(即引导块),引导块中的程序将装载该分区中的操作系统,从而实现系统的启动。
不过,值得注意的是,在每一个分区中都是有一个引导块的,虽然某些分区中不一定有操作系统,但引导块还是被保留了下来,这就为我们的多系统提供了基础(当读入活动分区的引导块后,如果用户选择了其他分区中的系统,则会跳转到其他分区的引导块,从而启动指定的系统)。
那么,活动分区、主分区、扩展分区和逻辑分区之间又有着怎样的联系与区别呢?
事实上,早期的磁盘是没有主分区,扩展分区、逻辑分区这些概念的,所有的分区都相当于现在的主分区,当然了,任何一个达到装载系统大小的分区都可有资格作为活动分区(取决于系统到底装在哪个分区)。但矛盾还是存在的:在《硬盘是如何工作的》一文中我提过,每个扇区的经典大小是512字节,0号扇区当然也不例外了,但0号扇区需要存放引导指令和分区表。所以能够分配给分区表的大小就只有64字节了,但其中每个分区的参数都需要占到16字节,这就意味着每个磁盘只能分出4个分区(多分的话无法识别)。
基于此矛盾,磁盘分区模式被更改,即主分区+扩展分区模式,主分区和扩展分区的区别在于:主分区是直接分出来的,它不能再继续分出其他分区,而扩展分区则是除主分区外的所有可用空间,它还可以被继续分出若干逻辑分区,而逻辑分区像主分区一样,不可再分。规定磁盘最多有一个扩展分区(可以没有)。这意味着我们可以拥有1---4个主分区。这样做的优势就在于,你可以仅分出一个主分区,另外的则全部是扩展分区,在扩展分区中尼可以分出任意多个逻辑分区。如此,对于我们用户而言,我们可以分出足够多的分区,但对计算机而言,它仍然认为我们仅分出了两个分区(一个主分区+一个扩展分区)。可见,扩展分区只是一个抽象概念,它不能直接使用,必须分出逻辑分区才能正常使用。
现在,又可以解释一下我们在安装系统时遇到的一个问题了,我们以Windows 7为例,在安装Windows 7过程中对磁盘分区时,我们会发现100MB分区被视为主分区(也是活动分区),而由于我们在分区时都默认分成主分区,所以对于其他的空间,我们只能再分出三个分区来,现在应该明白这是为什么了吧。比较明智的做法是:安装系统时仅分出两个分区,装完后再将非系统分区继续细分(此时要求这个非系统分区为扩展分区,当然了,即使不是,我们仍然可用借助一些磁盘分区工具(如支持Windows7的顶级磁盘分区工具----Acronis Disk Director Suite V10.0(基于2160架构)汉化注册版)将其转换为扩展分区,再分出若干逻辑分区)。
分区问题应该讲得很清楚了,下面再来看看各个分区中都有些什么内容。
前面已经讲过,每个分区中都有一个引导块,除此之外,还有超级块,空闲空间管理,i节点,根目录和文件和目录。
超级块中含有分区中所有的关键参数,包括:确定文件系统类型用的魔数,文件系统中数据块的数量等。可想而知,系统每次启动或者该文件系统首次被使用时超级块都必须被读入内存的,否则该分区将无法正常使用。
空闲空间管理则含有该分区上所有还未被使用的空间的相关信息,一般以位图或链表的形式表示(用何种方式表示关系到文件操作简便与否及其响应速度,这里就不多讲了)。
i节点i节点是一个数据结构数组,用于存储文件的各种信息(每个文件都有一个i节点),含有指向文件中数据所在块的指针(即决定了文件是否能够被正确读写),其优点在于进行文件操作时响应速度快,内存占用少。缺点在于有时无法容纳一个大文件的所有数据(i节点中数组所能表示的指针数量是有限的)。因此,并不是每一种文件系统都采用了i节点方案。
至于根目录和文件及目录大家都懂是什么意思,就不用我多说了。
讲到这里就顺便提一下微软的FAT-16、FAT-32和NTFS文件系统。
FAT-16是MS-DOS的文件系统,使用16位磁盘地址,所以仅支持最大2GB的磁盘分区(这里应该是磁盘的地址是由两部分结合在一起的,如块内地址和块地址组成,那么块内地址和块地址大概占16位,这里可能是有一位拿来做标识位去了,所以组合成2GB,纯属个人理解,不对,请多多指教)。FAT-32则使用32位磁盘地址,最大支持2TB的磁盘分区。NTFS是专门为Windows NT开发的文件系统(windows NT技术首次比较完善的使用是在windows 95上)。使用64位磁盘地址,使用理论上最大支持2的64次方的磁盘分区。至于它们之间的具体区别,就不介绍了。
讲了这么多,不知道大家理解了没有,相信只要稍加琢磨,是很容易理解的。
更多阅读:
发表评论
-
提取html内容放入xml文件时空格问题
2011-05-24 17:09 2592由于项目的需要,将网站上的信息抓取下来,提取出想要的信息,然后 ... -
简述URI和URL区别(转)
2011-04-20 16:23 1369URL:(Uniform Resoure Locato ... -
jsp页面乱码解决方案及编码设置问题(转)
2011-03-27 15:46 1804经常遇到关于JSP页面乱码的问题,在网上也查了相关的帖子,故在 ... -
使用JSTL标签异常
2011-01-02 09:48 1815我使用JSTL标签,如下所示: <c:when ... -
HSQL入门及使用指南 (转)
2010-12-27 22:29 2124HSQL可以到官方网站 ... -
使用POI读取Word207和Excel2007的例子 (转)
2010-12-26 16:19 2575天在写全文检索功能时,POI读取Word2007和Excel2 ... -
SSH session连接关闭问题的解决(转)
2010-12-15 22:12 21002008-07-20 22:25:27,531 INF ... -
svn和myeclipse使用搜狗浏览器代理
2010-12-11 16:42 17821 在svn里的setting功能选项中选择Network,勾 ... -
Kissy Suggest 自动提示例子
2010-12-10 14:45 3776由淘宝团队开发出来的Kissy Suggest 自动提示组件是 ... -
计算机开机启动过程详解(转)
2010-12-10 13:22 13501、http://product.zdnet.com. ... -
更强的自动补全提示:提示补全组件:Kissy Suggest(转)
2010-12-09 16:25 1016去年针对谷歌的搜索提示,发过一篇文章:从谷歌的一个Bug说 ... -
QQ通信原理(转)
2010-12-02 21:52 6621QQ通信原理我研究的是QQ ... -
邮件激活
2010-11-17 09:34 1418今天看了一下公司做的网站,看到有关邮件激活的程序,就做下笔记。 ... -
HttpSessionBindingListener获取在线用户数(转)
2010-11-01 14:59 2325下面为我的测试 ... -
cookie的简单使用
2010-10-29 11:13 1540一、cookie的作用 在 ... -
Cookie工作原理(转)
2010-10-29 09:30 1779Cookies基础 Cookies是 ... -
swfobject的使用
2010-10-26 09:54 31751 swfobject可以将swf文件嵌入到网页内,它是一个j ... -
java获取当前工程名(转)
2010-10-24 09:14 1581String projectname = System.get ... -
利用Java编写简单的WebService实例(转)
2010-10-22 15:30 2705/* * File name: TestHell ... -
利用Java编写简单的WebService实例
2010-10-22 14:55 86954使用Axis编写WebService比较简单,就我 ...
相关推荐
Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具.docx
Linux操作基础与文件系统(2)(磁盘分区,格式化,限额),操作命令及实例,很详细的教材.
一、实验目的:掌握Windows Server 2008系统中的磁盘管理和文件系统管理,包括基本磁盘中分区的创建,动态磁盘中各种动态卷的创建。
这个教程对初次安装linux朋友还是需要去了解懂得的,在linux下的朋友不太清楚这个概念的也要学习一下噢。 硬盘与格式化 分区基本概念 Disk Druid的使用
1.掌握磁盘的分区、基本磁盘与动态磁盘的转换、磁盘文件系统的转换等基本操作; 2.掌握创建装入的驱动器的操作; 3.掌握动态卷的管理操作; 4.掌握磁盘配额的设置操作; 5.掌握磁盘、文件夹、文件、打印机的共享设置...
分区碎片整理,修复文件系统错误,扫描坏扇区,初始化磁盘,查看磁盘/分区属性等 5.数据安全 隐藏分区,设置磁盘只读属性,擦除磁盘/分区/未分配空间中的数据 6.克隆与迁移 将操作系统迁移到新磁盘,克隆...
Linux操作基础与文件系统磁盘分区格式化限额PPT教案学习.pptx
Paragon Partition Manager是一个类似于PQ PartitionMagic的磁盘分区工具集,是一套磁盘管理软件,PartitionMagic的最佳替代品!有着直觉的图形使用介面和支持鼠标操作。主要功能包括:能够不损失硬盘资料下对硬盘...
任务6 磁盘分区和LVM管理 实验目的 学会磁盘分区 学会LVM管理 学会分区/逻辑卷的格式化及文件系统的建立 学会mount挂载及开机自动挂载 实验内容 注意!实验前,请将主机名修改为zhangsan(zhangsan为自己姓名全拼) ...
熟悉:Linux支持的常用文件系统 【能力目标】 能够根据需求选择分区技术 能够查看操作系统支持的文件系统类型 【思政目标】 磁盘操作涉及数据安全,要培养学生精益求精的工匠精神。 1.1 磁盘分区 1. 什么是分区? ...
很实用的Linux操作命令手册 欢迎大家共同分享!
本次威航软件园为大家带来的是顶级技术员版本,售价高达699美元,具有分区管理、分区调整、磁盘分区格式转换、碎片整理、修复文件系统错误、坏扇区扫描、操作系统迁移、磁盘初始化等诸多实用功能,全面兼容内部和...
的磁盘分区工具集,是一套磁盘管理软件,PartitionMagic的 最佳替代品!有着直觉的图形使用介面和支持鼠标操作。主要 功能包括:能够不损失硬盘资料下对硬盘分区做大小调整、能 够将NTFS文件系统转换成FAT、FAT32或...
主要功能包括:能够不损失硬盘资料下对硬盘分区做大小调整、能够将NTFS文件系统转换成FAT、FAT32或FAT32文件系统转换成FAT文件系统、支持制作、格式化、删除、复制、隐藏、移动分区、可复制整个硬盘资料到其它分区、...
用c++来实现一个简单的虚拟文件系统 可以实现 多种基本的文件功能
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理...
学习磁盘分区使用的文件。。。
检查分区与文件系统的错误 查看磁盘与分区的属性 支持的其它特征 虚拟操作,在保存到磁盘前可以预览对分区改变,最大限度地防止误操作的发生 调整分区大小与位置只需要拖动滑块条即可 图形化地显示磁盘与分区
本工程,能够实现,对用户目录以及文件的管理。工程运行的命令格式,大多为命令+相对路径,所有命令系统启动前都会默认加载,命令集记载在order.txt文件,详细请参考文档
(1) 在内存中开辟一个虚拟磁盘空间作为文件存储分区,在其上实现一个简单的基于多级目录的单用户单任务系统中的文件系统。在退出该文件系统的使用时,应将该虚拟文件系统以一个文件的方式保存到磁盘上,以便下次可以...