被捞到服务器固件开发了,准备一下面试
职位介绍
面向实习生的:服务器固件开发/验证实习生-算力基础设施
职位描述
ByteIntern:面向2026届毕业生(2025年9月-2026年8月期间毕业),为符合岗位要求的同学提供转正机会。 团队介绍:字节跳动系统部,负责字节跳动从芯片到服务器、操作系统、网络、CDN 、数据中心等基础设施的研发、设计、采购、交付与运营管理,为包含抖音、头条、火山引擎等全球业务提供高效、稳定、具备可扩展性的基础设施。部门当前业务开展包括不限于:数据中心设计建设、芯片研发、服务器研发、网络工程研发、火山引擎边缘云业务、高性能智能硬件研发、IDC资源智能交付与运维、硬件基础设施智能监控与预警、操作系统与内核、虚拟化技术、编译工具链、供应链管理等众多基础设施相关方向。
- 负责服务器固件(BMC/BIOS)开发及验证;
- 负责服务器固件领域RAS、安全、性能、功耗、可观测等竞争力特性的策略制定、方案落地;
- 负责服务器、部件等领域技术发展趋势研究分析,结合业务场景及固件技术方向,开拓固件新方向并推动产品化落地。
职位要求
- 2026届本科及以上学历在读,计算机技术、软件工程等专业优先;
- 对计算机体系结构、操作系统、网络、嵌入式系统等有深入理解;
- 具备熟练阅读英文技术规范、硬件手册的能力,英文听说读写能力熟练;
- 熟练掌握一种或几种主流编程语言,包括C/C++、Python、Go等,具有良好的数据结构算法能力;
- 具备较强的方案组织和输出能力、系统化的问题分析与解决能力、良好的客户服务意识;
- 了解UNIX环境编程,具备Linux C/C++开发经验,了解服务器架构,具备OpenBMC、LinuxBoot/CoreBoot等开源固件相关经验者优先。
面向社招的要求更复杂:
- 精通芯片/服务器BIOS、BMC、存储固件、网卡固件等其中一个关键技术,有相关的开发或测试经验;
- 精通服务器的软硬一体机调优,有软硬件一体机项目实战经验并获得好的结果;
- 熟悉服务器相关UEFI BIOS、AMI BMC/OpenBMC、ARM开源固件架构等方向,并在此方向上有丰富的嵌入式C/C++编程经验;熟悉LinuxBoot/CoreBoot者优先;
- 熟悉PCIe,DDR,JEDEC,CXL等各种协议/规格者优先;
- 熟悉Memory Controller IP和DDR Training Flow;
- 熟悉Memory Address/Memory Map;
- 熟悉PMU,RAS等相关IP及其验证方法;
- 熟悉Debug/Trace相关IP以及软件集成;
- 有RISC-V BootROM开发经验,熟悉RISC-V Bringup流程,熟悉u-boot/opensbi优先;
- 有ARM Server固件开发经验,熟悉ATF/SCP开发人员。
基础概念
带内管理与带外管理
带内管理(In-Band Management)
通过服务器或网络设备的业务数据通道(如以太网)进行管理,依赖主系统的网络和计算资源。常见方式包括 SSH、Telnet、HTTP/HTTPS 等协议。
带外管理(Out-of-Band Management) 通过独立硬件通道(如 BMC 芯片、Console 口)进行管理,不依赖主系统的运行状态。典型实现包括 IPMI、iLO(HP)、iDRAC(Dell)等专用管理接口。
核心区别:
特性 | 带内管理 | 带外管理 |
---|---|---|
依赖关系 | 需主 CPU 和网络正常 | 独立硬件运行(如 BMC 芯片) |
通信通道 | 共享业务网络带宽 | 专用物理通道(如串口、管理网卡) |
安全性 | 较低(易受网络攻击影响) | 更高(物理隔离加密传输) |
典型应用 | 日常运维、配置更新 | 硬件级故障恢复、远程重启 |
成本 | 低(无需额外硬件) | 较高(需专用管理芯片/接口) |
技术实现对比
带内管理技术
- 协议:SSH、SNMP、HTTP API。
- 工具:Ansible、Puppet 等自动化运维工具,依赖操作系统运行。
- 局限性:网络拥塞可能影响管理效率,无法处理硬件级故障。
带外管理技术
- 硬件:BMC 芯片(如 ASPEED AST2500)、独立管理网卡。
- 协议:IPMI、Redfish、KVM over IP。
- 功能:硬件状态监控(温度/电压)、固件更新、操作系统安装。
OpenBMC
BMC(Baseboard Management Controller,基板管理控制器)运行在独立的硬件芯片上,提供监视与控制系统中央处理器,固件(BIOS或UEFI)以及操作系统运作状态的功能。
https://zhuanlan.zhihu.com/p/670787952
LinuxBoot
LinuxBoot是一个开源的固件,用来替代UEFI、BIOS加载Linux的系统