问HN:操作系统内核团队的入职培训是怎样的?
背景:我想了解操作系统内核团队是如何为新员工提供培训的。
我主要好奇的是:
- NT内核 / XNU内核 / Android内核团队,或者任何不是开源软件(OSS)如Linux的团队,例如一些专有实时操作系统(RTOS)团队也算在内。
- 当团队仍然从目标学校招聘新毕业生进入内核团队时。我不确定你的团队是否还在这样做,所以我用了过去时态。
问题:
- 新员工在培训上工作多长时间?你们是否给予例如3个月的时间让他们熟悉并开始处理小任务,还是采取“游泳或淹死”的策略?
- 如果有结构化的培训,你们使用什么材料?主要是阅读内部文档、跟随资深员工、还是关于内核的出版书籍,或者其他什么?
- 培训如何关注代码质量?对新员工在代码质量方面有什么样的练习/材料?在内核团队中,代码质量意味着什么?
- 培训如何关注性能?你们对内存占用有多在意?
- 培训是否使用生产操作系统的简化版本,并要求新员工复制现有功能?
- 你们首先向新员工介绍哪些“子系统”/“模块”(例如:虚拟内存/引导/驱动程序/调度器/文件系统等)?
- 培训如何处理内部工具,特别是内核调试?
感谢你的阅读,希望能得到一些答案 :D
查看原文
Context: I'm wondering how did OS kernel teams provide training to their new hires.<p>I'm mostly curious about:<p>- NT kernel / XNU kernel / Android kernel teams, or anything that is not OSS like Linux, e.g. some prop RTOS team would also count<p>- When teams still hired new graduates from targeted schools into kernel teams. Not sure whether your team is still doing this so I put up a past tense.<p>Questions:<p>- How much time do new hires work on the training? Do you give e.g. 3 months to catch up and start to work on small tickets, or it's a swim or die strategy?<p>- If there is any structured training, what material do you use? Is it mostly reading internal docs, or shadowing seniors, or published books about the kernel, or something else?<p>- How does the training address code quality? What kind of exercises/material does it lay on the new hires to work on code quality? What does code quality mean in the kernel team?<p>- How does the training address performance? How much do you care about memory footprint?<p>- Does the training use a minimal version of the production OS and ask the new hires to replicate existing features?<p>- What "subsystems"/"modules" (e.g. vm/boot/driver/scheduler/fs/etc.) do you expose to the new hires first?<p>- How does the training address internal tooling, especially kernel debugging?<p>Thanks for reading, and hopefully I get some answers :D