以下内容是我在面试了几十家企业之后进行的面经总结,只是一个大纲,具体的内容可以和我交流。(QQ156361482)
No.1进程线程篇:
- 进程线程的概念以及区别
- 多进程和多线程的优缺点
- 进程和线程的使用场景
- 多进程和多线程的同步方法
- 父进程和子进程的关系以及区别
- 进程上下文和中断上下文概念
- 进程的空间模型
- 进程和线程的状态转换图
- 一个进程创建线程和什么有关
- 孤儿进程、僵尸进程、守护进程的概念
- 如何创建守护进程
- 如何处理孤儿进程和僵尸进程
- 同步、异步、并发、互斥、阻塞、非阻塞的概念
- 线程同步和线程互斥
- 线程同步和阻塞的关系
No.2 C语言篇
- 指针与引用的相同点和不同点以及转换关系
- 野指针深入理解
- 预处理相关问题
- Typedef和define区别及用法
- struct和class的区别
- new和malloc的区别
- static的用法
- const的用法
- volatile的用法
- const常量和#define之间的区别
- int和char之间的转换
- 常量指针、指针常量、常量引用、引用常量(无)的概念
- 变量的作用域
- 数组的深入理解
- Malloc的底层实现和深入理解
- Extern的深入理解
- Extern “C”的用处
- 函数参数压栈顺序
- 左值和右值
- 宏中#和##的用法
- 位操作深入理解
- 变量生命周期,作用域深入理解
- 函数的深入理解
- 结构体的深入理解
- 程序的执行流程
No.3网络编程
- TCP、UDP的区别,优缺点、使用场景
- TCP为什么是可靠连接
- 典型网络模型
- 三次握手、四次挥手
- 为什么要三次握手和四次挥手
No.4
- 各种排序算法的时间空间复杂度以及稳定性
- 各种排序算法的最优最坏情况
- 各种排序算法的介绍和代码实现
No.5 操作系统
- uboot相关知识(只考察启动过程和作用)
- 内核相关知识(会移植剪裁即可)
- 根文件系统相关知识(会构建即可)
- Linux内核的组成
- 内核空间和用户空间的通信方式
- 系统调用的作用
- 系统调用操作函数的流程
- 大小端问题
- Linux中堆栈、内存泄漏、内存溢出
- 堆栈的本质区别
- 软连接与硬链接的区别
- 虚拟内存、物理内存、虚拟地址、物理地址
- 中断和异常
- 中断的发生和处理流程
- 死锁的原因、如何创建和预防死锁
- Select,poll.epoll的区别
No.6驱动深入理解
- 字符设备驱动
- Platform平台设备驱动框架
- Input输入子系统驱动框架
- IIC设备驱动框架
- USB设备驱动框架
- LCD设备驱动框架
- 触摸屏设备驱动框架
- 声卡设备驱动框架
- 热插拔设备驱动框架
- RTC驱动框架
- 块设备驱动框架
- Nandflash设备驱动框架
- Norflash设备驱动框架
- 网络设备驱动框架
No.7ARM
- 通信协议(IIC,SPI等)
- ARM外设了解
- 交叉编译工具链
- 原理图查看