【文末送书】Linux/Windows/嵌入式系统的启动过程

这篇具有很好参考价值的文章主要介绍了【文末送书】Linux/Windows/嵌入式系统的启动过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关注公粽号 《机器和智能》 回复关键词 “python项目实战” 即可获取美哆商城视频资源!


博主介绍:
CSDN博客专家,CSDN优质创作者,CSDN实力新星,CSDN内容合伙人;
阿里云社区专家博主;
华为云社区云享专家;
51CTO社区入驻博主,掘金社区入驻博主,支付宝社区入驻博主,博客园博主。



🎉🎉🎉🎉🎉 重磅福利 🎉🎉🎉🎉🎉
🎉本次送2套书 ,评论区抽2位小伙伴送书
🎉活动时间:截止到 2024-02-2710:00:00
🎉抽奖方式:评论区随机抽奖。
🎉参与方式:关注博主、点赞、收藏,评论。
❗注意:一定要关注博主,不然中奖后将无效!
🎉通知方式:通过私信联系中奖粉丝。
💡提示:有任何疑问请私信公粽号 《机器和智能》

【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维
《Linux运维从入门到精通》 Linux运维,运维工程师的入行选择。详解Linux系统管理+93个运维实例,精通数据与架构+6大类服务器搭建。。


专栏:《Linux内核设计思想与源码分析》


☞ 通用计算机启动过程

1️⃣一个基础固件:BIOS

一个基础固件:BIOS→基本IO系统,它提供以下功能:

  • 上电后自检功能 Power-On Self-Test,即POST:上电后,识别硬件配置并对其进行自检,保证正常运行和初始化;
  • 基本IO驱动与事件处理功能:初始化并驱动硬件,如显示器、串口、键盘等接口,使能基本的中断;
  • 启动参数设置功能:过程中允许通过热键启动设置界面,进而对CMOS RAM中的启动参数进行配置。CMOS RAM等效于BBSRAM,存放启动配置数据,电池掉电后数据丢失;
  • 系统自动装载功能:在系统自检成功后,根据启动顺序,将相应启动设备主引导记录MBR(一般位于0磁道的0扇区,大小为512字节)的引导程序装入内存并从入口地址运行;
2️⃣WIndows操作系统启动过程

① 系统上电或复位,X86处理器复位——代码段寄存器CS为0xFFFF,指令指针寄存器IP为)0x0000,CS:IP地址存放下一条跳转指令,跳转至ROM中BIOS入口地址0xFFFFFFF0(复位向量地址),并启动BIOS。
② BIOS上电自检,若出现错误则初始化基本硬件,允许用户进行参数配置。
③ BIOS将第1个启动设备的第1个扇区加载到系统RAM的0x7C000地址,启动MBR中的引导程序,进入引导的第一个阶段。
④ 调用 Windows MBR Loader 或 LILO GRUB WinGrub等引导程序,进入引导的第二个阶段。
⑤ 引导程序调用 OS Boot Loader 把用户选择的操作系统内核加载到内存,并跳转到操作系统入口地址开始执行。
此时,计算机的控制权交给了操作系统,基本启动过程完成。

☞ 嵌入式系统启动过程

MCS-51 MCU 上电复位后,PC寄存器的初值为0x0000。0000H,0001H,0002H这三个单元存放了一条无条件跳转指令,当从该地址执行时将直接跳转到主程序的入口地址。
arm处理器复位后将从0x00000000地址处开始执行指令。

1️⃣处理器片内集成启动固件——嵌入式系统启动

① 上电程序引导
片内集成独立 Boot ROM (Brom),代码 Rom Boot Loader (RBL) 支持从 NAND Flash、SPI、UART 等外部接口启动。

  • 加电后,处理器将从该ROM的复位向量地址开始执行,RBL通过判断处理器特定引脚的电平来进入正常启动模式或开发模式;
  • RBL获取下一步要执行的代码,并将其复制到SRAM或SDRAM中引导执行;

