linux boot分区有什么用,/ boot分区的真正作用是什么?

射门很难

引导...好吧...这确实是最难的部分。每次启动计算机时,它基本上都会重新适应。它熟悉其各个部分,并且满足每个部分都具有功能。但可以说,它每次都要从自己的引导程序中拉起自己。

在设计启动过程时,技巧是逐步启动计算机。您的启动必须快速且可靠,并且每次都必须处于完全未知的环境中。我什至不会冒险进行实模式/保护模式的对话(这并不是说我什至可以),但是启动时还有很多事情要做。每次计算机将其各种组件同化时,它就会分步进行。其中最关键的一点可能是从执行板载代码到执行磁盘上代码,换句话说,就是内核exec。这是固件(表面上)投降到操作系统的时间。

很多年前情况并非如此。它曾经是BIOS,实际上是Basic In / Out(基本输入/输出)-常规程序会调用固件来进行诸如绘制屏幕和访问磁盘之类的操作。这些被称为中断 -旧帽子可能会为他们为新的点矩阵或USR分配IRQ时经常发现的快感而记住得最好。

INT13H

BIOS作为磁盘访问服务提供的是中断(或称为INT汇编语言)13H系列功能。今天,它们甚至在引导过程中仍用于BIOS系统,以实现从固件到磁盘的跳转。

BIOS系统将检查找到的每个磁盘的前几个字节,并寻找它识别为主引导记录(或MBR)的模式。这是已有数十年历史的事实上的标准,包括一些写入磁盘头的原始可执行二进制文件。MBR将BIOS磁盘标记为可引导。当找到一个时,它将停止检查,因此实际上,您所获得的就是没有一些狡猾的诡计。当它找到一个时,它将其映射到内存并执行它(在实模式下,但我仍然不去那里)。

执行的MBR几乎绝对不是您的系统内核- 在该部门中512字节(给定或获取)将毫无用处。这可能是一个引导加载程序 -一种专门为克服BIOS许多寻址限制之一而设计的程序-特别是它根本不了解任何类型的文件系统。

当引导加载程序读入实际内核并在内存中执行它时(正如我们所有人每次祈祷的那样),引导加载程序可能会通过INT13H中断调用来询问BIOS 。如果不是这样,那么许多高级引导加载程序都将以传统的方式挂载文件系统并以另一种方式执行代码-那么,如果没有一INT13H两个引导加载程序的话,这种引导加载程序的可能性就很小。引导加载程序通常必须对自身(或自身的各个阶段)进行链加载,因为首先分配给它们的512字节甚至不适合其需求。

鸡肉和鸡蛋

我知道,所有这些都是讨论磁盘的一种round回方式,但是到此为止,应该已经很清楚地认识到,主要问题(可能称为“ 鸡与蛋”类型)正在访问包含程序指令的磁盘。关于如何访问磁盘。解决此问题的关键是固件 -甚至在EFI系统上固件也将以截然不同的方式存在-固件是否是引导链中最重要的环节,无论是否脆弱。

您会看到,一旦内核执行完毕,并且启动了用于访问和控制硬件的所有无数例程,所有这些问题都会消失(或者至少会有所改变),因为现代OS可以完全控制系统,但是直到它们执行该操作为止,系统的限制才扩展到固件允许的范围。这说明了很多-自INT13H8086 以来,BIOS并没有太大变化。该调用是8086的原始版本。是的,有(无数)种扩展,当然还有hack,但是创新……?

越来越好

BIOS的大多数更改充其量只是绷带。它曾经是一个硬盘,必须进行物理映射- 在将数据存储到其中或从中检索数据时,会参考其几何结构的各个方面。最终,常规硬盘的大小增长到了无法承受的程度。甚至只是抽象映射对于BIOS 来说也包含太多信息。由于它只能在实模式下运行,因此每个内存寄存器的BIOS限制为1 MB。膨胀柱形图要大得多,或者使它的任何一个属性都比可以解决的位数大很多,BIOS就会字面上丢失-越界。

这个障碍已经被克服和打破了很多次。每次地图以某种更新,聪明,不太准确的方式进行抽象和编码时。因此,如今,BIOS实际上不可能精确地映射驱动器。现在,逻辑块寻址已成为事实上的标准,尽管某些圆柱体/头部/扇区(或CHS)转换仍然是必需的。主板固件失去了准确性/责任感,这些扩展已经抽象化并添加到磁盘固件职责中以填补空白。

