十年驱动开发经验——AMD上海研发中心MTS软件工程师“MagicBoy2010”

2021-11-12 00:00:00 开发 内核 驱动 社区 是个

采访嘉宾:陈学松(MagicBoy2010)
02年硕士毕业,主要从事Linux内核、设备驱动、嵌入式BSP等领域的研发工作,目前任职AMD上海研发中心,职位是MTS软件工程师,主要是Linux下显卡驱动相关的东西。

CU社区:
hi,MagicBoy2010 很高兴能采访到您啊,作为一个已经有十年技术人生的专家,你潜水可够深的,呵呵 首先简单向CU的网友做下介绍,让大家认识下。

MagicBoy2010:
其实我不是个爱潜水的人,呵呵,因为我非常喜欢蛙泳和自由泳,基本上每隔一天去游一次,差不多两年了,这个是到目前我感到有成就感的事。专家谈不上,砖家还比较靠谱。我02年硕士毕业后就一直在上海工作,主要都是一些非常底层的开发,比如Linux内核,嵌入式Linux BSP,包括现在的显卡驱动。我自己是个好奇心非常强的人,这也是为什么我一直处在底层的原因。

CU社区:
能不能简单的介绍一下您主要是从事哪些设备的驱动开发?和做过哪些BSP?

MagicBoy2010:
平台主要有x86, ARM还有少量PowerPC,接触的设备就多了,三教九流,五花八门,什么DDR, Flash, Ethernet Switch, SD, AC97, Performance Monitor, I2C,SPI,FPGA,LCD, Touch Panel,BT/WLAN等等,包括现在做的显卡驱动。

CU社区:
从你的个人经历从来看,你现在从事Linux内核的开发,除了关于驱动的,能不能介绍一下在内核方面还做了哪些工作?

MagicBoy2010:
内核方面在公司里的项目,主要有把台式机的EFI移植到移动平台上,还有就是单个处理器(HT) 上同时运行两个OS,一个xp,一个Linux,借助于我们自己的EFI的功能,引导xp时,就欺骗了xp,明明有256M内存,就骗xp说只有200M,一个PCI的网卡也是,通过南桥的一个register的设置,给隐藏起来了,xp去扫描pci总线也发现不 了。这样的话,运行Linux的环境就有了,因为这个环境非常变态,所以需要对Linux内核进行幅度很大的修改。而我大部分的业余时间,除了游泳基本上都是在看kernel。

CU社区:
显卡驱动的开发相对来说工作量比较大,而且有很大的难度,你对于刚入门从事显卡开发的兄弟有没有什么好的建议?或者可以结合你自身的经历介绍一下如何去入门,去深入。

MagicBoy2010:
的确,显卡驱动的开发非常复杂,我们目前的代码量比新版的Linux kernel源码还要大,以至于Source Insight没法将它做成一个工程出来。它既有用户空间的驱动,也有内核空间的驱动。目前市场上PC上的显卡主要是三家Intel(集显), NV和AMD。因为我们上海这边是不做open source的,所以这里说的刚入门的兄弟我不知道是不是指那些在开源社区鬼混的伙计,如果是这帮兄弟,那么这块我不太熟悉,没有什么建议。如果是以上三家的从事显卡开发的兄弟,那么同为天涯苦逼人,生活本就是一地鸡毛,好好活着比啥都强。此外,我非常不看好X,用了那么多年了还在用,这简直就是个奇迹。

CU社区:
目前Linux的开发需求还是很旺盛的,尤其是底层驱动的开发,而目前驱动的开发方向很多,能不能结合你的经验,聊一下驱动开发的主流方向有哪些?也就是说哪些方面的驱动开发需求比较大?

MagicBoy2010:
谷哥这个问题挺难回答的,其实驱动这个东西概念太广了,依我看什么赚钱什么就是主流,对于想找工作的兄弟来说,什么容易找工作什么就是主流。显卡驱动显然是个非主流,呵呵。哪些驱动开发需求比较大,我看现在嵌入式与移动这块蛮有潜力,平板电脑,智能手机,无线,车载设备,楼宇控制,家里的电饭煲甚至以后的智能马桶等等。PC现在落伍了,主要是现在的孩子都太娱乐了,被苹果这样的公司忽悠的,所以这块市场没有任何一家公司会忽视。

CU社区:
从你的经历来看,您估计已经面试过很多应届毕业生,甚至是有几年工作经验的,如果让你来选择Linux底层驱动开发人员你看重哪几点?

MagicBoy2010:
说实话我还真没面过多少人,倒是以前被人面了不少,还经常被拒,拒得我都麻木了,哈哈,所以我对面试其实没有太多要说的。总之我觉得面试是场双方处于平等地位的交流,而不是象“咱们这儿”的那帮人通过面试别人来体现自己的优越感。如果让我来选的话,我想我主要会看他的兴趣,对Linux底层开发人员来说,这是位的,其次是耐得住寂寞和快速学习的能力。

CU社区:
从职业发展角度,您是如何看待从事Linux底层驱动开发人员的职业发展的?

MagicBoy2010:
这个问题还用说吗,前途一片大好,饿不死也撑不死的,这年头能活着是多么不容易的事啊,呵呵。至于职业发展,不能一概而论,每个个体都不太一样。总之,做你爱做的事,更进一步地,如果能做自己喜欢做的事那在我看来就很完美了。

CU社区:
咱们来谈谈您的大作《深入linux设备驱动程序内核机制》,这本书的面向的读者是?

MagicBoy2010:
面向的读者主要是从事Linux内核模块和设备驱动程序开发人员。

CU社区:
目前市场上此类书籍也不少,不知此书胜出的优势是什么?

MagicBoy2010:
目前市场上此类书籍也不少,但是将内核和设备驱动程序结合到一起谈的却很少。至于什么胜出的问题,作者老爸也不是李刚,现在的读者又都很理性,是胡编乱造,还是真得用心去写,他们完全看得出来。其实关于这本书呢,写完我是留了不少遗憾在里面的,现实中我算是一个完美主义者吧,直到定稿前还一直在修改,但是时间上的确是太紧张了,非常紧张。我想到第二版时,它会比现在要好得多。因为框架有了,我心里至少有底了,那么我可以更从容更精致更艺术地去解读我想要表达的东西。

相关文章