Bem legal o conteúdo do post, só acho importante fazer uma ressalva sobre estre trecho:
O kernel usa listas ligadas para tudo. Lista de tarefas do escalonador, lista módulos carregados, lista dispositivos registrados, lista de conexões de rede. A lista ligada é a estrutura de dados mais onipresente do kernel.
Acho importante mencionar que o kernel Linux usa muitas estruturas de dados distintas e que cada caso é um caso. Lista ligada tem penalidade de performance devido ao acesso à memória não ser sequencial, o que implica em muitos cache misses. Em comparação, array dinâmica é muito mais cache friendly pelos acessos serem sequenciais e, por isso, a performance é muito melhor.
Então a ideia de que "O kernel usa listas ligadas para tudo" está errada. O kernel usa várias estruturas de dados diferentes e, onde a performance é mais impactante, ele prefere usar array dinâmica ou flexible array members.