嵌入式面试高频(Linux)

Linux

1 Linux介绍⭐⭐⭐⭐

Linux是一款自由、开放源代码的操作系统内核。它能够运行在各种计算机硬件上,例如个人电脑、移动设备、数据中心的服务器、超级计算机等。Linux常常与GNU工具套件结合使用,从而形成了GNU/Linux操作系统。以下是Linux包括的部分内容:

  1. 操作系统内核:Linux系统的核心部分,是操作系统的核心控制程序,负责系统的调度、管理、内存管理、文件系统和驱动程序等。
  2. 命令行界面:Linux提供了基于命令行界面(CLI)的操作环境,用户可以通过命令行执行各种指令,操作系统。
  3. 应用程序:Linux包含了很多应用程序,例如OpenOffice、火狐浏览器、VLC媒体播放器、GIMP图像处理软件等,满足用户的基本使用需求。
  4. Shell:在Linux中,Shell是与操作系统内核进行交互的一种程序,用户可以通过Shell执行操作系统提供的各种功能,比如文件管理、程序运行等。
  5. 文件系统:Linux支持各种文件系统格式,可以访问、读取和管理不同的文件系统,例如:ext4、NTFS、FAT32等。
  6. 网络支持:Linux可以连接到各种网络设备,通过互联网访问远程机器、文件共享、远程登录等功能。
  7. 开发工具:Linux还提供了开发工具,可以编写和编译各种编程语言的应用程序,例如:C语言、C++、Python、Java、Go等。

2 BootLoader介绍及启动流程⭐⭐⭐⭐⭐

BootLoader是计算机系统中用于加载操作系统的程序,也称为引导程序或启动管理器。当计算机启动时,主板上的BIOS或UEFI(统一的固件接口)程序会加载BootLoader,然后由BootLoader负责加载操作系统,并把控制权交给操作系统

BootLoader的启动流程如下:

  1. 当计算机启动时,BIOS或UEFI程序首先会检测内存和所有的外部设备,确保它们都正常工作。
  2. 接下来BIOS或UEFI会查找可引导的设备,如硬盘、U盘、光盘等,并从它们中找到一个可引导的设备。
  3. 然后BIOS或UEFI会加载BootLoader到内存中,并跳转到BootLoader程序的入口点位置,让BootLoader接管计算机的控制权。
  4. BootLoader会在内存中初始化硬件设备,并加载操作系统的内核到内存中。在加载内核之前,BootLoader会检查系统的各种设置、配置、分区信息等,以确保操作系统可以被正确地加载。
  5. 当BootLoader加载操作系统内核到内存中,它将把控制权交给操作系统内核的入口点。此时,操作系统就可以开始运行了,并且BootLoader的任务也就完成了。

bootloader作用

说明

硬件初始化

检测和初始化计算机或嵌入式系统的硬件设备,如处理器、内存、外部设备等。

加载操作系统

从存储设备中读取操作系统的引导程序,并将其加载到内存中。

启动操作系统

将控制权转移到操作系统的引导程序,以启动操作系统的执行。

提供启动选项

提供用户选择不同操作系统或不同启动模式的选项,支持多系统启动等。

提供固件升级

支持固件的更新和升级,以提供新功能、修复漏洞或提高系统性能。

处理错误检测

在启动过程中检测和处理硬件或软件错误,提供错误消息和故障排除功能。

支持设备引导

支持从不同的存储设备(如硬盘、闪存、网络等)引导操作系统。

自定义配置

允许用户自定义启动配置、参数和引导顺序,以满足特定需求。

3 BootLoader的两种模式⭐⭐⭐⭐

1 启动加载模式

  • 启动加载模式又叫自主模式,指Bootloader从目标及某个固件存储设备上将操作系统加载到RAM运行,整个过程没有用户介入,是Bootloader的正常工作模式

2 下载模式

  • 目标机上的Bootloader将通过串口或网络或USB等其它通信手段从主机下载文件,如内核镜像,根文件系统镜像等,从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后被Bootloader写到目标机的Flash内的固态存储设备中。这种模式通常在第一 次安装内核和根文件系统时使用。系统更新也会使用这种工作模式。

4 BootLoader启动的两个阶段⭐⭐⭐⭐⭐

BootLoader的stage1通常包括以下步骤:

  • 硬件设备初始化
  • 为加载BootLoader的stage2准备RAM空间。
  • 复制BootLoader的stage2到RA

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式/C++面试八股文 文章被收录于专栏

#承诺提供免费技术答疑# 本专栏主要是介绍嵌入式开发岗位相关知识和学习攻略。“C/C++软件开发岗位”也可以参考。 该专栏覆盖了嵌入式求职过程中99%常见面试题,详细讲解了嵌入式软件开发岗位、学习攻略、项目经验分享、面试心得,从技术面,HR面,主管面,谈薪一站式服务。订阅即赠送简历模板、内推机会,需要的同学点击我头像私信即可!

全部评论

相关推荐

2025届 文远知行 系统研发工程师 一面 70min1. 操作系统项目是怎么样的一个项目,是 demo 吗,代码量有多少2. ext4 排查过程详细讨论,在排查的处理逻辑方面讨论了很久3. Linux 系统中,有关于读写的调用有哪些,pread 和 pwrite 了解吗4. 如果一个硬盘 IO 时阻塞了,会发生什么情况5. 一个 read 请求的全流程,从用户态接口到落到物理磁盘6. netstat?7. 查看 CPU 占用的情况,里面有个 wait 字段是什么意思8. 如何查看硬盘的占用?du df -h9. 做题:给定一个不含有重复值的数组 arr,找到每一个 i 位置左边和右边离 i 位置最近且值比 arr[i] 小的位置。返回所有位置相应的信息。(25届校招已开放,26届实习生同步招聘)💼 公司岗位:全球领先的L4级自动驾驶技术公司,目前在招岗位涵盖算法,开发,测试,硬件相关岗位,base北上广深/美国圣何塞/新加坡;🫶️ 团队氛围:工作不用打卡,环境开放,氛围良好,大牛多多,公司每月开一次全员会议,更新最新公司进展与解答员工关心的问题;👨🏻‍💻 工作环境:总部在广州海珠国际生物岛,窗外风景很好,办公区还有台球桌和乒乓球桌,楼下也适合散步跑步打球等各种户外活动;💰 薪资待遇:岗位不同待遇不同,研发人员全员持股,六险一金齐全,公积金最高档缴纳;公司全年包三餐,每周可以自选工作日每天的餐品,每天有免费零食,夏天有备冰淇淋雪糕等;❤️ 职场感受:个人感觉是很适合历练成长的地方,在这里只要有付出,不愁得不到回报,能力突出者很快能有独当一面的机会;【内推链接】https://app.mokahr.com/m/campus_apply/jingchi/2137?recommendCode=DSaUuUtT#/jobs【内推码】DSaUuUtT                                                                               【备注】使用内推码的同学可以留下【姓名缩写+岗位】帮你跟进进度哦                                                              #文远知行#                                                                                                                           #内推#                                                                                                                         #内推码#                                                                                                                         #秋招#                                           #实习#                                                                           
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务