- 浏览: 1007996 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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 2643由于项目的需要,将网站上的信息抓取下来,提取出想要的信息,然后 ... -
简述URI和URL区别(转)
2011-04-20 16:23 1410URL:(Uniform Resoure Locato ... -
jsp页面乱码解决方案及编码设置问题(转)
2011-03-27 15:46 1832经常遇到关于JSP页面乱码的问题,在网上也查了相关的帖子,故在 ... -
使用JSTL标签异常
2011-01-02 09:48 1844我使用JSTL标签,如下所示: <c:when ... -
HSQL入门及使用指南 (转)
2010-12-27 22:29 2181HSQL可以到官方网站 ... -
使用POI读取Word207和Excel2007的例子 (转)
2010-12-26 16:19 2609天在写全文检索功能时,POI读取Word2007和Excel2 ... -
SSH session连接关闭问题的解决(转)
2010-12-15 22:12 21482008-07-20 22:25:27,531 INF ... -
svn和myeclipse使用搜狗浏览器代理
2010-12-11 16:42 18071 在svn里的setting功能选项中选择Network,勾 ... -
Kissy Suggest 自动提示例子
2010-12-10 14:45 3812由淘宝团队开发出来的Kissy Suggest 自动提示组件是 ... -
计算机开机启动过程详解(转)
2010-12-10 13:22 13821、http://product.zdnet.com. ... -
更强的自动补全提示:提示补全组件:Kissy Suggest(转)
2010-12-09 16:25 1053去年针对谷歌的搜索提示,发过一篇文章:从谷歌的一个Bug说 ... -
QQ通信原理(转)
2010-12-02 21:52 6656QQ通信原理我研究的是QQ ... -
邮件激活
2010-11-17 09:34 1450今天看了一下公司做的网站,看到有关邮件激活的程序,就做下笔记。 ... -
HttpSessionBindingListener获取在线用户数(转)
2010-11-01 14:59 2364下面为我的测试 ... -
cookie的简单使用
2010-10-29 11:13 1570一、cookie的作用 在 ... -
Cookie工作原理(转)
2010-10-29 09:30 1818Cookies基础 Cookies是 ... -
swfobject的使用
2010-10-26 09:54 32181 swfobject可以将swf文件嵌入到网页内,它是一个j ... -
java获取当前工程名(转)
2010-10-24 09:14 1619String projectname = System.get ... -
利用Java编写简单的WebService实例(转)
2010-10-22 15:30 2736/* * File name: TestHell ... -
利用Java编写简单的WebService实例
2010-10-22 14:55 87098使用Axis编写WebService比较简单,就我 ...
相关推荐
磁盘分区是指在物理硬盘上划分出逻辑区域,每个区域可以被格式化为不同的文件系统,如FAT32、NTFS或EXT4。Windows操作系统提供了API函数来访问这些分区信息,主要通过设备驱动接口,例如存储类驱动(Storage Class ...
本文将深入探讨Linux中磁盘分区的相关知识点,包括硬盘与格式化、分区的基本概念以及Disk Druid的使用。 首先,我们来了解硬盘与格式化。硬盘是计算机存储数据的主要设备,它分为机械硬盘(HDD)和固态硬盘(SSD)...
Linux 查看磁盘分区、文件系统、使用情况的命令 在 Linux 中,查看磁盘分区、文件系统、使用情况的命令和相关工具是非常重要的。今天,我们将介绍一些常用的命令和工具,以便更好地管理我们的 Linux 系统。 一、df...
"Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具" Linux 操作系统中,查看磁盘分区、文件系统、使用情况的命令和相关工具很多,但本文主要介绍两种常用的命令:df 和 fdisk。 df 命令是来自于 ...
挂载是指将分区与文件系统目录关联,使得我们可以通过目录访问该分区上的文件。`mount`命令用于挂载,`umount`或`fusermount -u`用于卸载。例如,`mount /dev/sda1 /mnt/mydisk`将/dev/sda1分区挂载到/mnt/mydisk...
操作系统磁盘分区是计算机管理存储空间的重要方式,它允许用户将一个物理硬盘划分为多个逻辑存储区域,每个区域可以独立分配文件系统并被操作系统识别为不同的驱动器字母。这一过程对于优化系统性能、管理和组织数据...
通过磁盘分区,我们可以将这个大空间分割成多个较小的部分,每个部分都可作为一个独立的驱动器来使用,拥有自己的文件系统和卷标。这使得管理和组织数据变得更加方便,例如,可以将系统文件和应用程序安装在一个分区...
1. **磁盘分区**:磁盘分区是将一个物理硬盘划分为多个逻辑存储区域,每个区域都有独立的驱动器字母和文件系统。这样做的好处是可以管理和组织数据,提高系统性能,并提供更好的数据安全性。 2. **NTFS文件系统**:...
文件系统是磁盘分区中的一个重要概念,它决定了如何在磁盘上存储和访问数据。Windows 7支持多种文件系统,其中最常用的是NTFS。NTFS具有高级功能,如权限控制、压缩和加密,以及大文件支持和更好的性能。相比之下,...
在计算机领域,磁盘分区是组织硬盘存储空间的重要方式,它允许我们将一个物理硬盘划分为多个逻辑区域,每个区域可以独立进行格式化和分配不同的文件系统。然而,在装机过程中,由于误操作或某些硬件问题,磁盘分区表...
在磁盘管理领域,json可以用于存储和传递关于磁盘分区的信息,比如分区的大小、类型、文件系统等。例如,一个服务器管理系统可能通过json格式返回当前的磁盘分区状态,方便客户端进行分析和操作。 接着,我们讨论...
### Ubuntu安装过程中的磁盘分区详解 #### 一、引言 随着Linux系统的普及与应用,越来越多的人开始尝试安装Ubuntu操作系统。在安装过程中,磁盘分区是一个非常关键的步骤,它直接影响到系统的稳定性和数据的安全性...
此外,FAT32和NTFS是Windows操作系统中的两种文件系统,FAT32适合小容量分区,而NTFS则提供更高级的功能和安全性,通常用于系统分区。 在实际操作中,用户可能需要进行以下步骤: 1. 打开"XP系统磁盘分区工具",...
磁盘分区是计算机系统管理存储空间的重要方式,它允许我们将一个物理硬盘划分为多个独立的逻辑存储区域,每个分区都可以被格式化为不同的文件系统,以便于管理和组织数据。"非常好用的磁盘分区工具"是指一类能帮助...
5. **格式化分区**:对分区进行快速或完全格式化,以清除所有数据并重新设置文件系统。 6. **复制分区/克隆磁盘**:备份重要数据,或将系统分区复制到其他硬盘,方便迁移或恢复。 三、使用步骤与注意事项 1. **...
在Linux系统中,磁盘分区是一项重要的任务,它不仅影响着系统的性能与稳定性,还关乎数据的安全性。为了更好地管理和利用磁盘空间,Linux提供了多种磁盘分区工具。本文将详细介绍Linux系统中常用的磁盘分区工具——`...
一、实验目的:掌握Windows Server 2008系统中的磁盘管理和文件系统管理,包括基本磁盘中分区的创建,动态磁盘中各种动态卷的创建。
然而,它存在一些限制,如单个文件大小不能超过4GB,磁盘分区大小最大为32GB,并且缺乏一些高级功能,如权限管理、压缩和加密等。 相比之下,NTFS(New Technology File System)是Windows NT系列操作系统所采用的...
内容概要:本文详细介绍了Linux系统中常见的文件查找、磁盘分区管理和挂载操作。具体包括使用find命令在不同目录中查找特定类型的文件、使用parted工具创建和管理MBR、GPT分区、以及挂载和卸载文件系统的步骤。同时...