MBR和boot sector应该是由上至下的关系:
1 启动顺序有先后。PC机启动时,先执行MBR,再根据选择执行某个分区下的boot sector。
(选择执行的boot sector所在分区就是活动分区。“用户选择一个 *** 作系统” 实际上也就是选择一个分区作为活动分区。)
2 boot sector可以为空(没装系统),但MBR必须包含内容。
3 MBR必须被读取并执行;引导扇区根据选择执行,有的甚至可以不执行(即上文中的”数据是无效的”)。
4 MBR实际上包含的内容也比boot sector广泛,MBR中相当于包含了硬盘整体层面上的引导扇区(自举装入程序)、根目录区(分区表)。所以楼主也许是在拿“自举装入程序 Boot Loader"和"boot sector"做比较。
既然是由上至下的组织关系,所以可以举很多通俗点的例子来类比,我随便举个吧:
MBR是某社团的老大,他知道社团有多少个部门(分区表),某天他接了个活(开电脑了!),比如宣传XX讲座,于是他开始寻找(启动自举装入程序!)一个部门(某个分区)来干这活。当然他选择了宣传部(把宣传部设置为活动扇区!)。这时候,宣传部长(boot sector)粗线并出动了!很遗憾,他的部门只有一个部员( *** 作系统),而他只会当宣传部长不会宣传,于是他毫不犹豫地把活交给了那个部员!(于是 *** 作系统启动了)。
以上故事的前提是:一个部门(分区)下,只能有1个部员( *** 作系统),当然部长不算部员。
smap是superblock中的一个bitmap数据结构,用来记录这个文件系统中哪些sector使用了,哪些没使用。具体说就是,如果某个sector使用了,那么这个bitmap中对应的那个bit就置为1,否则置为0。
sbnr_smap_sects是smap所占sector数。
既然一个sector要一个bit,那么为了记录整个文件系统的使用情况,总共需要的bit数就是sector数。
文件系统以sector为最小分配单位,而不是bit。所以我们需要计算这么多个bit需要占用多少sector,可以多算,不能少(不然就没地方存了)。这里sbnr_sects / bits_per_sect可能不是整数,我们近似时采用进一法,所以结果是bnr_sects / bits_per_sect + 1;
当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是Award
BIOS还是AMI
BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。
第一个分区的又是主分区的C盘,在它的第一个扇区(sector
at
cylinder
0,
head
0,
sector
1
)存放的是主引导记录(Master
Boot
Record
(MBR))。当从硬盘启动时,INT
19
试着读取MBR,如果发现MBR,则把它读入到内存地址
0000:7c00且INT
19
跳到内存地址0000
:7c00
在这MBR中的一个这小程序会试着找到一个可启动的(bootable)分区,如果发现可启动分区,那启动扇区将会被读取到内存地址0000
:7C00且这MBR
程序(现在是MBR程序了,刚才是int
19)跳到内存地址0000:7C00
这样就可以开始启动了
*** 作系统的文件系统是 *** 作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。文件系统的格式大致有如下:FATPC机使用的文件系统是FAT16。像基于MS-DOS,Win95等系统都采用了FAT16文件系统。后来在Win98开始推出了增强的文件系统FAT32。同FAT16相比,FAT32主要具有以下特点:同FAT16相比FAT32最大的优点是可以支持的磁盘大小达到32GB,但是不能支持小于512MB的分区。基于FAT32的Win2000可以支持分区最大为32GB;而基于FAT16的Win2000支持的分区最大为4GB。NTFSNTFS文件系统是一个基于安全性的文件系统,是WindowsNT所采用的独特的文件系统结构,它是建立在保护文件和目录数据基础上,同时照顾节省存储资源、减少磁盘占用量的一种先进的文件系统。exFAT全称ExtendedFileAllocationTableFileSystem,扩展FAT,即扩展文件分配表是Microsoft在WindowsEmbeded50以上(包括WindowsCE50、60、WindowsMobile5、6、61)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用。Ext2Ext2是GNU/Linux系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的x86电脑系统中,簇最大为4KB,则单一文件大小上限为2048GB,而文件系统的容量上限为16384GB。Ext3Ext3是一种日志式文件系统,是对ext2系统的扩展,它兼容ext2。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部shutdown后才能进行关机。Ext4Linuxkernel自2628开始正式支持新的文件系统Ext4。Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构,而不仅仅像Ext3对Ext2那样,只是增加了一个日志功能而已。Ext4可以提供更佳的性能和可靠性,还有更为丰富的功能与Ext3兼容。BtrfsBtrfs(通常念成ButterFS),是由Oracle于2007年宣布并进行中的copy-on-write文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单个文件的大小,总文件系统大小或文件检查和加入目前ext3未支持的功能,像是writablesnapshots、snapshotsofsnapshots、内建磁盘阵列(RAID)支持,以及subvolumes。Btrfs也宣称专注在“容错、修复及易于管理”。ZFSZFS源自于SunMicrosystems为Solaris *** 作系统开发的文件系统。ZFS是一个具有高存储容量、文件系统与卷管理概念整合、崭新的磁盘逻辑结构的轻量级文件系统,同时也是一个便捷的存储池管理系统。ZFS是一个使用CDDL协议条款授权的开源项目。HFSHFS文件系统概念分层文件系统(HierarchicalFileSystem,HFS)是一种由苹果电脑开发,并使用在MacOS上的文件系统。ReiserFSReiserFS,是一种文件系统格式,作者是HansReiser及其团队Namesys,1997年7月23日他将ReiserFS文件系统在互联网上公布。Linux内核从241版本开始支持ReiserFS。JFSJFS(JOURNALFILESYSTEM),一种字节级日志文件系统,借鉴了数据库保护系统的技术,以日志的形式记录文件的变化。JFS通过记录文件结构而不是数据本身的变化来保证数据的完整性。这种方式可以确保在任何时刻都能维护数据的可访问性。VMFSVMwareVirtualMachineFileSystem(VMFS)是一种高性能的群集文件系统,它使虚拟化技术的应用超出了单个系统的限制。VMFS的设计、构建和优化针对虚拟服务器环境,可让多个虚拟机共同访问一个整合的群集式存储池,从而显著提高了资源利用率。VMFS是跨越多个服务器实现虚拟化的基础,它可启用VMwareVmotionTM、DistributedResourceScheduler和VMwareHighAvailability等各种服务。VMFS还能显著减少管理开销,它提供了一种高效的虚拟化管理层,特别适合大型企业数据中心。采用VMFS可实现资源共享,使管理员轻松地从更高效率和存储利用率中直接获益。XFSXFS是SiliconGraphics,Inc于90年代初开发的文件系统。它至今仍作为SGI基于IRIX的产品(从工作站到超级计算机)的底层文件系统来使用。现在,XFS也可以用于Linux。XFS的Linux版的到来是激动人心的,首先因为它为Linux社区提供了一种健壮的、优秀的以及功能丰富的文件系统,并且这种文件系统所具有的可伸缩性能够满足最苛刻的存储需求。UFSUFS文件系统:基于BSD高速文件系统的传统UNIX文件系统,是Solaris的默认文件系统。默认启用UFS日志记录功能。在早期的Solaris版本中,UFS日志记录功能只能手动启用。Solaris10在运行64位Solaris内核的系统上支持多TBUFS文件系统。以前,UFS文件系统在64位系统和32位系统上的大小仅限于约1TB(Tbyte)。现在,所有UFS文件系统命令和公用程序已更新为支持多TBUFS文件系统。VXFSVeritasFileSystem(VxFS)是首个商业日志记录文件系统。通过日志记录功能,元数据更改首先写入到日志,然后再写入到磁盘。由于无需在多处写入更改,且元数据是异步写入的,因此吞吐量的速度较快。VxFS也是基于扩展区的意向日志记录文件系统。VxFS设计用于要求高性能和高可用性,并且可以处理大量数据的 *** 作环境。上述资料整理于网络。
电脑的启动是一个先硬件后软件(即 *** 作系统)的过程,任何要运行的软件程序都要加载到内存,系统也不例外。
系统启动过程主要由一下几步组成
1
开机;
2
BIOS
加电自检
(BIOS自检的作用是检查各硬件是否完好,如果不完好主板就不会发出滴一声,停留在很多英文的画面或直接黑屏);
3
将硬盘第一个扇区
(0头0道1扇区,
也就是Boot
Sector)读入内存地址
0000:7c00
处;
4
检查
(WORD)
0000:7dfe(共512B=一个扇区大小)
是否等于
0xaa55,
若不等于
则转去尝试其他启动介质,
如果没有其他启动介质则显示
"No
ROM
BASIC"
然后死机;
5
跳转到
0000:7c00
处执行
MBR
中的程序
6
MBR
首先将自己复制到
0000:0600
处,
然后继续执行;
7
在主分区表中搜索标志为活动的分区
如果发现没有活动分区或有不止一个活动分区,
则转停止;
8
将活动分区的第一个扇区读入内存地址
0000:7c00
处;
9
检查
(WORD)
0000:7dfe
是否等于
0xaa55,
若不等于则显示
"Missing
Operating
System"
然后停止,
或尝试软盘启动;
10
跳转到
0000:7c00
处继续执行特定系统的启动程序;
11
最后启动 *** 作系统
。
希望能帮你
以上就是关于boot sector和MBR的区别是什么全部的内容,包括:boot sector和MBR的区别是什么、关于《一个 *** 作系统的实现》中文件系统的问题、怎么用BIOS程序引导硬件初始化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)