百面嵌入式专栏(面试题)Linux基础内容
嵌入式面试题
内存管理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 核心,在这里它被一个用户获取。尽管大多数时候tt
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
首先我们都知道,操作系统是所有软件的基础,所有上层软件都要依赖于操作系统提供的各种机制,才能运行。 而我在工作中也认识了很多技术大牛,根据我的观察,他们的基本功往往十分扎实,这对他们的架构视野、技术成长都十分有帮助。 可以说,操作系统作为计算机的灵魂,眼前的工作、日常的生活,甚至这个行业未来的“诗与远方”都离不开它。