Responsabilidades e atribuições
Configuração, compilação e integração do kernel Linux utilizando ferramentas com o Buildroot e Yocto.
Implementação de novos device drivers, adaptação de device drivers existentes para novas arquiteturas.
Adaptação de bootloaders, como U-Boot e OpenSBI, para novas plataformas e geração da descrição de hardware em mecanismos como device tree.
Colaboração com equipes de firmware e hardware para integração de kernel, bootloader, device tree e drivers à uma nova plataforma de hardware.
Requisitos e qualificações
Bacharelado ou mestrado em Ciência ou Engenharia da Computação, Engenharia Elétrica / Eletrônica ou áreas relacionadas.
Proficiência na linguagem C e em assembly, com foco em sistemas de alto desempenho e em desenvolvimento para ambientes sem sistema operacional (bare metal) e em kernel-space.
Ao menos 5 anos de experiência com a adaptação (porting) e bring-up do kernel Linux para novos plataformas, e implementação e adaptação de device drivers.
Conhecimentos sobre a arquitetura e detalhes de implementação do kernel Linux, como gerenciamento de memória, escalonadores, processos, threads, etc.
Experiência com ferramentas para geração de sistemas Linux, como Buildroot e Yocto, e ferramentas de emulação e depuração, como QEMU e GDB.
Desejável :
Conhecimentos da arquitetura RISC-V, em especial assembly para RISC-V, processo de boot, Supervisor Binary Interface (SBI), mecanismos de interrupção (CLINT, PLIC, APLIC), modelo de memória, mecanismos de sincronização e operações atômicas.
Conhecimento em otimização de desempenho.
Ajustes do escalonador, gerenciamento de memória e syscalls (chamadas de sistema) para utilizar os recursos únicos da arquitetura RISC-V.
Conhecimentos e experiência com bootloaders e códigos de inicialização : UEFI, U-Boot, EDK II, Open-SBI.
Contribuições em projetos de código aberto.
Conhecimento em análise e otimização de desempenho.
Ajustes do escalonador, gerenciamento de memória e syscalls para utilização dos recursos únicos da arquitetura RISC-V
Experiência na caracterização (profiling) de desempenho de aplicações e uso de ferramentas como perf e eBPF.
Desenvolvedor (a) Kernel Sistemas de Alto Desempenho • Alemanha, Sergipe, Brazil