有人说,如果你不知道自己在技术的哪些方向上进行提升,最好的办法就是去参加面试,看看自己有什么短板。
虽然我做了6年的linux方面的开发,主要是网络方向,用户态,内核态开发都做过,熟习linux网络协议栈。但是我接触 内核驱动少,文件系统,IO模块虽然看过源码,也未深入了解。主要还是不确定以后的发展方向。
下面看看某个公司 的职位描述和要求:(不是BAT这类的大公司)
职位描述
职位描述:
1、 负责Linux操作系统的定制和裁剪,以及相关工具链、initrd、Grub的开发和裁剪
2、 负责定制Linux操作系统的优化,持续跟踪开源社区的活动
3、 参与并且负责FC/10GbE/IB驱动程序的优化
4、 负责存储操作系统的研究及开发
职位要求:
1、 计算机相关专业本科以上学历
2、 熟悉Linux内核机制,熟练使用多种Linux内核调试分析工具(kgdb,crash等)、性能分析工具(gcover, blktrace, ftrace)
3、 熟悉网卡驱动程序、FC驱动程序或者IB驱动程序中的一种或者多种
4、 熟悉Linux操作系统的裁剪、熟悉initrd以及Grub
5、 熟悉Linux环境下的脚本语言,例如shell、perl
6、 熟悉Linux多核编程技术、NUMA优化技术者优先
负责定制和维护公司 私有Linux内核分支
负责云硬盘的Linux内核驱动研发工作
负责Linux IO协议栈的持续优化和功能开发
任职要求:
熟悉Linux内 核源代码,熟练编写Linux内核模块及块设备驱动
深入理解Linux内核fs,block layer,device mapper等模块源代码
熟悉Linux内 核drbd模块源代码
以上条件满足任意两项即可
工作职责:
-针对服务的需求定制Linux内核,结合业务需求开发内核新功能
-结合服务特点对linux内核进行性能调优
-内核新技术的研究和应用
-xen、kvm等虚拟化技术研究和改进
-qemu、libvirt等技术优化升级
职位要求:
-精通linux内核,至少阅读过 内核中的主要模块(文件系统,TCP/IP, I/O,内存管理)之一的源代码
-熟悉Linux平台上的C语言编程,熟悉多进程多线程编程,熟悉socket编程
-优秀的分析问题和解决问题的能力,对解决具有挑战性问题充满激情
-了解主流内核&虚拟化技术(xen、kvm、qemu、libvirt等)的实现,阅读过相关源代码
- 善于学习新的知识,动手能力强,有进取心
- 良好的团队合作精神,较强的沟通能力