首页 > 其他分享 >开机时候。

开机时候。

时间:2023-06-04 19:22:16浏览次数:34  
标签:操作系统 grub 内核 开机 时候 指针 cpu 加载

开机的时候主板将首先从bios中获取数据,其中包含汇编代码这一类的东西,之后这些内容从bios移动到ram,之后告诉cpu将指令指针放到ram对应的位置,之后cpu就可以开始运行。

bios中的信息将会将引导加载程序grub加载到ram中,然后cpu就可以继续执行引导加载程序了。GRUB 是一个用于加载和管理系统启动的完整程序

引导加载程序将会知道分区表和文件系统,并因此可以处理目录结构,因此可以访问boot/grub/grub.cfg,这个式grub的设置文件。该设置文件将决定使用哪个操作系统

之后操作系统内核将会被复制到RAM中,然后cpu就能够执行操作系统内核。

操作系统开始时是32位结构,64位是后面切换过去的。

为了找到操作系统内核所在,需要设置esp寄存器到指定的地址,esp是堆栈指针寄存器用于指向栈顶。ebp存放的就是基指指针,用于指向栈帧的底部。SP,指针即地址,存放栈顶指针,目的就是,下一次对栈操作的时候,系统可以及时找到栈的当前位置

(116条消息) 从汇编角度理解 ebp&esp 寄存器、函数调用过程、函数参数传递以及堆栈平衡_ebp汇编_江下枫的博客-CSDN博客

为了让加载程序知道这是个操作系统内核,会设置魔术数为0x1badb002

0xB8000,是图形卡调用显示信息的位置

在boot/grub/grub.cfg中设置新操作系统的信息并且重启就能够见到新的操作系统了

标签:操作系统,grub,内核,开机,时候,指针,cpu,加载
From: https://www.cnblogs.com/uestc-du/p/17455911.html

相关文章

  • Ubuntu 创建开机自启动脚本的方法
    Ubuntu创建开机自启动脚本的步骤如下:1)将你的启动脚本复制到 /etc/init.d目录下以下假设你的脚本文件名为test。 2)设置脚本文件的权限$sudochmod755/etc/init.d/test 3)执行如下命令将脚本放到启动脚本中去:......
  • Centos设置Tomcat开机启动
    [size=x-large][color=red]Centos7开机启动[/color][/size]方式1:CentOS7.x设置自定义开机启动,添加自定义系统服务[url]http://www.centoscn.com/CentOS/config/2015/0507/5374.html[/url]方式2:centos下实现程序开机自启动(tomcat为例CentOS7开机......
  • 6、虚拟机在宿主机开机的情况下自启与远程管理KVM虚拟机
    libvirt架构停止libvirt服务,需要同时停止以下几个服务[root@ubunt~]#systemctlstoplibvirtdlibvirtd-ro.socketlibvirtd.socketlibvirtd-admin.socket这些服务之间是有关系的,如果服务有问题,可以看下其他服务是否存在问题。服务停掉后[root@ubunt~]#virsh命令便不再能......
  • 没有服务器的时候,需要自己构造对象的id时候用uuid
    uuid:制定了一套规则专门用于生成全球唯一的字符串编码 uuid有固定的包:但是uuid太大了,生成的字符串也太长了。可以使用uuid的变种:nanoid [nanoid把uuid在一定程度上做了精简]  生成单机版的什么有时候会用的上,实际上id在有服务器的时候,是后端给的。 1.不用停......
  • 关于int**在malloc为二维数组分配空间时候的作用见解
    关于int**在用malloc函数为二维数组分配空间时候int**  二级指针类型二维数组的数组名为行指针,写成 arr =(char**)malloc(n*sizeof(char))时,arr并不是二维数组的数组名,而是指针数组的数组名,指针数组的数组名是二级指针,所以可以用int**把malloc分配的空间强制转换成二级指针类......
  • 电脑开机发出滴滴响
    电脑开机发出响声一般是bios报警,根据响声可以判断问题原因:1、一个短声,系统正常启动。2、两个短声,内存奇偶校验错误。3、一长一短,系统基础内存检讨失败,需要改换内存。4、一长两短,显示器或显卡错误5、五个短声,cpu错误,但未必全是cpu本身的错,也可能是cpu插座或其它处有问题。6、一......
  • elastic开机自启动
    创建es的系统启动服务文件,进入到cd/etc/init.d目录;cd/etc/init.d【进入到目录】vielasticsearch【创建es系统启动服务文件】 #!/bin/bash#chkconfig:3456337#description:elasticsearch#processname:elasticsearch-7.0.0exportES_HOME=/usr/local/ela......
  • 在树莓派上设置应用程序开机启动的五种方法
    在树莓派上设置开机自动启动一个应用程序有五种方法:1、rc.local配置2、.bashrc配置3、init.dtab配置4、systemd配置5、crontab计划任务我们使用一个例子程序,其功能是在树莓派启动时播报「WelcometotheworldofRaspberryPi」。该程序使用Espeak库实现,因此需要......
  • Centos上配置服务开机自启动的3种方式
    前言  在服务器上安装的各种中间件,为了防止意外宕机重启导致的后果,一般都需要配置成开机自启动。但是有些中间件的安装过程中并没有提供相关配置开机自启动的说明文档。今天和各位大朋友们聊一聊Centos上配置服务开机自启动的几种方式。Centos下配置服务开机自启动有3种方式:......
  • element ui 预览图片的时候滚动鼠标放大缩小, 重新打开的时候恢复原来大小
    <template><div><el-button@click="openPreview">预览图片</el-button><el-dialog:visible.sync="dialogVisible":close-on-click-modal="false":before-close="resetPreview"><im......