3.25 OPPO 底软开发 一面面经(4.8更新,二面已凉)
4.8号更新(其实是4.2号看到挂的),已经挂了。基本上没怎么问项目,问了一些基本的Linux八股,比如调度有哪些。然后问了问我以前实习(老板公司)的项目,问我在里面最困难的是什么,学到的最珍贵的是什么等hr面的内容,第二天早上起来就挂了。
虽然也理所当然,有朋友前一周就HR面+OC了,这个岗位本来就少(据说是成都2+深圳3?),我在下一周才二面,就这么说服自己好了
————————————————————————————————————
3.27更新,OPPO发二面通知了,下周二
————————————————————————————————————
看了一圈好像没看到比我更快的,我自己也觉得快。我今天下午五点回学校的路上突然接到HR的电话,问我能不能今晚七点半面试,我想想觉得面就面吧,就接了。
本人双偏上9,但是本科不是计算机的。研究生对操作系统和嵌入式都感兴趣,因此做的一个手搓操作系统的项目,一个是C51检测氢气和温度的项目。
面试官看起来人还不错,说话比较好听。
1.自我介绍,我稍微说了一下我的bg和爱好,他小声说了一下我本科(我本科不是计算机),问我既然本科不是计算机的,有没有学过计算机的一些基本的书籍,我说有(确实有)。
2.问我对哪些语言比较熟悉,我说我C、C++都比较熟悉,实验室横向也用Python比较多。
于是这里开始问C语言的基本题目:
3.问我i++和++i的区别,出了一道a = i++,a的值。
4.问我数组和链表的区别,我回答主要是连续内存分配上。他问我那什么时候用数组什么时候用链表,我说如果要求连续分配(比如随机访问)用数组。
5.问我栈和队列的区别,我说先进后出和先进先出(这里有点乌龙,我嘴快说反了,然后纠正),接着问我用栈来实现队列,我提出的是双栈方法。
6.然后问我操作系统进程和线程的区别,我说简单来说就是进程是资源分配最小单位,线程是执行调度最小单位,线程会共享进程的资源,然后也有自己的独立的栈用来保存局部变量函数调用之类的。
7.问我现在有一个进程里面有一个变量a,有两个线程分别对这个a++(执行100次),最后的结果是多少。我说大概是200,因为量比较少,可能不会有很明显的竞态。如果量很大(比如10w次)且不上锁,得到的结果就小于20w。
操作系统到这里结束,然后就是拷打项目。
8.首先问我觉得哪个项目最能体现自己的能力,能说服他让我通过面试,我说那就问我操作系统的项目吧。但是因为问的太杂,我没回答到他的点子上。于是他换了个问题,问我这个操作系统项目最难的是什么,我说是debug,因为本身不是用户态软件可以用断点来debug,因此遇到问题就只能逐行删除编译,或者print方法。我也补充应该还有dbg方法可以用(但是我自己确实连不上)
9.问我中断,问我怎么实现的中断。我说是先写stvec,把中断代码入口放进去。有中断的时候就进入这个入口,然后把重要寄存器sepc、sstatus和x0-x31之类的保存,然后调用实际的中断句柄,用scause里的值来判断是哪种中断。我以syscall为例解释了一下整个流程。
10.让我解释一下我这个操作系统的定时器中断下,两个进程之间的上下文切换。我说将cpu的需要保存的信息(如sepc、sp、tx)之类的保存到自己的内核栈里面去,然后将下一个进程的内核栈中保存的这些数据还原到cpu内,这样就完成了上下文切换。
11.问我怎么实现的虚拟地址到实地址的转换,我解释了一下我自己实现的riscv的rv39机制。
反问:
我问他OPPO这个岗位更看重的是什么?
他的回答是这个岗位看中的是实习生的潜力,他们都把实习生当成一张白纸,如果有潜力,进去之后再培养。毕竟是实习生又不是社招(类似的话)。
总的来说今天的面试我有点忐忑, 因为面的实在是太基础了,我以为会问我比较细节的嵌入式八股或者操作系统细节,结果C语言的问题给我把脑子干懵了。
目前还是已完成面试,先放一个害怕在这,怕kpi更怕一眼觉得不行水时长
#0offer互助地##投递几十家公司,到现在0offer,大家都一样吗##投递几十家公司,到现在0offer,大家都一样吗#。
虽然也理所当然,有朋友前一周就HR面+OC了,这个岗位本来就少(据说是成都2+深圳3?),我在下一周才二面,就这么说服自己好了
————————————————————————————————————
3.27更新,OPPO发二面通知了,下周二
————————————————————————————————————
看了一圈好像没看到比我更快的,我自己也觉得快。我今天下午五点回学校的路上突然接到HR的电话,问我能不能今晚七点半面试,我想想觉得面就面吧,就接了。
本人双偏上9,但是本科不是计算机的。研究生对操作系统和嵌入式都感兴趣,因此做的一个手搓操作系统的项目,一个是C51检测氢气和温度的项目。
面试官看起来人还不错,说话比较好听。
1.自我介绍,我稍微说了一下我的bg和爱好,他小声说了一下我本科(我本科不是计算机),问我既然本科不是计算机的,有没有学过计算机的一些基本的书籍,我说有(确实有)。
2.问我对哪些语言比较熟悉,我说我C、C++都比较熟悉,实验室横向也用Python比较多。
于是这里开始问C语言的基本题目:
3.问我i++和++i的区别,出了一道a = i++,a的值。
4.问我数组和链表的区别,我回答主要是连续内存分配上。他问我那什么时候用数组什么时候用链表,我说如果要求连续分配(比如随机访问)用数组。
5.问我栈和队列的区别,我说先进后出和先进先出(这里有点乌龙,我嘴快说反了,然后纠正),接着问我用栈来实现队列,我提出的是双栈方法。
6.然后问我操作系统进程和线程的区别,我说简单来说就是进程是资源分配最小单位,线程是执行调度最小单位,线程会共享进程的资源,然后也有自己的独立的栈用来保存局部变量函数调用之类的。
7.问我现在有一个进程里面有一个变量a,有两个线程分别对这个a++(执行100次),最后的结果是多少。我说大概是200,因为量比较少,可能不会有很明显的竞态。如果量很大(比如10w次)且不上锁,得到的结果就小于20w。
操作系统到这里结束,然后就是拷打项目。
8.首先问我觉得哪个项目最能体现自己的能力,能说服他让我通过面试,我说那就问我操作系统的项目吧。但是因为问的太杂,我没回答到他的点子上。于是他换了个问题,问我这个操作系统项目最难的是什么,我说是debug,因为本身不是用户态软件可以用断点来debug,因此遇到问题就只能逐行删除编译,或者print方法。我也补充应该还有dbg方法可以用(但是我自己确实连不上)
9.问我中断,问我怎么实现的中断。我说是先写stvec,把中断代码入口放进去。有中断的时候就进入这个入口,然后把重要寄存器sepc、sstatus和x0-x31之类的保存,然后调用实际的中断句柄,用scause里的值来判断是哪种中断。我以syscall为例解释了一下整个流程。
10.让我解释一下我这个操作系统的定时器中断下,两个进程之间的上下文切换。我说将cpu的需要保存的信息(如sepc、sp、tx)之类的保存到自己的内核栈里面去,然后将下一个进程的内核栈中保存的这些数据还原到cpu内,这样就完成了上下文切换。
11.问我怎么实现的虚拟地址到实地址的转换,我解释了一下我自己实现的riscv的rv39机制。
反问:
我问他OPPO这个岗位更看重的是什么?
他的回答是这个岗位看中的是实习生的潜力,他们都把实习生当成一张白纸,如果有潜力,进去之后再培养。毕竟是实习生又不是社招(类似的话)。
总的来说今天的面试我有点忐忑, 因为面的实在是太基础了,我以为会问我比较细节的嵌入式八股或者操作系统细节,结果C语言的问题给我把脑子干懵了。
目前还是已完成面试,先放一个害怕在这,怕kpi更怕一眼觉得不行水时长
#0offer互助地##投递几十家公司,到现在0offer,大家都一样吗##投递几十家公司,到现在0offer,大家都一样吗#。
全部评论
我昨天底软二面过了,约的周五HR面,好奇面试官是怎么耐心的听完你讲rcore的,我也是这个项目,面试官直接说rcore和xv6都是toy项目,企业里用不到,一面时无数次打断我,二面的时候我就吸取教训只说Linux下的实现了,感觉讲rcore面试官听不懂也不愿意听,只能拿来当跳板去讲Linux。
我靠,感觉问的也太简单了,哥们复筛直接挂了
哥,看下状态码,可以看到自己过没过
窝趣还问这些啊 哥们基础知识贼差 明天面😂
佬,咱俩操作系统项目一样
这么少的hc!我已经在xhs看到至少3个人排序拿offer了
牛牛牛
哥你有二面了吗?二面是技术面吗?
感觉你应该更稳
很多人都只有二十来分钟
楼主你投的是第一轮吗?过了初筛到复筛到面试要过多久呀,想了解一下他投了简历之后的时间进度,
老哥怎么样了 有更新吗 我下午面的也是已完成
我的复筛也直接挂,感觉卡本科学历
哦哦谢谢
哥一共几面啊
纯聊天
czhyyds
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享