② 嵌入式操作系统装载
嵌入式操作系统的引导也需要特定的机制和软件支持,即 Boot Loader。

  • 复位后,将 Boot Loader 代码从Flash 拷贝到SDRAM的特定区间并引导执行;
  • Boot Loader 程序执行一系列基本的硬件初始化工作;
  • 将自身拷贝到SDRAM中,RAM中的 Boot Loader 继续执行,为操作系统的运行做好环境准备,并将外部存储器中的操作系统内核映像及根文件系统映像拷贝到内存中的代码,数据空间,设置内核启动参数;
  • 跳转至内核入口地址开始执行。
2️⃣裸机

直接部署在嵌入式硬件上的软件称为裸机代码,或裸机(应用)软件。一般来说都是些无限循环结构,比如空调、冰箱等嵌入式系统。通过板级支持包BSP,向下屏蔽硬件的细节,向上提供统一的服务和接口。没有操作系统,通过中断来实现多任务运行。

☞ Linux系统启动过程

计算机接通电源上电后,需要经过BIOS加电自检、MBR系统引导、加载内核三步之后,操作系统才会启动。

1️⃣BIOS加电自检
  • BIOS全称 Basic Input/Output System,即基本输入输出系统,它是一个被永久刻录在ROM中的软件,加电自检是指 Power On Self Test,POST,属于BIOS的主要组成部分。
  • 计算机在接通电源后,BIOS通过POST来加载硬件信息,进行内存、CPU、主板等检测,如果硬件设备正常工作,BIOS会寻找硬盘第一个扇区中存储的数据,并使用MBR中的数据激活引导加载程序。
2️⃣MBR系统引导
  • MBR全程 Master Boot Recode,是一种磁盘分区格式,也是以此种格式的磁盘中0盘片0扇区中存储的一段记录——主引导记录。磁盘中扇区的大小为512byte,主引导记录MBR占据第一个扇区的前446字节,剩余的空间依次存储一个64字节的磁盘分区表,和一个用于标识MBR是否有效的2字节的模数。
  • 主引导记录MBR中包含一个实现引导加载功能的程序——Boot Loader。由于BIOS只能访问很少量的数据,所以MBR中的引导加载程序其实只是一段初始程序的加载程序 Initial Program Loader,IPL,这段程序唯一的功能就是定位并加载 Boot Loader 的主体程序。
  • 加载引导分为两个阶段
    • 第一阶段,BIOS引导IPL获取 Boot Loader 主题程序在磁盘中的位置,此时系统启动的控制权由BIOS转移到MBR;
    • 第二阶段,Boot Loader 主题程序与操作系统对应的内核,定位到内核文件所在的位置,并将其加载到计算机内存中,此时系统启动的控制权由MBR转移到内核。
3️⃣加载内核
  • 内核是操作系统的核心,Linux操作系统的内核就是Linux。内核以一种自解压的压缩格式压缩,它与一个初始化的内存映像和存储设备映像表一起存储在 /boot 目录下。
  • 在选定的内核被加载到内存中并开始执行前需要先从压缩格式中解压,一旦内核自解压完成,systemd进程(也就是早期版本中的init进程)便被启动。
  • systemd进程的启动标识着引导过程的结束,也标识着启动过程的开始。在系统启动之初,由于系统中没有除systemd之外的程序执行,系统初始化工作尚未完成,因此计算机不能执行任何和用户相关的功能性工作。
  • 系统初始化需要进行挂载文件系统、启动后台服务等等一系列工作,这些初始化工作全部由systemd进程完成。对于用户来说,系统初始化完成后,系统才算正式启动。
4️⃣附:init进程启动级别

系统启动流程:
BIOS → MBR → boot loader → kernel → init
BIOS → MBR → GRUB → kernel → init

  • BIOS:找到启动介质 - 移动硬盘、磁盘、U盘等,找到启动介质后读取其中的第一个扇区;
  • MBR:第一个扇区(512字节)称为主引导记录。主引导记录分为3部分,前446byte是引导信息,后64byte是磁盘分区信息,最后2byte是标志位。MBR的作用是找到 boot loader 。
  • GRUP:是一种 boot loader ,用于加载kernel核心信息。
  • kernel:内核。
  • init:内核的第一个程序,分为7个启动级别。

