求职笔记 . 字节跳动 . 服务器固件开发

被捞到服务器固件开发了,准备一下面试

职位介绍

面向实习生的:服务器固件开发/验证实习生-算力基础设施

职位描述

ByteIntern:面向2026届毕业生(2025年9月-2026年8月期间毕业),为符合岗位要求的同学提供转正机会。 团队介绍:字节跳动系统部,负责字节跳动从芯片到服务器、操作系统、网络、CDN 、数据中心等基础设施的研发、设计、采购、交付与运营管理,为包含抖音、头条、火山引擎等全球业务提供高效、稳定、具备可扩展性的基础设施。部门当前业务开展包括不限于:数据中心设计建设、芯片研发、服务器研发、网络工程研发、火山引擎边缘云业务、高性能智能硬件研发、IDC资源智能交付与运维、硬件基础设施智能监控与预警、操作系统与内核、虚拟化技术、编译工具链、供应链管理等众多基础设施相关方向。

  1. 负责服务器固件(BMC/BIOS)开发及验证;
  2. 负责服务器固件领域RAS、安全、性能、功耗、可观测等竞争力特性的策略制定、方案落地;
  3. 负责服务器、部件等领域技术发展趋势研究分析,结合业务场景及固件技术方向,开拓固件新方向并推动产品化落地。

职位要求

  1. 2026届本科及以上学历在读,计算机技术、软件工程等专业优先;
  2. 对计算机体系结构、操作系统、网络、嵌入式系统等有深入理解;
  3. 具备熟练阅读英文技术规范、硬件手册的能力,英文听说读写能力熟练;
  4. 熟练掌握一种或几种主流编程语言,包括C/C++、Python、Go等,具有良好的数据结构算法能力;
  5. 具备较强的方案组织和输出能力、系统化的问题分析与解决能力、良好的客户服务意识;
  6. 了解UNIX环境编程,具备Linux C/C++开发经验,了解服务器架构,具备OpenBMC、LinuxBoot/CoreBoot等开源固件相关经验者优先。

面向社招的要求更复杂:

  1. 精通芯片/服务器BIOS、BMC、存储固件、网卡固件等其中一个关键技术,有相关的开发或测试经验;
  2. 精通服务器的软硬一体机调优,有软硬件一体机项目实战经验并获得好的结果;
  3. 熟悉服务器相关UEFI BIOS、AMI BMC/OpenBMC、ARM开源固件架构等方向,并在此方向上有丰富的嵌入式C/C++编程经验;熟悉LinuxBoot/CoreBoot者优先;
  4. 熟悉PCIe,DDR,JEDEC,CXL等各种协议/规格者优先;
  5. 熟悉Memory Controller IP和DDR Training Flow;
  6. 熟悉Memory Address/Memory Map;
  7. 熟悉PMU,RAS等相关IP及其验证方法;
  8. 熟悉Debug/Trace相关IP以及软件集成;
  9. 有RISC-V BootROM开发经验,熟悉RISC-V Bringup流程,熟悉u-boot/opensbi优先;
  10. 有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的系统

Input子系统——按键输入驱动
求职笔记 . MCU. 链接脚本