本来兴趣不大,自己一直都自己的计划,这半年也不太想动弹,但想想是kernel相关职位,还是可以作为一个职业转型的跳板,就现做了一份简历,牺牲了周六睡懒觉的时间,起个大早去参加专场招聘了,到了酒店才发现好几个我们公司的人。。。。汗~~看来真是印证了那句话:在成都搞IT的,几乎没有人没接到过H公司面试的电话。。。
到了酒店才发现没有带学位证学历证这些东东,想想也无妨,直接跟秘书MM打了招呼,把简历放了过去,然后就填表,我靠,那张表足足四页,居然还要求填现在公司领导的姓名和电话,真是faint!我就挑了一些不泄漏隐私的信息填了上去,交给秘书MM,然后跟James就在那边聊天等待。。。。
过了一小会,一个带白色工卡的帅哥就把我领到了一个没人的角落,说想跟我谈谈。那小子很面善,说话也很和蔼,很像我以前公司的导师,可以说非常像,搞得我还以为时光倒流了。。。。坐下寒暄两句,然后自我介绍,那小子就直奔主题了:kernel。 本来周五晚上准备简历的时候我还有些担心,不知道这边会着重考察kernel的哪些方面,因为kernel很多方面我也很久没看了,有些东西也记不太清了,怕不能完全把自己的水平展示出来(其实自己水平本来就菜得不行,如果还不能完全展示,基本上就等于不懂kernel了。。。)。一开始就问我SMP有什么特性,我还以为我听错了,做嵌入式的还要问SMP啊?不过还好,SMP我还知道是对称多处理器,于是就从每个SMP有一个runqueue开始谈起,每个CPU上的process分开调度,然后谈到了多CPU之间的对进程同步需要用spinlock,本来还想再谈SMP的affinity以及load balance,但是被那帅哥打住了,他说我了解SMP还比较深入(真是汗,我说的都是SMP最基本的东东),但没有说到最关键的一点,我于是有点懵了,不知道他指的最关键的一点是什么,他提示我说所有CPU都共享什么,我说内存,他说这样就完整了。。。。说实话 ,我真没搞懂他想让我对SMP掌握到什么程度。。。
SMP的话题到这里就打住了,那位帅哥说既然先前提到了spinlock,就问我spinlock有哪些类型。这个我记得我看书的时候的确是看到过,但没有实践,所以记不住了,我就直接告知他我记不起了,我只记得有try_to版本的spinlock,他提示我说有什么BH版本的spinlock,这样我就想起来了,的确是,在下半部就需要调用这样的spinlock。这个知识点我掌握得的确不好,一是没有实践过,二是对kernel编程的一些细节的东西掌握得还不够深入,于是我低下了头,没说话了。可能是他觉得把我问住了,有点不好意思,又换了一个话题,让我谈谈中断。LINUX下中断我还是蛮熟的,于是从linux中断的分类开始谈,谈到了X86的中断门,硬件自动保存cs,eip,eflags,以及判断是否要进行stack的转换,然后说道了硬中断,ack,CPU自动关中断,然后是软中断,softirq,tasklet,以及执行软中断的时间点:在do_irq()返回时,以及每个CPU还有一个专门的线程ksoftirqd来执行软中断,tasklet和softirq之间的关系。本来我还想谈软中断在SMP中对CPU的affinity,有效利用CPU cache这些话题,但也被他打住了,说我掌握得算很深了,不用再继续谈下去了。。。这时我真的在想:你是不是听不懂?这些都是学kernel必须掌握的东西啊!但他不让我说了,难道我还厚者脸皮继续说吗?OK,不说就不说,后来又谈了下kernel中进程上下文和中断上下文的区别这些基础的东东,我当然又是balabala一大堆给他娓娓道来,看样子他很满意。但我却有点不满意,因为我觉他对kernel肯定也不是很熟,至少在工作中,他不用掌握kernel的方方面面,很多细节都只是要求我点到为止,这样的情况下,我去他部门还有什么意思呢?进去工作一年,我真的会在kernel方面有长足的进步吗?难说了。
在kernel方面大概谈了15分钟,他说依照规矩,给了我一份笔试题,30分钟完成。OK,笔试我还是蛮有把握的,其实C语言方面的笔试,我觉得都还可以应付。果然,拿到试卷,噼里啪啦的一会就把他要求的东西做完了,感觉难度中等偏下,基础相对扎实的应届生就足够搞定的了。但最后一个编程题做得不是很好,因为我把他题目的意思搞错了,我以为是要利用kernel层的api来解,结果不是很完美,另外也没有进行错误检查,这是我的错!他给我30分钟,我15分钟把题做完了,闲着没事干,就把填空题也一并给他做了,还算比较轻松。试卷交给他,他说正确率还比较高,我就问他我错了哪些,他没正面回答,估计是怕我以后把题目和答案泄漏出去。其实我也知道我没全对,有一题不是很有把握,但他不回答就算了,我也不好意思继续追问。
于是针对我的简历,他又问了一些基本的东西,主要还是针对kernel的学习。哈哈,虽然我kernel学得不怎么样,但如果谈起kernel的学习心得,我还是有很多可说的,于是balabala又是一大堆,他似乎听得很开心。。。我想,你爽到就好了。我从LKD谈到ULK然后是情景分析,然后是学习kernel的几个朋友之间的故事,然后是自己对kernel学习的理解,自己想达到的目标等等,都说了个遍。他听我说lkd,似乎很感兴趣,说是他们部门的红宝书,人手一册,我真是汗死,LKD是学习kernel最基础的书,居然是他们的红宝书,而ULK这样的书他提都不提,真的很令我失望(我不是说lkd我全部看懂了,我只是觉得一个做kernel的部门,把LKD作为红宝书,而不是把ULK作为红宝书,只能让人觉得这个部门在kernel方面的实力真的很浅)。我说起robert love的名字,他突然眼前一亮,显得很兴奋,没搞懂他为什么这么兴奋。。。。呵呵,其实我也很兴奋,因为很难得有人能面对面的跟我交流kernel方面的人和事。后来又谈了下工作经历,问我现在的工作跟kernel是否相关,我说关系不太,但也不是完全没关,有时候还是要trace到kernel层,比如一些ioctl命令,还是要写一些copy_from_user之类的代码,自己也写过一些玩具module,分析过很多kernel的源代码。。。。
技术面试就这pass了,那位帅哥说他对我很满意,很希望我能进入他们部门工作,说这份工作应该非常适合我。我真的不知道这是客套话还是真话,总之我还是觉得这个部门不需要对kernel掌握得很熟,只是在招一些在kernel space编程的软件人员。anyway,总要比我现在的工作更能接触到kernel吧。但我又想起了去年面试alpha的时候,老大也是说:这份工作很适合我,很希望我能进入这个部门。结果呢。。。感觉也不是非常适合,至少跟当初她承诺的“有大量编码机会”这件事完全背离。。。。来alpha一年了,基本上就解了一年的bug,整天就是printf和printk。
技术面试通过,都快12点了,于是午饭,然后就来到了具有HW特色的群面,对于群面我一直是很讨厌的,我觉得完全是对人才的不尊重,变着法的折腾人,另外有点像买白菜的感觉,考!不过现在既然都到了这一步,还是进去见识一下,也算一种经历,但我仍然觉得很厌恶!
进去大概13个人,分成两组,先自我介绍,说优点和缺点。我就随便说了下。没想到在这里还遇到了一个以前在上海工作时同一个公司的同事,虽然我们以前没见过,但下来聊天,发现他就在我隔壁的那个部门,说起很多人大家都是认识的,呵呵,真是太巧了,没想到啊没想到!
群面的过程我就不说了,总之我是抱着无聊的心态进行的,显得比较中庸,甚者发言都不积极。最后好像还是通过了,没怎么搞懂他们到底是在考察啥素质,想我这么内向的人都能通过。。。
最后秘书MM说资格面试的老大有事走了,让我们下周再来进行剩下的面试环节,我操!真是想骂人!从早上9点一直折腾到下午3点多,下周还要继续,我真是服了这帮B了!
不过了,说起就是气,若不是没办法,我真的是不会考虑这个公司的。
阅读(63574) | 评论(1) | 转发(0) |