查看启动级别配置文件

cat /etc/inittab  #查看启动级别相关的配置文件

inti命令可以切换系统的启动级别

inti 0/1/2/3/4/5/6
  • 0表示关机(不能设置为开机默认启动级别)
  • 1表示单用户
  • 2表示多用户(无网络的3级别)
  • 3多用户(命令行模式,字符终端)
  • 4用于开发
  • 5图形界面,默认启动方式
  • 6reboot(不能设置为开机默认启动级别)
runlevel   #查看系统的启动级别

《Linux运维从入门到精通》购买链接:链接1 | 链接2

【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维

《Linux运维从入门到精通》从初学者角度出发,通过通俗易懂的语言、清晰明了的操作步骤,详细介绍了Linux系统管理与运维相关的技术。全书分为3篇,共19章,包括运维工作、服务器、Linux系统、Linux文件目录命令、Linux软件安装、Linux文本编辑、用户和用户组、文件管理与进程、Linux文件系统、Linux磁盘管理、Linux网络、防火墙、FTP服务器的搭建与应用、NFS服务器的搭建与应用、搭建Tomcat应用服务器、企业级Nginx应用服务器搭建、搭建基于LAMP架构服务、Linux数据服务、Linux shell脚本等内容。本书所有知识都结合具体应用场景和操作步骤进行介绍,可以使读者轻松领会Linux系统运维的精髓,快速提高运维技能。 本书可作为系统运维入门者的自学用书,也可作为高等院校相关专业的教学参考书,还可供开发人员查阅参考。
【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维

作者简介:明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
丛书说明:“软件开发视频大讲堂”丛书第1版于2008年8月出版,因其编写细腻、易学实用、配备海量学习资源和全程视频等,在软件开发类图书市场上产生了很大反响,绝大部分品种在全国软件开发零售图书排行榜中名列前茅,2009年多个品种被评为“全国优秀畅销书”。
“软件开发视频大讲堂”丛书第2版于2010年8月出版,第3版于2012年8月出版,第4版于2016年10月出版,第5版于2019年3月出版,第6版于2021年7月出版。十五年间反复锤炼,打造经典。丛书迄今累计重印680多次,销售400多万册,不仅深受广大程序员的喜爱,还被百余所高校选为计算机、软件等相关专业的教学参考用书。
“软件开发视频大讲堂”丛书第7版在继承前6版所有优点的基础上,进行了大幅度的修订。第一,根据当前的技术趋势与热点需求调整品种,拓宽了程序员岗位就业技能用书;第二,对图书内容进行了深度更新、优化,如优化了内容布置,弥补了讲解疏漏,将开发环境和工具更新为新版本,增加了对新技术点的剖析,将项目替换为更能体现当今IT开发现状的热门项目等,使其更与时俱进,更适合读者学习;第三,改进了教学视频,为读者提供更好的学习体验;第四,升级了开发资源库,提供了程序员“入门学习→技巧掌握→实例训练→项目开发→求职面试”等各阶段的海量学习资源;第五,为了方便教学,制作了全新的教学课件PPT。

【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维
【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维
【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维

【文末送书】Linux/Windows/嵌入式系统的启动过程,粉丝福利,linux,windows,运维


❗❗❗重要❗❗❗☞关注下方公粽号 《机器和智能》 回复关键词 “python项目实战” 即可获取美哆商城视频资源!文章来源地址https://www.toymoban.com/news/detail-830775.html

