嵌入式面试题

内存管理MMU的作用?

  • 内存分配和回收
  • 内存保护
  • 内存扩充
  • 地址映射

异步IO和同步IO的区别?

如果是同步IO,当一个IO操作执行时,应用程序必须等待,直到此IO执行完,相反,异步IO操作在后台运行,
IO操作和应用程序可以同时运行,提高系统性能,提高IO流量; 在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行,而异步文件IO中,
线程发送一个IO请求到内核,然后继续处理其他事情,内核完成IO请求后,将会通知线程IO操作完成了。

编译和链接有什么不同?(如外部符号的处理)

  • 编译生成的是目标文件(object *.o);
  • 编译过程中对于外部符号不做任何解释和处理。外部符号对应的就是“符号”
  • 链接生成的是可执行程序
  • 链接将会解释和处理外部符号。外部符号对应的是地址

驱动中操作物理绝对地址为什么要先ioremap?

因为内核没有办法直接访问物理内存地址,必须先通过ioremap获得对应的虚拟地址。内核空间和用户空间一般通过系统调用进行通信。

嵌入式设备,为加快启动速度,可以做哪些方面的优化?

linux默认的安装内核相当庞大,为了保证系统的兼容性和灵活性,支持热插拔操作,内核启动时要进行大量的硬件检测和初始化工作,而嵌入式的硬件都是固定的,只需要选择需要的硬件驱动就可以,不需要全部的硬件驱动都检测;因此可以进行适当的裁剪内核达到缩小启动linux系统的目的;同时可以统计驱动模块的耗时时间,对耗时较长的模块驱动加以分析,优化;

嵌入式linux中tty设备驱动的体系结构?

Linux内核中tty的层次结构包含tty核心、tty线路规程和tty驱动;

tty设备发送数据的流程为:tty核心从一个用户获取将要发送给一个tty设备的数据,tty核心将数据传递给tty线路规程驱动,接着数据被传递到tty驱动,tty驱动将数据转换为可以发送给硬件的格式。

接收数据的流程为: 从tty硬件接收到的数据向上交给tty驱动,进入tty线路规程驱动,再进入 tty 核心,在这里它被一个用户获取。尽管大多数时候tty核心和tty之间的数据传输会经历tty线路规程的转换,但是tty驱动与tty核心之间也可以直接传输数据。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 大学的时候,帮朋友写的操作系统调研的作业,最近整理过去的文档时候偶然发现,遂作为博客发出来。 从串口驱动到Linu...
    free_will阅读 12,177评论 7 59
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,386评论 0 27
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,267评论 2 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,497评论 18 399
  • 今天彻底走了。 努力了这么久,现在算是终于解脱了! 可是为何心里总是落空空的? 我说不清楚。 在这待了一年零两个月...
    青丸子阅读 1,189评论 0 0

友情链接更多精彩内容