您的问题中引用的就是这种猫猫游戏。当BIOS由于其绝对大小而无法理解某个点之外的磁盘时,那么您可能希望其在引导时为您检索的任何数据(如引导加载程序或内核)最好不要位于该点之外。这是哪里/boot来的。

可能实际上更好

幸运的是,这些天来这些事情与BIOS的淘汰无关。它已经过去了30年,但在过去几年中已被UEFI (或EFI 2.0)标准大大取代。UEFI 从一开始就提供挂载,它在保护模式下初始化,它结合了自己的引导加载程序,它提供了可重新启动的持久性闪存变量存储,它可以处理一些zetabyte或每个磁盘的内容……其他。它远非完美,但相对于其前身而言是一个巨大的改进。

当您考虑到所有这些都必须由OS内核来处理时,甚至涉及磁盘加密或分层文件系统的专用引导程序的参数也变得平坦,并且如果在引导时提供了挂载,则您总是很清楚-着手执行(特别是考虑到Linux内核,在其默认配置下,其自身是EFI可执行的)。

因此,一个单独的/boot分区可能不会引起您的过多关注,如果您使用的是EFI系统,则无论如何,您可能已经在EFI系统分区中有了一个模拟,因为这是引导EFI模式的必要条件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内存颗粒位宽和容量_64M的SDRAM颗粒 一般内存是多大的?

内存颗粒识别存储颗粒主要有这样的一些品牌:美国的Micron(美光)、德国的Infineon(英飞凌);韩国的SAMSUNG(三星)、HY(现代);日本的NEC(日本电气)、Hitachi(日立)、Mitsubishi(三菱)、Toshiba(东芝);台湾的EilteMT、ESMT(晶豪)、Etr…

linux ios开发环境,iOS开发环境搭建(Linux版)

iOS开发环境搭建(Linux版)2015-05-11 13:26:503057浏览必须申明的是,我们强烈建议大家在Mac下学习iOS应用开发,迫不得已才选择Windows和Linux。看到Linux的环境搭建步骤,早已凌乱。1. Ubuntu 10.10 iPhone Toolchain 4If you use Ubuntu 11.0…

pb9数据窗口中显示行数据与当前行区别_Hive的窗口函数

聚合函数(如sum()、avg()、max()等等)是针对定义的行集(组)执行聚集,每组只返回一个值。窗口函数也是针对定义的行集(组)执行聚集,可为每组返回多个值。如既要显示聚集前的数据,又要…

linux下shell脚本论文,Linux下Shell脚本编程

1、 shell脚本是什么它是一种脚本语言,并非编程语言。可以使用一些逻辑判断、循环等语法。可以自定义子函数,是系统命令的集合。shell脚本可以实现自动化运维,大大增加我们的工作效率。2、shell脚本结构以及执行方法开头行指定bash路径: #! /…

大数据 就业 缺口_大数据就业前景广阔,大数据人才紧缺,岗位缺口大

结果显示,绝大部分程序员年龄都不到35岁。超过一半的程序员年龄在23-30岁之间。当然程序员中间的“天才少年”的比例也不低。(三)程序员性别比例一直以来,程序员这一群体主要是男性为主。在本次调查中发现,程序员群体中男女比例超过了12:1。如…

linux硬盘磁盘标识符 0,Linux 磁盘与文件系统管理

Linux 磁盘与文件系统管理一 linux 磁盘(一)磁盘相关知识简介Linux 下用来存储数据的设备有:内存(RAM)与硬盘(Disk)两种;内存访问速度快,但价格昂贵;硬盘价格便宜,但访问速度慢目前市场上常见的磁盘有硬盘(Hard Disk,HD),软盘(Floppy Disk,FD),光盘(CompactDisk,CD),磁带(Tape)…

重构 pdf_三维温度场的重构方法,更准确地监测储能系统的电池堆内部温度

储能系统是微电网的核心组成部分,其热管理对于微电网的安全与稳定具有重要意义。相对于表面温度,电池堆内部温度场更有意义。针对红外热像仪无法监测电池堆内部温度场的问题,浙江工业大学分布式能源与微网研究所、浙江工业大学机械工程学院的…

linux 下停止监听程序,Linux下启动Oracle服务和监听程序步骤

Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下:1、安装oracle;2、创建oracle系统用户;3、/home/oracle下面的.bash_profile添加几个环境变量:ORACLE_SID,ORACLE_BASE,ORACLE_HOME:4、启动步骤:注…

2016 server sql 错误53_MS SQL Server 错误53 错误17是什么?如何解决

展开全部53是安装程序e68a8462616964757a686964616f31333335336532被挂起1、先运行你的安装程序,当提示挂起时,点击“确定”,切记,不要退出安装程序,用ALTTal键切换,点击“开始》运行”,输入“r…

