最近在读Linux的grub的stage1中看到“BIOS执行INT 0x19,加载MBR内容至0x7c00,然后跳转执行”,为什么一定是0x7c00这个地址. 作者刚好在下面推荐了这篇文件,刚好顺手记录一下.// 最下方有中文版,英语不好的同学可以跳到最下面 The mysteries arround "0x7C00" in x86 architecture bios bootloader Do you know "0x7C00", a magic number,…
tianpeng <再谈矩阵与矩阵乘法> 讲的也好 矩阵乘矩阵 这个结果是怎么算出来的? 第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3. 也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和. 怎么会有这么奇怪的规则? 矩阵的本质就是线性方程式,两者是一一对应关系.如果从线性方程式的角度,理解矩阵乘法就毫无难度.…
BIOS将MBR读入0x7C00地址处(x86平台下) https://www.cnblogs.com/jikebiancheng/p/6193953.html http://www.ruanyifeng.com/blog/2015/09/0x7c00.html https://www.glamenv-septzen.net/en/view/6 作者: 阮一峰 日期: 2015年9月28日 <计算机原理>课本说,启动时,主引导记录会存入内存地址0x7C00. 这个奇怪的地址,是怎么来的,课本就…
鸟哥私房菜书上内容: BIOS 搭配 MBR/GPT 的开机流程 在计算机概论里面我们有谈到那个可爱的BIOS与CMOS两个东西, CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个写入到主板上的一个固件(再次说明, 固件就是写入到硬件上的一个软件程序).这个BIOS就是在开机的时候,计算机系统会主动执行的第一个程序了! 接下来BIOS会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS会依据使用者的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置.…
很多用户在新买电脑,或是给已有电脑重装系统时都出现过怎么都无法引导U盘安装的情况.究其原因,还是没能搞清楚BIOS.MBR.UEFI和GPT的复杂关系.所以,今天小编就和大家分享一下它们之间的爱恨情仇吧. BIOS和UEFI 提起BIOS应该是无人不知无人不晓吧?而UEFI就是BIOS的升级版,它最大的特色就能可以把BIOS单调的蓝底白字或黑底白字替换为图文并茂的样式,可以通过鼠标点击进行设置,反正看起来就是很高大上的样子了. MBR和GPT MBR是传统的分区表类型,最大缺点是不支持容量大于2…
用了数十年的PC机主板架构是BIOS模式.但在2004年,微软和英特尔共同推出一种名为可扩展固件接口(EFI)的主板升级换代方案.EFI,即可扩展固件接口(Extensible Firmware Interface),EFI的位置很特殊,不像是BIOS那样是固件又是接口,EFI只是一个接口,位于操作系统与平台固件之间.到目前为止,现有的PC机主板绝大部分还是BIOS模式,EFI主板寥寥可数.MBR,主引导记录(Master Boot Record),也就是现有的硬盘分区模式.MBR分区的标准决定…
1.传统的主板就是传统 BIOS,可在使用 MBR 分区表的硬盘(俗称 MBR磁盘,就是传统常用的模式)上安装32或64位操作系统.同时也支持使用 GUID 分区表的硬盘(俗称GPT磁盘),但该硬盘上不能安装操作系统. 2.新型主板使用 UEFI BIOS,只能在使用 GUID 分区表的硬盘(俗称GPT磁盘)上安装64位操作系统.同时也支持 MBR 磁盘,但该硬盘上不能安装操作系统. 结论:无论主板是传统 BIOS,还是 UEFI BIOS,都可以同时使用 GPT 磁盘与 MBR 磁盘,但要安装…
OpenBSD引导的第二部PBR,也是活动分区的一个扇区的代码,由第一步的MBR加载到0x7C00处,manpage里详细的讲解了过程和大致实现 biosboot(8) (http://man.openbsd.org/OpenBSD-6.0/man8/i386/biosboot.8),代码在sys/arch/i386/stand/biosboot/目录下,主要就是其中的biosboot.S:和mbr.S一样,在代码的开头清晰的介绍了该代码要做的事情: /* * Memory layout: *…
关于ISO.WIM.GHO三者的正确理解. ISO(Isolation)文件一般以ISO为扩展名,是复制光盘上全部信息而形成的镜像文件. WIM是英文Microsoft Windows Imaging Format(WIM)的简称,它是Windows基于文件的映像格式.WIM 映像格式并非现在相当常见的基于扇区的映像格式,它是基于文件的.WIM 文件存储一个或多个操作系统的副本(称为映像).可以在未启动操作系统的情况下,离线添加和删除驱动程序.更新内容以及 Windows 组件. GHO是Gho…
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 01 前言 在学习 Linux 系统启动原理之前,我们先了解下与操作系统启动相关的几个概念. 02 与操作系统启动相关的几个概念 不管是 Windows 还是 Linux 操作系统,底层设备一般均为物理硬件,操作系统启动之前会对硬件进行检测,然后硬盘引导启动操作系统,以下是与操作系统启动相关的几个概念. 2.1 BIOS BIOS(Basic Input Output System),直译成中文名称就是"基本输入输出系统…
MBR的介绍网上很多,没错,就那个最后以0x55AA结尾的512字节的引导块,OpenBSD提供了引导MBR实现:OpenBSD在x86上的引导过程为MBR --> PBR --> boot --> kernel,其整体过程在boot_i386(8) (http://man.openbsd.org/OpenBSD-6.0/man8/i386/boot_i386.8)中有详细讲解,让我们直接上代码吧,MBR的代码在sys/arch/i386/stand/mbr/目录下,主要就是其中的mbr…
安全的对抗首先在权限方面,权限高的进程对权限低的权限就是就是降维打击,无往不利.当权限相同时,启动得早便为王.所谓的bootkit也就是基于这个思路设计的一种复杂病毒.它优先于Windows系统启动,自然也就优先于杀毒软件启动的时间.鉴于国内对bootkit的文章不多,本文想介绍一下bootkit的具体技术细节.为了保证内容的梯度和完整度,其中基于MBR的rootkit分别以WindowsXp和Win7为例,而基于UEFI的bootkit则可以在Windows7以上版本(7,8,10)的运行.…
以下是读本书第二章的收获. 记得我大学学习操作系统的时候会遇到一些奇奇怪怪的问题,因为觉得问题太奇怪了,所以羞于问老师.诸如ROM到底是个什么东西:如果用内存映射的方式访问外部设备,是不是内存条里专门有块内存空间来用于访问供外部设备,是不是先访问内存条这个地址,然后就直接跳到访问这个设备了等等.幸运的是,这本书都给我一一解答了. 实际上,ROM是下图这样的一种只读存储器(取自百度百科),是一种即使没有通电,也能保存信息的存储器.ROM其实是既可以读也可以写,只不过由于历史原因统称只读存储器.RO…
目录 一.前景回顾 二.写一个粗略的MBR 三.运行测试 一.前景回顾 上回说到,开机的启动过程就是当时Intel和BIOS等硬件厂商所制定的规则,现在我们来回顾一下有如下三点: 1.按下开机键后,CPU将cs:ip寄存器初始化为0xf000:0xfff0,这个位置是BIOS程序的入口处,这个位置存放的代码是jmp far f000:e05b,通过这行代码CPU又将cs:ip寄存器初始化为0xf000:0xe05b,这里才是BIOS真正开始执行的地方. 2.BIOS执行了一系列的硬件检测工作和创…
在前篇随笔中,已经谈到了CMOS与BIOS,CMOS是记录各项硬件参数(包括系统时间.设备的I/O地址.CPU的电压和频率等)且嵌入到主板上面的存储器,BIOS是一个写入到主板上的韧体(韧体是写入到硬件上的一个软件程序). 这个BIOS是在开机的时候计算机系统会主动执行的第一个程序. 接下来,BIOS会去分析计算机里面有哪些存储设备,以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区中的主引导分区(Master Boot Record,MBR)位置.MBR…
硬盘的0柱面.0磁头.1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR).该记录占用512个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区. 1.MBR的读取 硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它.但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取. 用INT13H的读磁盘扇区功能的调…
主引导扇区主引导扇区位于整个硬盘的0柱面0磁头1扇区{(柱面,磁头,扇区)|(0,0,1)},bios在执行自己固有的程序以后就会jump到MBR中的第一 条指令.将系统的控制权交由mbr来执行.主引导扇区主要由三部分组成:主引导记录 MBR(Master Boot Record或者Main Boot Record).硬盘分区表 DPT(Disk Partition Table)和结束标志字三大部分组成. 对于硬盘而言,一个扇区可能的字节数为128×2n (n=0,1,2,3).大多情况下,取n…
1. 什么是BOOT? BOOT其实是你按开机键之后,在电脑微软操作系统运行之前就自动运行的一段小程序.表象上就是windows引导画面之前那些黑屏蓝屏的英文那个阶段就是BOOT了.通过这段小程序,它就可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境. 2. 什么是BIOS? BIOS它其实也是在电脑里的微软系统运行之前,但是BOOT出现后加载运行的一个预启动的操作环境程序,严格来算是软件.是一组固化到计算机内主板上一…
UEFI.GPT.MBR是什么?这些专业术语不难理解,UEFI属于主板类名词,其作用类似于BIOS.GPT.MBR则属于硬盘类名词,它们的作用类似一艘航母的骨架,有了这个骨架,我们才可以进行细致到诸如C.D.E等盘符的分区. 全新硬盘在磁盘管理模式下需进行MBR或GPT选择 一块硬盘接驳主机之后,它的首要任务建立分区列表,分区列表有MBR和GPT两种,其中MBR分区列表支持最大2TB硬盘,GPT分区列表支持最大128PB(1PB=1024TB). 名词解释: 磁盘管理模式:MBR分区列表    …
硬盘(MBR磁盘)分区基本认识+Windows启动原理 大家常会看到硬盘分区中这样的几种说法:系统分区.启动分区.活动分区.主分区.拓展分区.逻辑分区,MBR.PBR.DPT.主引导扇区等.尤其是看到很多误导后,更会云里雾里,现在我力求用最简明的语言阐清几者之间的关系.若有错误之处还请不吝指出. 首先,每个独立的硬盘都只有一个主引导扇区MBR(共512字节),记录着硬盘分区的信息.主引导扇区包括:BOOT LOADER(主引导程序,446字节).DPT(硬盘分区表,64字节).MN(幻数,2字节…
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构.它是可扩展固件接口标准的一部分,用来替代BIOS中的主开机纪录分区表.但因为MBR分区表不支持容量大于2.2TB(2.2 × 1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表.GPT分区表支持最多9.4ZB(9.4 × 1021字节)的硬盘和分区. VMware Workstation 8 默认是BIOS方式,通过修改虚拟机系统文件夹下的vmx文件…
在前篇随笔中,已经谈到了CMOS与BIOS,CMOS是记录各项硬件参数(包括系统时间.设备的I/O地址.CPU的电压和频率等)且嵌入到主板上面的存储器,BIOS是一个写入到主板上的韧体(韧体是写入到硬件上的一个软件程序). 这个BIOS是在开机的时候计算机系统会主动执行的第一个程序. 接下来,BIOS会去分析计算机里面有哪些存储设备,以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区中的主引导分区(Master Boot Record,MBR)位置.MBR…
硬盘结构硬盘有很多盘片组成,每个盘片的每个面都有一个读写磁头.如果有N个盘片.就有2N个面,对应2N个磁头(Heads),从0.1.2开始编号.每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0.1.2…….每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的容量是512byte,并按照一定规则编号为1.2.3……形成Cylinders×Heads×Sector个扇区. 主引导扇区主引导扇区位于整个硬盘的0柱面0磁头1扇区…
Legacy(历史的,遗留的,传统的)和UEFI指的是系统引导方式(Legacy为传统BIOS,UEFI为新式BIOS),MBR和GPT指的是磁盘分区表类型. 一般情况下都是Legacy+MBR, UEFI+GPT这两种组合.但Legacy+GPT,UEFI+MBR也可以实现. Legacy用的是8086汇编,UEFI 99%以上用C,UEFI的APP和Drives可以用C/C++. 64位的UEFI固件是64位的操作系统(少数二合一平板用32位UEFI固件的可以忽略不计),Legacy是16位…
启动流程: BIOS ——> MBR(主引导记录,找到系统在哪个分区) ——> boot loader(grub) ——>kernel(内核)——>进入启动级别init 硬盘的最小读取单位是一个扇区,一个扇区大小是512字节 查看操作系统的版本:cat /etc/redhat-release 查看内核版本:uname -r 查看内核信息:uname -a 系统的启动级别: init 0:关机 init 1:单用户模式,只能root用户登录的模式,可以直接跳过密码 init 2:多用…
我们已经使用BIOS超过了二十年.可是直到今天还有许多朋友不知道BIOS到底是什么,以及它主要做些什么事情,它在整个个人计算机之中所处的地位如何.事实上,BIOS是整个计算机系统中最重要的底层系统软件.二十多年来,中国的程序员们纷纷忽略了BIOS,或者由BIOS衍生出的开发技术,相反,我们对如何调整一两个BIOS设置津津乐道.今天,BIOS业界开始悄悄的变革,EFI或者UEFI的到来即将改变世界,从而彻底改变我们对过去的计算机启动过程的认识.但是我们中国的开发者们仍然在谈论JAVA或者.NET,…
以下是读本书第三章的收获. 如何知道一个源程序的各符号(指令和变量)地址?简单来说,地址就是该符号偏移文件开头的距离,符号的地址是按顺序编排的,所以两个相邻的符号,其地址也是相邻的.对于指令来说,指令的地址=上一个指令的地址+上一个指令的大小,最初的符号地址为0,可以根据此公式推算出所有符号的地址. section称为节,它是提供给程序员编排程序用的,我们可以将一段读取字符串的代码放在section A下,将读取硬盘的代码放进section B下,可以给A,B换成一个更具体的名字,来提高可读性.…
目录 一.前景回顾 二.改写MBR 三.实现loader 一.前景回顾 在之前我们说到,MBR的作用便是加载操作系统内核到指定位置.而MBR需要通过读取硬盘来获得操作系统内核.在上一回我们已经讲解了硬盘的工作原理和读取方法,本回便开始初步完善我们的MBR,使之具有读取硬盘的功能. 二.改写MBR 我们的MBR受限于512字节大小,在这么小的空间没法为内核准备好环境,更没法将内核加载到内存中运行.所以我们需要在另一个程序中完成初始化环境及加载内核的任务,这个程序我们称之为loader,即加载器.l…
日期:2019/5/22 关键词:操作系统:OS:保护模式:A20地址线激活:分页开启:二级页表的设置 PS:OSLAB实验课的整理. 本文主要内容是分析操作系统中一个简易的MBR. 建议先阅读:https://www.cnblogs.com/sinkinben/p/10888599.html 宏定义和数据定义 %define CR0_PE      (1 << 0) %define CR0_MP      (1 << 1) %define CR0_EM      (1 <&…
日期:2019/5/18 12:00 内容:操作系统实验作业:x86:IA-32:实模式与保护模式. PS:如果我们上的是同一门课,有借鉴代码的铁汁请留言告知嗷.只是作业笔记,不推荐学习. 一.实模式 众所周知,机器启动时都是处于实模式状态的.8多说,先看看今天的作业. 1.1 BIOS中断打印字符串 这是一个幼儿园版本的主引导记录(MBR),输出一个字符串,结合附录INT中断说明来看. org 0x7c00这个表示程序加载到物理内存的起始地址0x7c00,关于0x7c00请看附录. org 0…