嵌入式面试高频(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到R

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

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

该专栏面向嵌入式开发工程师、C++开发工程师,包括C语言、C++,操作系统,ARM架构、RTOS、Linux基础、Linux驱动、Linux系统移植、计算机网络、数据结构与算法、数电基础、模电基础、5篇面试题目、HR面试常见问题汇总和嵌入式面试简历模板等文章。超全的嵌入式软件工程师面试题目和高频知识点总结! 另外,专栏分为两个部分,大家可以各取所好,为了有更好的阅读体验,后面会持续更新!!!

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务