到了这里,关于【文末送书】Linux/Windows/嵌入式系统的启动过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 「Kali Linux」网络安全黑客自学、网络渗透(文末送书)

    「Kali Linux」网络安全黑客自学、网络渗透(文末送书)

    目录 1.背景介绍 2.读者对象 3.随书资源 4.本书目录 5.本书概览 6.活动参与方式  对于企业网络安全建设工作的质量保障,业界普遍遵循PDCA(计划(Plan)、实施(Do)、检查(Check)、处理(Act))的方法论。近年来,网络安全攻防对抗演练发挥了越来越重要的作用。 企业的安

    2024年02月08日
    浏览(13)
  • 关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    这篇文章是关于嵌入式开发的一些基本信息,供想入行的人参考。有一些作者本人的想法,以及来自外网的大拿的文章翻译而来,原文链接在此Learning Linux for embedded systems,再次感谢,支持原创。 普通C开发人员和嵌入式C开发人员之间的 基本区别在于 ,因为嵌入式C程序被设

    2024年02月03日
    浏览(66)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(68)
  • 嵌入式Linux系统组成

    嵌入式Linux系统组成

    1.产品 发行版Linux系统产品:服务器、消费平板、消费手提电脑 嵌入式Linux系统产品:扫地机器人,小米机顶盒特定场景使用 2.硬件 X86 PC电脑主板为例:要想让电脑运行发行版系统,要有主板,主板上要有CPU,DDR,电源,无线/有线硬件,显示单元、存储以及其他外设等 嵌入式

    2024年02月14日
    浏览(9)
  • 【Pyecharts】| 风电场运维可视化系统 | 文末送书

    【Pyecharts】| 风电场运维可视化系统 | 文末送书

    随着风力能源的普及,海上风电场的管理和运维成为了一个重要的问题,需要采用智能化的解决方案。因此,我们设计和实现了一套基于可视化技术的海上风电场运维可视化系统,可以实时监测和分析风电场的运营相关数据,并通过pyecharts提供直观的界面和智能化的决策支持

    2024年02月11日
    浏览(9)
  • 浅谈数据库系统:MySQL的简介与配置①(文末送书)

    浅谈数据库系统:MySQL的简介与配置①(文末送书)

    欢迎来到小K的MySQL专栏,本节将为大家带来MySQL的简介与安装配置的详细讲解 ~ 描述事务的符号记录成为数据。 ✨数据是数据库中存储的基本对象,出了基本的数字之外、像图书的名称、价格、作者等都可以称为数据。 列如:在日常生活之中,可以这样描述一本书的信息,《

    2024年02月08日
    浏览(7)
  • 【Linux实践室】Linux文件打包和解压缩实战指南:tar打包命令操作详解(文末送书)

    【Linux实践室】Linux文件打包和解压缩实战指南:tar打包命令操作详解(文末送书)

    🌈个人主页: 聆风吟_ 🔥系列专栏: Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 有时,我们会在Linux系统中将多个文件打包成一个单独的文件,通过本节的学习,我们将学会如何在Linux系统中将多个文件/目录打包生成一个文件。 本节任务:使用

    2024年04月29日
    浏览(41)
  • 嵌入式Linux底层系统开发 +系统移植+内核文件系统(基础)

    嵌入式Linux底层系统开发 +系统移植+内核文件系统(基础)

    搭建交叉编译开发环境 bootloader的选择和移植 kernel的配置、编译、移植和调试 根文件系统的制作 前两个要点通常芯片厂家提供。后边两个要点是公司的工作重点。 学习方法:先整体后局部,层层推进 如何编译—如何添加命令和功能—如何定义自己的开发板。 移植的基本步

    2024年02月03日
    浏览(49)
  • 一本书让你彻底搞懂安卓系统性能优化(文末送书5本)

    一本书让你彻底搞懂安卓系统性能优化(文末送书5本)

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 前言 作者简介 内容简介  本书特色 读者对象 直播预告 文末福利         为什么

    2024年02月08日
    浏览(7)
  • 嵌入式Linux驱动开发系列五:Linux系统和HelloWorld

    嵌入式Linux驱动开发系列五:Linux系统和HelloWorld

    三个问题 了解Hello World程序的执行过程有什么用? 编译和执行:Hello World程序的执行分为两个主要步骤:编译和执行。编译器将源代码转换为可执行文件,然后计算机执行该文件并输出相应的结果。了解这个过程可以帮助我们理解如何将代码转化为可运行的程序。 语法和语义

    2024年02月13日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包