linux找不到光口,以太坊查看命令_求助 输入ifconfig命令 后看不到eth0但是有eth3和eth4-CSDN论坛_区块链百科...

Ⅰ 怎么查看 /etc/sysconfig/network-scripts/ifcfg-eth0在你的这串英文前面加个 cat 空格就行Ⅱ 在linux下如何通过命令查网卡配置在linux下通过命令查网卡配置的方法如下:1、首先在电脑上打开Linux系统,然后进入Linux系统的终端窗口。Ⅲ 为什么用命令e…

开发物体识别桌、_想用人工智能实现安全风险管控?快来试试EasyMonitor一站式视频监控开发平台...

随着 AI 技术的日益成熟,越来越多的传统企业都希望用 AI 能力升级原有的管理系统,进而智能化解决业务问题、提高人效。尤其在安全生产领域中,虽然视频监控的覆盖率逐年提升,但大多企业还在沿用人工抽检的方式对设备、区域、人员进…

linux vim取消显示行号,linux vim不显示行号

Vim是从vi发展而来的文本编辑器,可以用颜色或底线等方式来显示一些特殊的信息。Vim是Linux中必不可少的工具,搭建网站修改配置文件时经常用到。本教程介绍Vim的模式和常用操作。背景信息 Vim的各个模式介绍如下表所示: 模式 作用 模式转换 普…

createprocess重启程序_C++_VC程序设计中CreateProcess用法注意事项,对于windows程序设计来说,启动 - phpStudy...

VC程序设计中CreateProcess用法注意事项对于windows程序设计来说,启动一个进程有三种方法:WinExec,ShellExecute,CreateProcess。这里仅对CreateProcess的用法加以说明。对于CreateProcess的详细参数读者可以查MSDN和《Windows AP…

大学期末c语言作业演示,大学C语言期末考试练习题(带详解答案)

资源描述:一、 单项选择题1. ( A )是构成 C 语言程序的基本单位。A、函数 B、过程 C、子程序 D、子例程2.C 语言程序从 C 开始执行。A 程序中第一条可执行语句 B 程序中第一个函数C 程序中的 main 函数 D 包含文件中的第一个函数3、以下说法中…

linux服务器上svn的log_Linux服务器上搭建svn服务器

背景项目开发中需要版本控制,而我们经常使用的是在windows系统上搭建svn服务器,下面介绍在Linux系统(CentOs)上搭建svn服务器。1. 使用yum安装svn使用yum安装svn,命令如下:yum -y install subversion安装完成之后,验证…

c语言回文字符串原理,回文串(c语言)注意字符串比较和字符比较的区别

#include #include #define LEN 224void judge(char *);int main(void){char ch[LEN];gets(ch);judge(ch);return 0;}void judge(char *ch){int n,i,j;int flag0; //设定一个变化标记nstrlen(ch);char temp[n];for(i0,jn-1;itemp[j--]ch[i]; //注意&#xff1…

pla3d打印材料密度_口腔修复体制作用3D打印金属粉末的成型工艺与性能控制要点概述...

在传统口腔修复体的制作过程中,制作工艺繁琐,制作周期长,加工过程中依赖人力操作,金属材料在制作过程中易发生变形,难以控制尺寸精度,使患者舒适度下降。而采用3D打印技术生产的修复体可根据患者自身进行定…

注释代码c语言,C/C++ 源文件删除注释代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include enum {s_normal,s_string,s_string_conv,s_linecomment,s_linecomment_conv,s_comment1,s_comment,s_commented1,s_eof,};int g_state s_normal;int deal(int c) {switch(g_state) {case s_normal:{if (c \") g_st…

iphone11屏比例_iPhone 11屏幕和iPhone X哪个大 iPhone 11和iPhone X屏幕大小对比

目前关于下一代新iPhone X的消息已经疯传网络,至于该机有多么惊艳众说纷纭。近日有iPhone11跑分图流出,下面一起来看看iPhone 11屏幕和iPhone X哪个大。iPhone 11 整体介绍:渲染图中的概念iPhone 11整体的设计风格与iPhone X相似,…

c语言数组中两元素交换,如可交换两个数组中的元素?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include int main(void){int a[]{1,2,3,4,5,6,7,8};int b[]{9,10,11,12,13,15};int lena,lenb,randa,randb,randtimes;int i,temp;srand((unsigned)time(NULL));lena sizeof(a)/sizeof(int);lenb sizeof(b)/s…