引导程序
- 格式:doc
- 大小:90.50 KB
- 文档页数:9
简述启动系统工作过程启动系统是指计算机在开机时,从无电到正常运行的过程。
启动系统的工作过程包括硬件启动、引导程序加载、操作系统加载和初始化等环节。
硬件启动是指计算机开机后,硬件设备开始进行自检和初始化操作。
计算机的主板会对各个硬件设备进行检测,并对其进行初始化设置。
这些硬件设备包括处理器(CPU)、内存、硬盘、显卡、键盘、鼠标等。
硬件启动过程中,如果发现硬件故障或不符合规格,会发出警报或报错信息,并停止启动。
引导程序加载是指计算机在硬件启动完成后,开始加载引导程序。
引导程序是一段特殊的代码,位于计算机的引导设备上,例如硬盘的主引导记录(MBR)、光盘的启动扇区等。
当计算机上电后,主板会按照预设顺序,检测各个启动设备上是否存在引导程序。
一旦找到引导程序后,主板会将其加载到内存中的指定位置,并将控制权转交给引导程序。
引导程序的主要功能是根据用户选择的操作系统,加载对应的系统文件。
引导程序会读取启动设备上的文件系统,并根据预设的加载规则,加载操作系统的主要文件,如内核文件、设备驱动程序等。
引导程序加载完成后,就会将控制权交给操作系统。
操作系统加载是指引导程序将控制权转交给操作系统后,操作系统开始加载和初始化。
操作系统首先会进行一些基本的系统设置,如初始化进程、文件系统、网络设置等。
然后,操作系统会开始加载并初始化需要的设备驱动程序和其他系统软件。
操作系统加载和初始化的最后一个阶段是用户登录。
在这个阶段,操作系统会提示用户输入账号和密码,并进行身份验证。
一旦验证成功,系统将显示用户的桌面或命令行界面,用户就可以开始使用计算机了。
总结来说,启动系统的工作过程包括硬件启动、引导程序加载、操作系统加载和初始化。
硬件启动过程是通过自检和初始化来检测硬件设备是否正常。
引导程序加载过程是找到引导程序,并将其加载到内存中,然后将控制权交给引导程序。
操作系统加载和初始化过程是进行系统设置、加载设备驱动程序和系统软件,并提示用户登录,最终显示用户的桌面或命令行界面。
bootload标准
Bootload是一种标准,它定义了一种用于将程序加载到设备的
方式。
Bootload标准通常由硬件制造商或操作系统开发者制定,并被用于启动系统时加载初始程序的过程中。
Bootload标准一般描述了以下方面的内容:
1. 引导程序的存储位置和格式:Bootload标准规定了引导程序
应该存储在哪里(比如主引导记录或特定的引导分区),以及它们的格式(比如二进制文件、可执行文件或其他格式)。
2. 引导过程的执行顺序:Bootload标准描述了执行引导过程的
顺序,即加载引导程序的具体步骤,包括读取引导程序的位置、将其加载到内存中、设置适当的寄存器和环境变量等。
3. 引导程序的功能和要求:Bootload标准还可以包括引导程序
的功能和要求,比如支持特定的引导选项、加载特定的文件系统或驱动程序等。
通过遵循Bootload标准,硬件制造商和操作系统开发者可以
确保不同的设备或系统可以正确地启动和加载程序,提供统一的引导过程。
这样就可以方便地切换不同的操作系统或加载不同的程序,而无需进行额外的配置或适配。
会籍顾问接待客人引导参观流程入门会籍顾问接待客人引导参观流程1、主动热情向参观人员问好,并向其介绍会籍顾问的身份。
、主动热情向参观人员问好,并向其介绍会籍顾问的身份。
2、引导客人进行馆内参观,线路为:、引导客人进行馆内参观,线路为:3、让参观人员填写访客资料表并获得对方入会的意愿程度。
、让参观人员填写访客资料表并获得对方入会的意愿程度。
4、介绍现场教练并让教练安排参观人员做初次体验训练。
、介绍现场教练并让教练安排参观人员做初次体验训练。
5、礼貌地与来客握手、道别并送至大门口。
、礼貌地与来客握手、道别并送至大门口。
带客参观程序首先销售人员主动接待来客并向会籍顾问介绍来客。
销售人员主动接待来客并向会籍顾问介绍来客。
会籍顾问:您好!我是美高美的会籍顾问XXX,请问您怎么称呼?会籍顾问:您好!,请问您怎么称呼?某先生/小姐,我们公司是一家以健身为主,结合休闲、沐浴、某先生小姐,我们公司是一家以健身为主,结合休闲、沐浴、娱乐为一体小姐的综合健身俱乐部。
(您是第一次来我们这里吗?住在附近吗?)。
(您是第一次来我们这里吗的综合健身俱乐部。
(您是第一次来我们这里吗?您住在附近吗?)公司背景、公司背景、服务项目介绍1、更衣区、您成为我们会员后,可直接在我们前台领更衣箱的钥匙,然后到更衣区换您成为我们会员后,可直接在我们前台领更衣箱的钥匙,衣服,健身结束后我们为您提供了热水淋浴。
衣服,健身结束后我们为您提供了热水淋浴。
2、操房、您现在看见的是我们的主操房,您现在看见的是我们的主操房,操房面积有150 M2,自然采光,宽敞明亮。
,自然采光,宽敞明亮。
开设的课程有瑜伽、健美操等课程(您对什么课程感兴趣?开设的课程有瑜伽、健美操等课程(您对什么课程感兴趣?以前有没有参加过健身?)健身?)3、健身区、我们的无氧器械(单功能器械)是采用全国冠军品牌,我们的无氧器械(单功能器械)是采用全国冠军品牌,青岛英派斯的最新IT 系列。
LILO(LInux LOader)引导加载程序一.什么是引导加载程序最简单地讲,引导加载程序(Boot Loader)会引导操作系统。
当机器引导它的操作系统时,BIOS会读取引导介质上最前面的512字节(即人们所知的主引导记录(Master Boot Record,MBR))。
在单一的MBR中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会出现问题,所以需要更灵活的引导加载程序。
主引导记录本身要包含两类内容-部分(或全部)引导加载程序,以及分区表(其中包含关于介质其余部分如何划分为分区的信息)。
当BIOS引导时,它会寻找硬盘驱动器第一个扇区(MBR)中存储的数据;BIOS使用存储在MBR中的数据激活引导加载程序。
由于BIOS只能访问很少量的数据,所以大部分引导加载程序分两个阶段进行引导。
在引导的第一个阶段中,BIOS引导一部分引导加载程序,即初始程序加载程序(initial program loader,IPL)。
IPL查询分区表,从而能够加载位于不同介质上任意位置的数据。
首先通过这步操作来定位第二阶段引导加载程序(其中包含加载程序的其余部分)。
第二阶段引导加载程序是引导加载程序的主体;很多人认为这才是引导加载程序的真正部分。
它包含加载程序更需要磁盘空间的部分,比如用户界面和内核引导程序。
从简单的命令行到绘声绘色的GUI,这些用户界面的范围很广泛。
引导加载通常配置为两种方式的其中之一:要么是作为主引导加载程序(primary boot loader),要么是作为二级引导加载程序(secondary boot loader)。
主引导程序是安装在MBR上的第一阶段引导加载程序。
二级引导加载程序是安装在可引导分区的第一阶段引导加载程序。
必须在MBR上安装单独的引导加载程序,并配置它将控制权转交给二级引导加载程序。
很多较新的Linux引导加载程序特别实用,因为它们提供了不同程度的交互,比如高级的GUI和加密的密码,以及通过选择操作系统进行引导的能力。
引导加载程序引导加载程序引导加载程序是供应商专有的映像,负责在设备上启动内核。
它会监护设备状态,负责初始化以及绑定其信任根。
引导加载程序由许多部分组成,包括启动画⾯。
要开始启动,引导加载程序可能会直接将⼀个新映像刷写到相应的分区中,也可能会使⽤recovery开始重新刷写过程,该过程与 OTA 的操作过程⼀致。
⼀些设备制造商会创建多部分引导加载程序,然后将它们组合到⼀个 bootloader.img ⽂件中。
在刷写时,引导加载程序会提取各个引导加载程序并刷写所有这些引导加载程序。
最重要的是,引导加载程序会在将执⾏⼯作移到内核之前先验证 boot 分区和 recovery 分区的完整性,并显⽰部分中指定的警告。
规范化启动原因Android 9 对引导加载程序启动原因规范进⾏了以下更改。
引导加载程序使⽤专⽤的硬件和内存资源来确定设备重新启动的原因,然后将androidboot.bootreason=<reason>添加到⽤于启动设备的 Android 内核命令⾏中,以传达这⼀决定。
然后,init会转换此命令⾏,使其传播到 Android 属性bootloader_boot_reason_prop (ro.boot.bootreason) 中。
之前的 Android 版本中指定的启动原因格式如下:不使⽤空格,全部为⼩写字母,只有⾮常少的要求(例如报告kernel_panic、watchdog、cold/warm/hard),并且允许其他特殊原因。
这种宽松的规范导致出现了成百上千个⾃定义启动原因字符串(有时毫⽆意义),进⽽造成了⽆法管理的情况。
到⽬前最新的 Android 版本发布之前,引导加载程序提交的近乎⽆法解析或毫⽆意义的内容急剧增加已经为bootloader_boot_reason_prop造成了合规性问题。
在开发 Android 9 版本中,Android 团队发现旧的bootloader_boot_reason_prop中内容会急剧增加,并且⽆法在系统运⾏时重写。
最小系统工作原理最小系统是指计算机系统中的最基础的工作单元,通常由处理器、存储器和系统总线构成。
最小系统的工作原理可以概括为以下几个步骤:1. 系统启动:当计算机电源开启时,系统会进入自检(Power-On Self-Test,POST)阶段,检测硬件是否正常工作。
如果检测通过,系统会加载存储器中的引导程序。
2. 引导程序加载:引导程序(Bootstrap Loader)位于存储器的特定位置,通常是存储器的第一个扇区。
引导程序的作用是加载操作系统或其他应用程序。
3. 操作系统加载:引导程序会根据预设的引导顺序(比如从硬盘、光盘或网络中加载)来加载操作系统。
操作系统是计算机系统的核心,负责管理硬件资源、提供用户接口等功能。
4. 硬件驱动加载:操作系统会加载相应的硬件驱动程序,以便与各种硬件设备进行通信。
硬件驱动程序负责将操作系统所发出的指令转化为硬件能够理解的信号。
5. 用户应用程序加载:操作系统会加载用户应用程序,使其能够在计算机系统中运行。
用户应用程序可以是办公软件、游戏、浏览器等不同类型的软件。
6. 用户操作:一旦系统启动并加载完毕,用户可以通过输入设备(比如键盘、鼠标)与计算机进行交互。
用户的操作会被输入设备转化为相应的信号,然后由操作系统进行处理和响应。
7. 任务执行:根据用户的操作或预设的任务,系统会执行相应的任务。
这包括对数据的处理、计算、存储、通信等操作。
8. 系统关闭:在用户完成操作后,可以选择关闭计算机系统。
系统会依次关闭正在运行的应用程序和内核功能,并保存用户数据。
最终,系统将停止运行并关闭电源。
最小系统的工作原理是一个复杂的过程,涉及多个硬件和软件组件的协同工作。
只有各个组件正常工作并有效地协调合作,计算机系统才能正常工作并完成用户的任务。
计算机引导程序
计算机引导程序,又称为启动程序或引导加载程序(Bootloader),是计算机系统启动过程中的第一个程序。
它通常存放在计算机的主引导扇区(MBR)或EFI系统分区的引导分区中。
计算机引导程序的作用是加载操作系统内核或系统引导加载器(Bootloader Loader),并将控制权转交给它们。
它在计算机系统启动过程中扮演着非常重要的角色。
如果引导程序出现错误或损坏,系统将无法正常启动。
引导程序通常具有以下功能:
1.初始化系统硬件,如处理器、内存、磁盘等。
2.搜索并加载操作系统内核或系统引导加载器到内存中。
3.提供菜单界面,用户可以选择要启动的操作系统或启动参数。
4.处理系统错误和异常情况。
常见的计算机引导程序有GRUB、LILO、Windows Boot Manager等。
其中,GRUB是最流行的引导程序之一,它支持多操作系统的启动,并提供丰富的配置选项。
BootLoader引导程序一、实验目的1.学会配置linux下的minicom和windows下的超级终端2.了解bootloader的基本概念和框架结构3.了解bootloader引导操作系统的过程4.掌握bootloader程序的编译方法5.掌握bootloader程序的使用方法二、实验内容1. 学习x-loader 作用和编译过程2.学习uboot作用和编译过程3.学习bootloader的操作三、实验设备PentiumII以上的PC机, LINUX操作系统四、BOOTLOADER程序说明完整的系统由x-loader、u-boot、kernel(内核)、rootfs(根文件系统)组成,x-loader 是一级引导程序,其作用是初始化CPU,拷贝u-boot到内存,然后把控制权交给u-boot。
当OMAP3530上电时,memory controller(内存控制器)还未初始化,这个任务便由完成的x-loader。
初始化外部RAM控制器,把u-boot读到外部RAM,之后把控制入口交给。
u-boot 是二级引导程序,其作用主要是引导内核,提供映像更新,同用户进行交互。
系统结构图如下:1. BootLoader的作用在嵌入式系统中,BootLoader的作用与PC机上的BIOS类似,其主要作用:(1)初始化硬件设备;(2)建立内存空间的映射图;(3)完成内核的加载,为内核设置启动参数。
通过BootLoader可以完成对系统板上的主要部件如CPU、SDRAM、Flash、串行口等进行初始化,也可以下载文件到系统板上,对Flash进行擦除与编程。
当运行操作系统时,它会在操作系统内核运行之前运行,通过它,可以分配内存空间的映射,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统准备好正确的环境。
通常,BootLoader 是依赖于硬件而实现的,特别是在嵌入式系统中。
因此,在嵌入式系统里建立一个通用的 BootLoader 几乎是不可能的,不同的处理器架构都有不同的BootLoader。
考场引导员职责及工作程序职责:协助考场协调员做好本考场考生引领、抽签、身份核对和考务材料领取、保管、移交等工作。
引领应试人员进入备考室;核对应试人员身份,引领应试人员进入面试考场;引领考生离场。
工作程序:一、上午7:00和下午13:00,配合考场协调员组织考生在候考室按指定位置就座,验证考生资格(“准考证、面试通知单、健康承诺书”,缺一不可),收取整理考生全部通信工具、电子储存记忆录放等设备。
二、协助考场协调员将考生通信工具、电子储存记忆录放等设备交候考室工作人员统一保管。
三、协助考场协调员按照分组进行抽签,登记《面试抽签登记表》。
四、保管1份《面试抽签登记表》,不得向任何人透露面试人员抽签顺序号和有关信息。
五、协助考场协调员安排考生按照抽签确定的顺序就座。
六、上午8:15和下午14:15,按抽签顺序核查第1号考生的个人信息,核对无误后将该考生引导至考场备考室指定位置等候,将引导牌放在备考室合适位置,然后到备考室门口指定位置就座,同时负责备考室的考生管理工作。
如第1号考生缺考,则按考生抽签顺序引导下一名考生到备考室等候。
七、开考后,接考场协调员的通知,再次确认面试考生,将考生引导至指定考场门口,交给考场协调员送入考场。
八、考生进入考场后,到候考室在候考室工作人员配合下核对考生身份,按考生抽签顺序将下一名考生引导至考场所在楼层的备考室等候。
九、待上一个考生面试结束被楼层引导员带离后,接考场协调员的通知,引导备考室内的考生到考场门口,交给考场协调员送入考场。
重复第八项的工作。
十、本场面试最后1个考生进入考场后,到候考室领取该考场《面试抽签登记表》本考场面试人员名单等材料,到备考室取走引导牌,等待考场协调员通知。
十一、在考场协调员的配合下,到休息室按抽签顺序组织考生排队,将全部考生从休息室引导至面试考场(考场引导员不进入考场)。
十二、主考官宣布成绩后,把本考场面试签号、《面试抽签登记表》、《面试人员名单》等材料交考场协调员。
Win系统引导流程前言:之前在培训群已经说过一次引导的知识了,不过说得不怎么详细并且很多童鞋还是不知道,所以这个周末抽空写一写。
目前市面上的电脑均采用UEFI+GPT这种引导方式了(UEFI是什么可以参照我半年前发的文档),那UEFI+GPT有什么变化呢?最明显的就是那些U盘启动工具完全引导不了(当然目前已经成熟了,很少不支持UEFI引导了);当你以为是ghost的原因,无奈翻出一只win7的光盘,发现怎么还是不能引导?这究竟什么回事、难道中国反垄断到了高潮、OEM厂商全线不支持微软?真的没了微软,难道我们就只能敲命令了么?怎么可能吖,原因就在于只有win 7 SP1 64位才支持UEFI引导;好像跑题了(擦..其实我也不知道UEFI+GPT是什么渣渣,我就跑出来装装B 的);要了解UEFI是怎么引导的吗?那咱们先回顾下历史,说说目前大部分人采用的BIOS+MBR;那UEFI+GPT的引导呢,别急,我肯定会说的(大概等到我还了台支持UEFI引导的电脑吧←_←我去,这要等到牛年马月吖..没事咱们有盆神)。
BIOS+MBR开机引导流程:下面介绍BIOS+MBR的引导流程,我会解释下每一个阶段系统是在干什么的,做一个大概的描述;说一下修复引导程序是干啥的、以及说说激活软件的是怎么一回事;我们先搞清楚一些概念..下面说的肯定存在一些我个人的误解,不保证全部正确,但我得让你知道我在说什么。
POST(Power On Self Test),加电自检:这是BIOS里面的一个基本且必要的功能,对计算机各种硬件进行检测。
有问题就会输出在屏幕上或者发出报警的声音;流程我就不说了,参考后面吧---link;报警音处理群共享也有;MBR(Master Boot record),主引导记录:位于磁盘0柱面、0磁头、1扇区;MBR由三部分组成:主引导程序,DPT(Disk Partition table),硬盘标识(好像是55AA,忘记了,想知道的童鞋百度去吧);其中有一个446byte的东西百度百科管他叫主引导程序;我们深入讨论也把这部分叫做MBR(实际上叫什么还真不知道),DPT磁盘分区表占64个字节;硬盘标识占2个字节;第一扇区的512字节就这样分配完了;PBR(Partition Boot record),分区引导记录:这货存在于每个分区的开始位置的第一扇区,负责记录分区引导记录(这句话都上去怎么那么别扭……)Bootmgr和NTLDRBootmgr是boot manger的缩写,顾名思义,启动管理器;Bootmgr位于引导分区的根目录下NTLDR是NT loader的缩写,NT系统加载工具这个是NT5内核的价值文件BCD与boot.iniBCD是boot configuration data的缩写;BCD位于系统盘\boot里面,Boot.ini这个是一个配置文件。
28335使用串口烧写程序串口烧写是一种相对较方便的烧写方式,相对于仿真器或是 CAN 烧写,相对于 仿真器或是USB 转CAN 的设备,串口是一种非常廉价的烧写方式,而且也不需要安装 专业的集成开发环境 CCS 等,但是不能实现在线调试,因此也只适用于程序基本不用 再调整或大批量的场合。
F28335的存储器映射图如下: PhOCfcStart Addma-•S 4B 33 -C I E 4W w m pD x w !一H才 OntKl (»DCi Q H 04 00轴加如ihcw mooONOO CEoe"04 3QQ«OwM 整対< D H IM HOC O M OD 7000D H M D N « Ml»QxOO BOHO6 切teM M040■帥 EfiO«D M O1 3000X33 FF1F8如 3« OCM «i3« OOM «M »9i» oew 』taJF A4MI< O JI 3F»W Om-SF rnw0i3F FFCDE B I MA I Memory X1NTF DlOa 40<M叭 Qi $OQQD I 1DOOCHI Dsl9 ODOI U«3D ODCK)D B C I 9pflc«Frag SfNKJtMO - R*Mi :32i 37| 传H VWAP = qjW 5ARAM ”民 Xtfl|i Ht MRAM <1K XFtrlphwtl Fr^me tR*&er¥mlFIE VfrCICrf - RAM (Eiubi«d rf VMAP= 1B EHPliE -1)Rfrlphnl Frvnw PR«>$iRartphar^l Frnm4 羊 P*{MWdfCM 此 AccoH —FPertpherHi Fr^mv 1曲aglw ・l FrsHMi 2CPYfirtMlfid.«l!B -XZeSD F Accni-iiMiU SAAARt (4K N .14, SfiCiM Z^ne Dual Mapped 1 LI &ARAM |4K rt 1ft. Swura Zan« Dual Mdpp«f3| L2 SALAMI I-4KK-1E, Sfiuifira 2Arw, tlusl Happed| L3 aARAKI MK K IB. 3«£W *Dual MappedlU MFUM MM K 1« DMAAcc4«lHt|U IWFtAM 0MAAcw«imL4 MFEAH HKMlfi, DMA 島笔awl 聊巒| L7 SAIUMpnu Ac pnBlbl>9|>Rj?5<FwdFLASHM H 16, S*Cuf#Zan«]m-bitPav«wv<4 札Mirv 血ADC Catabration DatilTl ■吕音User OTP |1IC K 1E Seem ZcincpILO S^IUM (4K H 1 民Zona Ov ・l Jpp«褂L1 SARAMi |4K 覽 S«urQ Z JOM Dual KLappadlLI SARANI (« A IS. S H KL P T-9 ZOM WL3 SARAH [4K ■. 14. *5 Z^na pu 卍 febipiMd^R«B4iFirtd*fiooC R£CM 伸|C K 16JRRC1M - ROM a a 切 |E M IM H iP VMAP* 1 ENPIE » D|XIWTF Z«ne &[1 M B 16. XZCS J EKDM A AcCrteAie} XINTF 704 7 (IMS H«a XZC57b'DNIABOOTROM 是一块8K X 16的只读存储器,位于地址空间0x3FE000〜0x3FFFFF ,片内BOOTROM 在出厂时固化了引导加载程序以及定点和浮点数据表,片上 BOOTROM 的存储映射如下图所示: figure 1-1. Memory Map of On-Chip ROM 3FEOOO3F EBDC 3F F27C 3FF54C3F F9EE 3F FFB93FFFCO3FFFFFData space Program spaceIQ math tablesFPU math tables ReservedBoot loader functionsReserved ROM version ROM checksum Reset vector CPU vector tnble1 .内BOOT ROM 数学表: 在BOOT ROM 中保留了 4K X 16位空间,用以存放浮点和IQ 数据公式表,这些数据 公式表有助于改善性能和节省 SARAM 空间。
电脑开机后出现引导程序损坏该怎么办当我们满心欢喜地打开电脑,准备开始一天的工作或娱乐时,却遭遇了电脑开机后显示引导程序损坏的提示,这无疑会让人感到十分困扰。
别着急,下面就让我们一起来了解一下遇到这种情况应该如何应对。
首先,我们需要明白什么是引导程序。
引导程序就像是电脑启动的“引路人”,它负责在开机时加载操作系统,并将控制权交给操作系统,让电脑能够正常运行。
当引导程序损坏时,电脑就无法正常启动,进入操作系统。
那么,是什么原因导致引导程序损坏呢?这可能有多种因素。
比如,突然断电、病毒攻击、硬盘故障、不正确的系统更新或操作失误等等。
了解了可能的原因,我们来看看具体的解决办法。
方法一:使用系统修复工具大多数操作系统都自带了修复工具,比如 Windows 系统的“自动修复”功能。
当电脑开机出现引导错误提示后,多次重启电脑,系统可能会自动进入修复模式。
在修复模式中,选择“自动修复”选项,系统会尝试自动修复引导程序的问题。
如果系统自动修复无法解决问题,我们还可以尝试使用系统安装盘或 U 盘启动盘进行修复。
插入安装盘或启动盘,重启电脑,进入 BIOS设置,将启动顺序设置为优先从安装盘或启动盘启动。
然后,在安装界面中选择“修复计算机”选项,根据提示进行操作。
方法二:重建引导记录(MBR)对于使用传统 BIOS 启动方式的电脑,如果引导程序损坏,重建主引导记录(MBR)可能是一个有效的解决办法。
我们可以使用一些第三方工具,如 DiskGenius 等。
运行该工具,选择需要修复的硬盘,然后点击“重建主引导记录(MBR)”按钮。
方法三:检查和修复硬盘错误硬盘出现坏道或其他错误也可能导致引导程序损坏。
我们可以使用Windows 自带的磁盘检查工具来检查和修复硬盘错误。
打开“此电脑”,右键点击需要检查的硬盘,选择“属性”,在“工具”选项卡中点击“检查”按钮。
如果硬盘问题较为严重,可能需要使用更专业的硬盘检测和修复工具,如 HD Tune 等。
操作系统引导程序的类型及硬盘分区概念一、写入主引导记录MBR的引导类型有:1、GRUB4DOS MBR(grldr.mbr)灵活而强大的引导程序,具有多种引导方式,可引导多种操作系统或映像文件。
(占用18个扇区)功能:其MBR引导代码并非固定地指向某个分区,而是搜索所有分区,查找并加载grldr,只要某分区上存有一份grldr,就能启动。
而且安装时可以将原MBR备份,启动时如果找不到grldr,便自动加载备份的MBR。
2、UltraISO USB-HDD+增强的USB-HDD,兼容USB-HDD方式.(占用一个扇区)功能:UltraISO的MBR的功能是从活动分区(就是激活的分区)的引导扇区启动,这点上与fdisk的mbr功能相同。
3、Windows NT 5.X 默认引导程序功能:搜索并启动第一个激活的主分区。
(占用一个扇区)4、Windows NT 6.X 默认引导程序功能:搜索并启动第一个激活的主分区。
(占用一个扇区)5、UltraISO USB-ZIP+兼容USB-ZIP和USB-HDD方式。
(占一个扇区)功能:不确定6、Plop Boot Manager一个界面很酷的启动管理器,可实现从硬盘/软盘/光盘/USB磁盘启动(即使BIOS不支持)。
(占用62个扇区)功能:不确定7、Lvyanan1JF9K 引导程序无忧启动论坛Lvyanan原创。
可选中英文提示,可管理三个主分区及一个扩展分区的启动。
(占用两个扇区)二、写入分区引导记录PBR的引导类型有:1、GRUB4DOS(FAT/NTFS/Ext2)GRUB4DOS分区引导程序,引导根目录下的GRLDR。
然后GRLDR会从当前目录及其子目录寻找MENU.lst配置文件2、NTLDR引导程序(FAT/NTFS)Windows 2000/XP/2003引导程序,引导根目录下的NTLDR。
3、BOOTMGR 引导程序(FAT/NTFS)Windows Vista/2008/7 引导程序,引导根目录下的NTLDR或BOOTMGR(优先尝试BOOTMGR)。
引导程序
1:概述
计算机在开始启动的时候,首先运行BIOS程序,BIOS程序检测当前硬件。
完成后,根据CMOS中的关于驱动器启动顺序的设置,找到一个可用的驱动器来启动。
这里的驱动器包括软盘、光盘、硬盘等设备,但是为了简化问题,下面只讨论软盘驱动器或者硬盘驱动器的启动。
在软盘(硬盘)启动的过程中,最先是BOIS将软盘的首扇区(也就是0柱面,0头、1扇区)的512个字节的内容读到内存的7C00H的地方,然后CPU跳到7C00H(CS:IP=0000:7C00H?)处运行。
由于只有512个字节的大小,不可能放下一个操作系统的代码。
因此,这512个字节的代码一般是一个过渡性的代码,它主要由读软盘扇区指令构成,用来实现这样的一个功能:将操作系统的代码都读到内存中去,读完后再通过JMP指令跳到操作系统代码的入口地址,进一步运行程序。
习惯上,我们把保存在首扇区中的程序称为引导程序。
虽说引导程序一般是用来实现操作系统的引导的,的是但这并不是必要的;它可以是任何形式的代码,只要符合的一个条件:代码对应的机器代码不超过512个字节。
下面的引导程序演示代码就没有任何的读软盘指令,它只是不断的循环一个过程:接受并显示字符。
在最后,交代一下程序的运行软件环境:程序在XP编写、编译,在虚拟机下测试。
2:引导程序演示代码
2.1演示代码BOOT.ASM
.MODEL SMALL ;这个可以不用管
CODE SEGMENT
ASSUME CS:CODE,DS:CODE ; 数据段和代码段混合在一起了
ORG 7C00H
START: JMP START1
INFO DB 'A:\',0 ;提示信息
STR1 DB 80 DUP (0) ;接受键盘输入缓冲区
START1:
MOV AX,CODE
MOV DS,AX
;设置光标的位置,在屏幕的最后一行,屏幕行号范围0—24,列号范围0-79
MOV DH,24 ;行号
MOV DL,0 ;列号
MOV AH,2 ;子功能号
INT 10H
L1: MOV SI,OFFSET INFO
CALL DISP_STR ;显示提示信息
CALL GET_STR ;输入字符串,以回车结束输入
CALL CRLF ;换行
MOV SI,OFFSET STR1
CALL DISP_STR ;输出刚才从键盘中接受到的字符串
CALL CRLF
MOV SI,OFFSET STR1
CMP BYTE PTR [SI],0 ;如果直接回车,那么就退出程序
JZ EXIT
JMP L1
EXIT:
MOV AH,4CH
INT 21H
DISP_STR PROC ;显示字符串
CLD ;设置DF=0,给后面的串指令用
.WHILE BYTE PTR [SI] != 0 ;.while是汇编伪指令,功能和高级语言的while一样LODSB
MOV AH,0EH ;输出字符
INT 10H
.ENDW
RET
DISP_STR ENDP
CRLF PROC ;实现回车功能
;屏幕上卷一行
MOV CH,0
MOV CL,0
MOV DH,24
MOV DL,79
MOV AL,1
MOV AH,06H
MOV BH,7
INT 10H
;获得光标位置
MOV BH,0
MOV AH,3
INT 10H
;设置光标位置
MOV BH,0
MOV DL,0
MOV AH,02H
INT 10H
RET
CRLF ENDP
GET_STR PROC ;从键盘输入字符串
MOV SI,OFFSET STR1
GETS: MOV AH,0
INT 16H
.IF AL != 0DH ;如果输入的字符不是回车,就显示字符,并继续输入MOV [SI],AL
INC SI
MOV AH,0EH
INT 10H
JMP GETS
.ENDIF
MOV [SI],0
RET
GET_STR ENDP
CODE ENDS
END START
2.2说明
1)我们首先将上面的BOOT.ASM文件编译、连接为BOOT.EXE文件。
2)该程序可以在控制台上运行预览结果,按回车结束程序。
下面为运行的结果。
程序只处理字母、数字和回车的输入,对于控制字符、退格等并没有处理。
3.写引导程序
引导程序完成了,现在我们就要将引导程序boot.exe写入软盘的首扇区。
3.1 EXE的文件结构
EXE文件由2部分构成:一部分是头部信息,一部分是汇编代码对应的机器代码。
下面我们用Ultra Edit打开BOOT.EXE,查看EXE的结构
头部信息一般都是512个字节,以4D5A开始,包含了CS、DS、SS、SP等基本信息。
操作系统在加载的EXE程序的时候,根据这些信息进行重新定位。
Boot.exe程序的数据头部如下:
对于EXE头部说明,就讨论到这里,更具体的说明再另外讨论
机器代码部分是从200H处开始的,我们发现,在200H~~7DFFH中的
7C00H个字节的数据都是0,这是因为编译ORG 7C00H这个指令的时候
,后面的代码从7C00H处开始,前面的数据都没有定义,就用0来填充。
7E00H后面的数据才是我们要写入首扇区的数据,这些数据都是和START:标号后的汇编指令一一对应的,这些数据如下,图中圈起来的数据是由DB ‘A:\’,0和DB 80 dup(‘0’)生成的。
我们用DEBUG来查看boot.exe的内容,并和上面的对比一下.
对比DEBUG中的反汇编的结果,它是和上面的7E00H中的数据以及和BOOT.ASM中的代码是一致的。
在认真对比一下,还是有一个地方不同的。
在DEBUG中,如上图所示,二进制代码是B8D313H,而用Ultra Edit查看的是B80000H,这个区别是因为DEBUG是对BOOT.EXE重定位的结果,这个重定位是由操作系统来完成的。
我们在把boot.ex e7E00H后面的数据写入软盘首扇区。
然后设置从软盘引导,由BOIS读到将该内容读并跳到7C00H处,运行到7C56H 处的时候,CPU执行的机器代码是B80000,也就是运行MOV AX,0000这样一个指令,而不是DEBUG中显示的MOV AX,13D3H。
3.2写引导程序
简单来说,把boot.exe写入到首扇区只要经过下面几步就可以了
1: 打开boot.exe文件
2: 把文件指针移动到7E00H的地方
3: 把boot.exe后面的内容读出来
4: 关闭文件
5: 把读出来的内容写到软盘的首扇区去.
具体的代码可以自己实现,也可以查看WRBOOT。
ASM文件,对于这个文件,我就不做具体的解释了。
编译完成后,运行WRBOOT.EXE,在从软盘启动,就可以看到结果了。
要注意以下两点:
1.在编译连接WRBOOT。
ASM的时候,在注意你的BOOT.EXE程序放
置的路径,在程序中做相应调整。
2.在测试程序的时候,不要直接回车,因为那时侯系统还不可以处理mov
ax,4ch int 21h这样的一个DOS中断
3.3 一些细节问题
1:ORG 7C00H 的作用
在这个程序中,ORG 7C00H是一个非常重要、却经常会忽略的指令。
假如没有这个指令,程序可能可以运行,却得不到所希望的结果。
ORG 7C00H在程序中的影响体现在两个地方:
MOV SI,OFFSET INFO
MOV SI,OFFSET STR
我们由前面的DEBUG知道,这两个指令在原来的程序中实际上是MOV SI,7C02H
MOV SI,7C06H
如果少了ORG 7C00H,就变成了
MOV SI,02H
MOV SI,06H
这样的区别是很明显的。
但是ORG 7C00H对JMP 指令是没有影响的,JMP在这里的短跳转,它的机器语言的意思是(新的IP)<-当前IP+相对偏移。
2:关于55AAH
一般的引导程序最后的两个字节是55AAH,以用来给BOIS检测该扇区的代码否是引导程序(就象EXE的开始2个字节是4D5AH),然后BOIS才将控制权转到7C00H处。
但有些BOIS没有首先检测这两个字节,而首先运行代码的程序,就想我的程序的测试环境中,就没有把这两个字节写上,也可以运行。
但建议还是不要省略这两个字节。
关于BOIS、CMOS
计算机在启动的时候,首先由BOIS检测当前硬件,然后与CMOS存储器中的设置比较;如果结果正确,则将控制权交给硬盘主引导记录,启动操作系统。
BOIS检测和设置程序放在BOIS芯片中,而BOIS设置后的硬件参数等放在CMOS存储器中。
BOIS设置也包括因盘参数的设置。
有关BOIS和CMOS的一些基本概念,对写操作系统非常重要。
BOIS是指放在ROM芯片中的软件,CMOS是只可读写的RAM存储器。
一、CMOS的基本概念
CMOS是微机主板上的一快可读写的RAM芯片,一般有128字节或者256字节的容量,存放微机系统的时钟信息和硬盘配置等信息,它依靠系统电源供电,系统掉电后,储存的信息不会丢失。
CMOS存储器是作为一种I/O设备来实现与CPU交换信息的,CMOS占有两个I/O地址,70H为地址口,71H。