当前位置: 首页 > news >正文

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

 

  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.lryc.cn/news/322792.html

相关文章:

  • css禁用元素指针事件,鼠标穿透,点击下层元素,用`pointer-events:none;`
  • Eureka的介绍和作用,以及搭建
  • shell和linux的关系
  • 数据在内存的存储
  • JavaScript之ES中的类继承与Promise
  • ​浅析多模态大模型技术路线梳理
  • 使用 Amazon SageMaker 微调 Llama 2 模型
  • 牛客小白月赛86(D剪纸游戏)
  • MySQL的基础操作与管理
  • Pytorch 中的forward 函数内部原理
  • 四、C语言中的数组:如何输入与输出二维数组(数组,完)
  • 基于python+vue智慧农业小程序flask-django-php-nodejs
  • 好用的GPTs:指定主题搜索、爬虫、数据清洗、数据分析自动化
  • 使用Qt自带windeployqt打包QML的exe
  • C代码快速傅里叶变换-分类和推理-常微分和偏微分方程
  • 计算机组成原理 双端口存储器原理实验
  • [音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg,Qt +VS2022,都什么年代了还在写传统播放器?
  • GPT-5可能会在今年夏天作为对ChatGPT的“实质性改进”而到来
  • 官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
  • 部署单节点k8s并允许master节点调度pod
  • Django日志(三)
  • 【吾爱破解】Android初级题(二)的解题思路 _
  • 富格林:谨记可信计策安全做单
  • 【工具使用】mingw64编译完成运行可执行文件时出现乱码
  • WebSocket 使用示例,后台为nodejs
  • 【算法】力扣【树形DP】687. 最长同值路径
  • S32DS用PE调试报错
  • Day02-DDLDMLDQL(定义,操作,查询)(联合查询,子查询,字符集和校对集,MySQL5.7乱码问题)
  • 3D高斯泼溅的崛起
  • 基于python+vue家政服务系统flask-django-php-nodejs