LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Linux内核启动有次引导程序Grub

2023年1月28日 261点热度

其实对于Linux算是很熟悉了,最近五年的工作电脑就安装的Ubuntu系统linux获取当前时间,由于毕竟工作时Windows还离不开,于是就在主机下虚拟个windows XP系统,解决必须用windows的工作。尽管这样,对于内核的启动过程其实一无所知,只是看到启动过程不断输出信息,然后等待shell的登陆界面。这次通过学习,也算略有了解,就把老师要求的实验过程记录一遍,也加深自己的印象。

虚拟机中的电脑没有成功,最后还是直接使用实验楼的环境,把分析过程记录一下:

直接启动可调试模式。系统停止在内核加载之前。

按下Ctrl+Shift+T开启另一个终端窗口。启动gdb,加载内核代码,连接远程端口1234。

设置断点break start_kernel,c命令继续执行,可以看到虚拟机启动窗口中,操作系统停止在Booting the Kernel。

在gdb中执行list命令可以查看当前执行的代码。

执行几次list命令,可以看见start_kernel中的初始化函数,有些名字就说明了作用,同时代码开始处也都进行了说明。如

boot_cpu_init();

page_address_init();

trapf_init();

内存管理初始化

mm_init();

核心进程调度器初始化,其优先级要高于任何中断linux内核启动流程,初始化进程0,也就是idle进程

sched_init();

init_IRQ();

init_timer();

console_init();

pidmap();

任务系统初始化

cred_init();

buffer_init();

key_init();

再设置一个断点break rest_init,c命令继续执行如下:

直接执行完启动过程,出现老师改造过的简单界面menuos。可以执行3个命令,其它输入都会提示“This is a wrong cmd!

总结,Linux内核启动有次引导程序Grub将内核代码(内核映像)加载到内存linux内核启动流程,取得系统控制权,执行start_kernel中的相应代码,完成系统的各种初始化处理,进入idle进程免费linux主机,也就是0好进程,在linux进程列表中看不到,然后调用init作为系统的1号进程,完成系统环境的设置。init进程成为所有进程的父进程,进入人机交互方式,出现我们熟悉的界面,完成内核的启动。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux系统 初始化 引导程序
最后更新:2023年1月28日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
VMware过期Linux系统CentOS7下载安装1.77下载地址 红旗linux操作系统v11.0-红旗操作系统操作系统吗? 5yw红软基地驱动完美支持windows、mac、linux系统 轻松安装ZeroMQ:Ubuntu系统必备的解决方案 怎么在Win7系统虚拟机上安装LinuxUbuntu的技巧?在这里 Linux必备!安装RAR解压器,轻松解压文件! 虚拟机linux系统下载 什么是linuxLinux(/托瓦兹)的Linux内核 文件永久删除还能找回来吗?关于Win和Mac系统的恢复方法 Ubuntu16.04怎样安装系统更新和应用更新16.04 网卡 centos 启动 Linux选择选择时各企业所参考的依据:以下内容和Centos Linux内核内存检测工具系列中的一篇,配置以及典型应用 虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载 0渗透操作0x02绕过disable_functions插件(组图) 【好玩的网络-第2.5期】分配IP有哪些骚操作?小白保姆级教程 Windows远程连接工具、Ubuntu系统的安装软件及系统 Linux一模一样远程连接编辑的操作图是什么? DRAM中的虚拟地址空间的缓存简化内存管理(组图) 2.5创建和配置虚拟机2.5.1创建虚拟机双击桌面的VMwarePlayer 掌握Linux基础命令-上海怡健医学系统 服务器上安装linux系统的具体操作过程-如何选择系统?
Linux文件路径查询方法,轻松获取文件位置Linux移植6410:从零开始的挑战!linux php安装 快速掌握Linux下PHP安装,轻松入门流行技术linux patch 文件 解决LinuxPatch文件10大疑难杂症,轻松应对!Ubuntu系统更改IP地址的简易教程,跟随以下步骤即可搞定!高效搭建Linux Android开发环境,轻松提升开发体验轻松掌握:如何查询Linux内核版本?Linux安装Matlab指南,快速掌握安装步骤Ubuntu 16安装网卡驱动教程,轻松解决网络连接问题Linux启动时,不使用图形界面可能更有效率!移植Linux,手机变身“大杀器”!详解8大关键操作Linux更高效,掌握启动终端快捷键!纯Python库实现上面介绍的HTML转换为PDF的软件Fedora 13服务器配置指南:9个实用技巧全解析9种方法轻松获取Linux版本,快速掌握系统信息!博客韦东山freeRTOS系列教程:入门文档教程+进阶视频教程轻松掌握linux ldd命令的技巧,成为高效开发者与管理员Linux VPS安全检测,保障服务器稳定运行!Linux下高效开发必备:配置Tomcat和JDK分析Linux中的I2C驱动程序框架核心结构(i2c-bus结构)
安装Ubuntu.04,安装NVIDIA驱动配置和tensorflow环境 教你在XShell软件中使用sz和rz命令下载和上传文件 最常用、最受欢迎的Linux发行版来学习黑客和渗透测试 Linux启动时,不使用图形界面可能更有效率! linux到底难不难学呢?推荐可以查看Linux命令大全 Linux5.12的推送请求不断涌入新开放的合并窗口预计4月底看到它的稳定版本 Linux用户来说意味着什么?简单来说,实际上意味着即白 linux删除raid需要重装系统吗?需不需要安装系统删除了 mkfsext3devhdbfdisk命令查看当前Linux分区情况可输入这条Linux命令 Linux软件安装目录及位置4种方法(服务器学习) 透过阅读Linux内核代码的方式看内核源码的分析并非“高不可攀” 小白在阿里云云服务器上如何发布自己的网站(建站|详细) 启动第一步--加载BIOS当你打开计算机电源(组图) Linux系统性能调优工具的说明书常规的用法介绍 Linux上使用Smartmontools工具扫描坏道工具 解决ssh连接提示(A,突然连不了了) 虚拟主机技术极大怎么样?如何选择多个网站.Q. 《Linux基础知识》命令文件操作相关命令操作命令 coLinux是与Windows操作系统协作的真正的Linux操作系统的 Linux发行版的学习方法与学习中应该注意的一些事
标签聚合
sudo 文件目录 电脑 linux系统 linux脚本 linux服务器 虚拟机 命令 软件 命令模式
书籍
课程
技术群
技术干货大合集↓
  • 2023年3月 / 112篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.