嵌入式软件面试-linux-中高级问题

news2024/9/24 1:15:33

 

  1. Linux系统启动过程
    • BIOS自检并加载引导程序。
    • 引导程序(如GRUB)加载Linux内核到内存。
    • 内核初始化硬件,加载驱动,建立内存管理。
    • 加载init进程(PID为1),通常是systemdSysVinit
    • init进程启动其他系统服务和守护进程。
    • 加载登录shell,用户登录,系统就绪。
  2. NAND Flash和NOR Flash的区别及坏块自检
    • NAND Flash:写入和擦除速度快,容量大,但需要专门的读取和写入接口。自检坏块通常通过厂家提供的特定命令或机制完成。
    • NOR Flash:可以像内存一样直接寻址,但写入和擦除速度较慢。坏块检测通常在出厂时完成,使用时会避开这些坏块。
  3. 线程和进程的差别
    • 进程是资源分配的基本单位,拥有独立的地址空间。
    • 线程是CPU调度的基本单位,共享进程的资源(如地址空间)。
    • 线程间通信更快,但同步和互斥更复杂;进程间通信相对较慢,但隔离性更好。
  4. 进程间通信方法
    • 包括管道、消息队列、共享内存、信号量、套接字等。
    • 评价:不同方法各有优缺点,需根据应用需求选择。
  5. 多路IO中select的实现方法和评价
    • select通过监视文件描述符集合来实现多路IO。
    • 评价:select在文件描述符较多时性能下降,因为需要遍历整个集合。
  6. epoll与select的差别和评价
    • epoll使用事件驱动机制,只需关注活跃的文件描述符。
    • 评价:epoll在大量文件描述符时性能优于select,但实现更复杂。
  7. Makefile编写
    • 定义变量、目标、依赖关系和规则。
    • 使用命令来编译、链接源文件。
    • 可以包含条件判断、循环等控制结构。
  8. gcc编译过程
    • 预处理(处理#include和宏定义)。
    • 编译(将预处理后的文件转换成汇编代码)。
    • 汇编(将汇编代码转换成机器代码)。
    • 链接(将多个目标文件和其他库文件链接成可执行文件)。
  9. gdb调试方法
    • 设置断点、单步执行、查看变量值、调用栈等。
    • 使用gdb的命令行接口进行调试。
  10. trace跟踪
    • 使用如strace、ltrace等工具进行系统调用或库函数调用的跟踪。
    • 跟踪可以帮助定位性能瓶颈或错误。
  11. TCP和UDP差别
    • TCP:面向连接,可靠传输,有流量控制和拥塞控制,适合大数据量传输。
    • UDP:无连接,不可靠传输,开销小,适合实时性要求高的应用。
  12. TCP的三挥手和四次挥手
    • 三挥手是建立连接的过程:SYN-SYNACK-ACK。
    • 四次挥手是断开连接的过程:FIN-ACK-FIN-ACK。
  13. 项目开发中的困难及解决方法
    • 困难可能包括代码调试、性能优化、团队协作等。
    • 解决方法包括使用调试工具、性能分析工具,加强团队沟通和协作等。
  14. 解决Linux系统开发中的段错误
    • 使用gdb进行调试,查看崩溃时的堆栈信息。
    • 检查指针操作是否正确,是否访问了未初始化的指针或越界访问。
    • 使用编译器的内存检查选项,如gcc的-g -o0-fsanitize=address

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1534399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis监控工具

Redis 是一种 NoSQL 数据库系统,以其速度、性能和灵活的数据结构而闻名。Redis 在许多领域都表现出色,包括缓存、会话管理、游戏、排行榜、实时分析、地理空间、叫车、聊天/消息、媒体流和发布/订阅应用程序。Redis 数据集完全存储在内存中,这…

深度学习——数据预处理

一、数据预处理 为了能用深度学习来解决现实世界的问题,我们经常从预处理原始数据开始, 而不是从那些准备好的张量格式数据开始。 在Python中常用的数据分析工具中,我们通常使用pandas软件包。 像庞大的Python生态系统中的许多其他扩展包一样…

es 集群核心概念以及实践

节点概念: 节点是一个Elasticsearch的实例 本质上就是一个JAVA进程一台机器上可以运行多个Elasticsearch进程,但是生产环境一般建议一台机器上只运行一个Elasticsearch实例 每一个节点都有名字,通过配置文件配置,或者启动时候 -…

JVM学习-JVM简介以及其内部结构

目录 1.什么是JVM 2.JVM、JRE、JDK、JavaSE、JavaEE之间的联系 3.JVM的内部结构 4.各部分的作用 4.1 类加载器(附类加载过程导航) 4.2 方法区 4.3 堆(附常量池、运行时常量池、串池的介绍导航) ​ 4.4 虚拟机栈&am…

Android14 - Framework- Configuration的创建和更新

本文描述从启动一个新进程的Activity起,Framwork层Configuration的创建和传导过程。 首先,我们知道所有的Window容器都继承于WindowContainer,而WindowContainer本身是ConfigurationContainer的子类。于此同时,WindowProcessContr…

高级数据结构 <AVL树>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 目录 前言正文AVL树的性质AVL树的定义AVL树的插入函数左单旋右单旋右左双旋左右双旋 检验AVL树的合法性关于AVL树 最后 前言 前面我们学习了二叉树,普通的二叉树没有任何特殊性质&…

数据结构面试常见问题之Insert or Merge

😀前言 本文将讨论如何区分插入排序和归并排序两种排序算法。我们将通过判断序列的有序性来确定使用哪种算法进行排序。具体而言,我们将介绍判断插入排序和归并排序的方法,并讨论最小和最大的能区分两种算法的序列长度。 🏠个人主…

pycorrector检测OCR错字实践

参考:https://github.com/shibing624/pycorrector/tree/master/examples/macbert stopwords.txt 添加专业停用词,避免错误 设置自定义词典,避免将正确的词错误检测成错误的词 from pycorrector import Corrector m Corrector() m.set_cus…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.4 会计凭证处理

2.4.1 会计凭证处理的基本概念 会计凭证是企业经济业务在会计上的反映,它是用会计语言表达的一种单据。 典型生产企业的财务凭证创建方式: 企业在实施SAP的过程中,大部分凭证都是自动生成的。要保证这些凭证能准确地生成,必须要满…

mysql 数据库 基本介绍

一 数据 (一)数据是什么 描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录气 以“记录”形式按统一的格式进行存储 (二)数据的分类 1,结构化的数据 即有固定格式和有限长度的数据。例…

hcip复习总结1

OSI----------- 定义了数据的产生标准 。 7 层 应用 ------- 表示 会话 传输 -----Telnet - 23 ssh---22 http---80 https-443 TCP ---- 传输控制卋议。是一种面向连接的可靠的传输卋议。 UDP---- 用户数据报卋议。是一种非面向连接的丌可靠传输卋议。 保证可靠性&…

面向量产!基于视觉的速度距离估计

面向量产!基于视觉的速度距离估计 论文名称:Vision-based Vehicle Speed Estimation: A Survey 导读 在精确检测车速车距的方案中,视觉方案是非常具有挑战性的,但由于没有昂贵的距离传感器而大幅降低成本,所以潜力巨…

国内智能驾驶芯片领先供应商地平线智能驾驶芯片介绍

地平线国内智能驾驶芯片领先供应商,由国际著名机器学习专家余凯博士于2015年7月创建;2017年12月,地平线即推出了首款 智能芯片征程1和旭日1;2019年8月,宣布量产中国首款车规级智能芯片征程2并于同年10月发 布新一代AIo…

【Git】第二课:git安装和配置

安装 我们伟大祖国有句古话叫巧妇难为无米之炊,还有句话叫工欲善其事必先利其器。所以,在正式的学习之前,我们需要先把git这把利器安装好。 Windows系统 下载安装包 打开Git - Downloading Package页面,根据系统类型32位还是6…

有ai写文案的工具吗?分享5款好用的工具!

在数字化时代,人工智能(AI)已渗透到我们生活的方方面面,包括内容创作领域。AI写文案的软件以其高效、便捷的特点,正逐渐受到广大内容创作者、营销人员、甚至普通用户的青睐。本文将为您盘点几款热门的AI写文案软件&…

Zotero引入英文参考文献作者都是大写字母问题

修改之前是这样的: 修改过程 进入word 打开样式编辑器 打开后,找到这里: 删除 text-case“uppercase” 就可以实现这个样式: 然后我们点击保存,将这个样式文件另存为,然后替换掉原来的文件 源文件在 …

聚焦两会:数字化再加速,VR全景助力制造业转型

近年来,随着信息技术、人工智能、VR虚拟现实等新兴技术的不断涌现,数字化正日益成为推动当今经济发展的新驱动力。在不久前的两会上,数字化经济和创新技术再度成为热门话题: 国务院总理李强作政府工作报告: 要深入推…

误删了Linux系统的libm.so.6文件与libm-2.27.so的软链接导致的开机出现kernel panic的解决方案(图文U盘救援详细教程)

事情起因 最近在做嵌入式视觉,捣弄rknn3588,在推理过程中报了一个错,就是说我的GLIBC的版本太低了,我也没有多想,想着升一下版本就好了,然后找到了这篇博客。【请谨慎操作】Ubuntu18.04升级GLIBC_2.29&…

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度

作者:周静、吴宇奇、泮圣伟 在应用开发测试验证通过后、进行生产发布前,为了降低新版本发布带来的风险,期望能够先部署到灰度环境,用小部分业务流量进行全链路灰度验证,验证通过后再全量发布生产。本文主要介绍如何通…

Java学习笔记NO.25

T2.编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。要求: (1)定义乐器类Instrument,包括方法makeSound() (2)定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin (3)定义乐手类…