guicybercode
Todos os textos

Guilherme Monteiro · São Paulo, SP

Quem paga o kernel: a engenharia corporativa por trás do Linux

Commits, mantenedores, subsistemas e dinheiro: quem escreve, quem paga e quem decide o kernel Linux em 2026.

Resumo

O Linux começou em 1991 como hobby de um estudante, e é assim que muita gente ainda o imagina. Os números contam outra história. No kernel 7.2, lançado em agosto de 2026, 78,8% dos 16.418 commits vieram de pessoas com vínculo identificado pela LWN, seja empresa, consultoria ou instituição. Só 4,5% vieram de quem trabalhava por conta própria, contra 16,8% em 2009. Quem aceita os patches é ainda mais corporativo: no 6.19, só 1,6% das assinaturas de mantenedores vieram de gente sem empregador. Cgroups, KVM, eBPF, io_uring, Btrfs, sched_ext, PREEMPT_RT e o suporte a ARM64 nasceram de necessidades de empresas e chegaram ao mainline escritos por funcionários delas. Os robôs que testam o kernel também têm dono. Este artigo reconstrói essa história com o git log, o arquivo MAINTAINERS, as estatísticas da LWN e os relatórios da Linux Foundation, que destinou ao kernel 2,95% das despesas previstas para 2025. Mostra o que esse modelo explica e o que não resolve: revisão escassa, mantenedores sobrecarregados, concentração, sanções e a briga em torno do Rust. A origem foi pessoal. A infraestrutura é industrial.

De um hobby a uma linha de orçamento (1991–2005)

Em 25 de agosto de 1991, um estudante da Universidade de Helsinque postou no grupo comp.os.minix uma pesquisa curta sobre um sistema operacional que vinha escrevendo desde abril: "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones" [1]. No pós-escrito, Linus Torvalds avisou que o código não era portável e que provavelmente nunca rodaria em nada além de discos AT, "as that's all I have".

Trinta e cinco anos depois, o mesmo projeto fechou a versão 7.2 com 16.418 commits feitos em nove semanas por 2.652 pessoas, e a LWN identificou 249 empresas pagando parte delas [2]. O hobby não ficou grande e profissional por acaso. Ficou porque alguém começou a pagar.

Havia um concorrente óbvio. O BSD de Berkeley já tinha um porte para PC, o 386BSD, mas estava preso num processo longo sobre o status legal da fita Net/2, entre a Universidade da Califórnia e a dona do código Unix, a AT&T, depois a Novell. O acordo só saiu em 1994 e exigiu a remoção de três arquivos considerados "encumbered" [3]. Em novembro de 1993, Linus contou à revista Meta que nunca tinha testado o 386BSD: "If 386BSD had been available when I started on Linux, Linux would probably never had happened" [4]. O Linux cresceu numa janela aberta por um litígio entre uma universidade e uma empresa. Não seria o último litígio da história.

Os primeiros salários vieram de quem vendia o sistema. A Red Hat abriu capital em 11 de agosto de 1999, oferecendo 6 milhões de ações a US$ 14 [5]; no primeiro pregão, a ação abriu a US$ 48,50 [6]. Em novembro de 2001, as mensagens em que Marcelo Tosatti conduzia a série estável 2.4, a que rodava nos servidores da época, saíam de marcelo@conectiva.com.br [7]. A Conectiva era uma distribuição de Curitiba. O mantenedor da árvore estável do kernel estava na folha de pagamento de uma empresa brasileira.

Em dezembro de 2000, a IBM anunciou que gastaria US$ 1 bilhão com Linux em 2001, segundo a cobertura da News.com e da ZDNet reunida pela LWN [8]. Não encontrei o comunicado original da IBM. O vice-presidente de tecnologia, Irving Wladawsky-Berger, disse que a empresa já tinha investido cerca de 1 bilhão e que o número ia crescer, e a LWN comentou na mesma edição: "IBM is not a philanthropic organization. What they invest now they expect to get back" [9]. A IBM mantinha desde agosto de 1999 um Linux Technology Center, que em 2001 tinha cerca de 185 funcionários [10].

Em 31 de agosto de 2000, HP, Intel, IBM e NEC fundaram o Open Source Development Lab, o OSDL, com Caldera, Dell, Red Hat, SuSE, SGI e outras como patrocinadoras [11]. Em 17 de junho de 2003, Linus deixou a Transmeta, uma fabricante de processadores onde trabalhava havia mais de seis anos, e virou o primeiro "OSDL Fellow". O comunicado dizia que ele passaria a trabalhar "exclusively on leading the development of Linux" [12]. Pela primeira vez, o criador do kernel recebia para cuidar só dele, e quem pagava era um consórcio de fabricantes. Em janeiro de 2007, o OSDL se fundiu ao Free Standards Group e virou a Linux Foundation [13].

O dinheiro também mudava de mão em aquisições. Em 4 de novembro de 2003, a Novell anunciou a compra da SUSE: "Novell will pay $210 million in cash". No mesmo comunicado, a IBM se comprometia a investir US$ 50 milhões em ações preferenciais da Novell [14].

Três meses antes de Linus ir para o OSDL, em março de 2003, a SCO Group processou a IBM num tribunal de Utah por apropriação de segredos comerciais, interferência, concorrência desleal e quebra de contrato, pedindo indenização de "no less than $1 billion" [15]. A acusação de fundo era que código Unix tinha chegado ao Linux pelas mãos da IBM. Em agosto de 2007, a própria SCO informou à SEC a decisão contrária sobre a titularidade dos copyrights do UNIX, no processo contra a Novell [16]. O caso contra a IBM só terminou em 2021, com um acordo de US$ 14,25 milhões entre a IBM e o administrador da falência da SCO [17].

A resposta do kernel não foi jurídica, foi de processo. Em 23 de maio de 2004, Linus propôs que todo patch passasse a carregar uma linha Signed-off-by: [18]. A mensagem abre com "this crazy company called SCO", que teria dificuldade em acreditar que o open source funciona melhor "than their five engineers do". Quem assina certifica, pelo Developer's Certificate of Origin, que escreveu a contribuição ou tem o direito de repassá-la sob licença aberta [19], [20]. A assinatura nasceu como defesa contra um processo. Vinte anos depois, é ela que permite contar, patch por patch, quem trabalha para quem. É a matéria-prima de quase todas as estatísticas da próxima seção.

O controle de versão também veio de uma empresa. Durante a série 2.5, Linus adotou o BitKeeper, da BitMover. Era software proprietário, distribuído só em binário, com uma licença gratuita para projetos open source que impunha restrições [21]. Em novembro de 2003, alguém inseriu duas linhas na função wait4() do espelho CVS do kernel [22]:

if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
        retval = -EINVAL;

É um = no lugar de ==. Em vez de testar se o usuário era root, a linha o transformava em root. Quem chamasse wait4() com aquelas duas flags ganhava privilégio total. A mudança foi pega porque todo commit legítimo do CVS apontava para um changeset do BitKeeper, e aquele não apontava. Quem notou foi Larry McVoy, o dono da BitMover [22].

Em abril de 2005, a versão gratuita acabou. A LWN registrou que a gota d'água foi "a certain high-profile developer who refused to stop reverse engineering work while simultaneously doing some work for OSDL" [21]. Em 6 de abril, Linus escreveu que "the kernel team is looking at alternatives" e pediu que ninguém culpasse a BitMover [23]. No dia seguinte fez o primeiro commit de uma ferramenta nova: "Initial revision of "git", the information manager from hell" [24]. Em 16 de abril, o kernel entrou no Git com o commit 1da177e4, "Linux-2.6.12-rc2", sem o histórico anterior, que somaria "about 3.2GB" [25].

No mesmo período mudou o modelo de desenvolvimento. Na Kernel Summit de julho de 2004, Andrew Morton defendeu uma série 2.6 que continuasse mudando e deixasse "the distributors do the final stabilization work" [26]. As séries ímpares de desenvolvimento acabaram. A estabilização passou para quem vende suporte.

DataFatoQuem pagou ou motivou
ago/1991Post no comp.os.minixninguém: um hobby
nov/1993Linus diz que o 386BSD não estava disponível quando começouo processo sobre o Net/2
ago/1999IPO da Red Hat; Linux Technology CenterRed Hat; IBM
ago/2000Fundação do OSDLHP, Intel, IBM e NEC
dez/2000US$ 1 bilhão para Linux em 2001IBM
nov/2001Série 2.4 conduzida de um e-mail da ConectivaConectiva
mar/2003SCO processa a IBMSCO
jun/2003Linus vira o primeiro OSDL FellowOSDL, isto é, as empresas associadas
nov/2003Novell compra a SUSE; tentativa de backdoor em wait4()Novell e IBM; BitKeeper detecta
mai/2004Developer's Certificate of Origin e Signed-off-byresposta ao processo da SCO
abr/2005Fim do BitKeeper gratuito; nasce o GitBitMover

Em 2005, o kernel tinha um criador pago por um consórcio de fabricantes, uma regra de assinatura criada contra um processo corporativo e uma ferramenta de versionamento nascida de uma briga de licença. A origem foi pessoal. A infraestrutura que deixou o projeto crescer, não.

Quem escreve o kernel

Já escrevi por aí que uns 80% do kernel é feito por big tech. Fui conferir. O número está quase certo. A palavra, não.

Em fevereiro de 2007, Jonathan Corbet, editor da LWN, escreveu uns scripts para descobrir de onde vinha o código do 2.6.20. O método era simples e assumidamente imperfeito, porque "very few developers say 'I wrote this on behalf of my employer.'" Todo patch cujo endereço de e-mail indicasse uma empresa foi contado como trabalho daquela empresa [27]. A LWN repete a análise a cada versão desde então, e duas linhas das tabelas importam mais que as outras. "(None)" são desenvolvedores que a LWN sabe que trabalham por conta própria. "(Unknown)" são os que ela não conseguiu identificar, uma mistura de voluntários com funcionários que usam e-mail pessoal. Já em 2007, a conclusão era que "at least 65% of the code which went into 2.6.20 was created by people working for companies". O "pelo menos" vinha do fato de 25,0% dos commits estarem em "(Unknown)", e a hipótese de que todos fossem voluntários era tratada como "an unlikely result" [27].

Os relatórios anuais da Linux Foundation, escritos pelo mesmo Corbet com Greg Kroah-Hartman, chegaram ao mesmo lugar. Em 2008, estimavam que entre 70% e 95% dos desenvolvedores eram pagos, o que derrubaria o "'hobbyist' myth present from the start of open source development" [28]. Em 2012, eram 75% do desenvolvimento [29]. Em 2015, mais de 80% [30]. O relatório de 2017 é o mais direto: mesmo supondo que todos os "unknown" trabalhassem de graça, "well over 85 percent of all kernel development is demonstrably done by developers who are being paid for their work". A fatia sem salário tinha caído de 14,6% no relatório de 2012 para 8,2%, e a explicação dada é de mercado de trabalho: "kernel developers are in short supply, so anybody who demonstrates an ability to get code into the mainline tends not to have trouble finding job offers" [31]. O voluntário que dá certo vira funcionário.

A série da LWN mostra o pico do trabalho sem patrão em 2009, com 16,8% dos commits do 2.6.30 [32]. Depois, a fatia cai quase sem parar: 12,0% no 3.0 [33], 8,6% no 4.0 [34], 3,1% no 6.0 [35]. Houve uma exceção grande e instrutiva. No 6.7, de janeiro de 2024, "(None)" saltou para 18,1%. Não foi uma volta dos voluntários. Foi o bcachefs, um sistema de arquivos que Kent Overstreet desenvolveu "on his own, supported by interested users on Patreon", e cujo histórico inteiro entrou de uma vez [36]. Uma pessoa moveu a média do kernel inteiro, e o mesmo bcachefs sairia do mainline menos de dois anos depois, como a seção sobre tensões conta.

VersãoLançamentoCommits (LWN)Sem empregador, "(None)"Não identificado, "(Unknown)"
2.6.2004/02/20074.9837,7%25,0%
2.6.3009/06/200911.733 até o rc716,8%10,1%
3.021/07/20119.007 até o rc712,0%6,3%
4.012/04/2015pouco mais de 10.0008,6%7,1%
6.002/10/202215.4023,1%6,6%
6.707/01/202417.28418,1% (bcachefs)6,7%
6.1830/11/202513.7104,6%9,5%
7.216/08/202616.4184,5%16,7%

As datas são as das tags no repositório do kernel [37]; as porcentagens contam commits, e as fontes são as matérias da LWN de cada versão [27], [32], [33], [34], [35], [36], [38], [2]. No ano de 2025 inteiro, do 6.13 ao 6.18, a LWN contou 5,3% sem empregador e 8,5% não identificados [38].

O "(Unknown)" de 16,7% do 7.2 é o número mais alto da série recente, e a própria LWN o atribui "partially, at least" à "ongoing flood of new developers entering the kernel community". Foram 613 estreantes, um recorde. No mesmo ciclo, 1.111 mudanças, "under 7% of the total", traziam a etiqueta Assisted-by, que declara o uso de ferramentas de IA, contra 301 no 7.1 [2]. O desconhecido está crescendo, e parte dele chega com um modelo de linguagem do lado.

Estas são as empresas do 7.2, por commits [2]:

EmpregadorCommitsParcela
(Unknown)2.74316,7%
Intel1.5129,2%
Google1.1917,3%
Red Hat8735,3%
AMD8135,0%
Qualcomm7674,7%
(None)7434,5%
NVIDIA5353,3%
Meta4412,7%
(Consultant)4292,6%
SUSE3582,2%
Renesas Electronics3282,0%
IBM3071,9%
Kylin2781,7%
NXP Semiconductors2641,6%

Volto à minha frase. Tirando "(Unknown)" e "(None)", sobram 12.932 dos 16.418 commits do 7.2, ou 78,8%, de gente com vínculo identificado: empresas, consultorias, universidades [2]. "Uns 80%" passa. "Big tech", não. As cinco maiores empresas nomeadas, Intel, Google, Red Hat, AMD e Qualcomm, somam 5.156 commits, 31,4%. As dez maiores, 43,4%. O resto se espalha por 249 empregadores: fabricantes de chips como Renesas e NXP, consultorias como BayLibre e Bootlin, distribuições como SUSE e Kylin. Por linhas alteradas, a ordem muda: a AMD lidera, com 22,4% [2]. O kernel não é escrito por meia dúzia de empresas. É escrito por uma indústria inteira.

Escrever é metade do poder. A outra metade é aceitar. Quando um mantenedor aplica um patch na sua árvore, acrescenta o próprio Signed-off-by; contar essas assinaturas de quem não é o autor mostra quem controla o que entra. Em 2009, 42,4% delas eram de funcionários da Red Hat [32]. Em 2017, "over half of the patches going into the kernel pass through the hands of developers employed by just five companies" [31]. Em 2023, a LWN refez a conta e chegou ao mesmo ponto: "over 50% of the changes going into the kernel pass through the hands of maintainers working for just five companies" [39]. No 6.19, de fevereiro de 2026, a Meta lidera, e as assinaturas de mantenedores sem empregador são 1,6% [40].

Empregador2.6.30 (2009)4.8 a 4.13 (2017)6.19 (2026)
Red Hat42,4%20,6%4,9%
Intel9,5%9,7%9,5%
Google6,6%7,4%9,9%
Linux Foundation2,2%9,1%3,4%
Novell, depois SUSE13,8% (Novell)2,4% (SUSE)3,2% (SUSE)
Linarofora da lista7,9%6,0%
Meta (antes Facebook)fora da lista2,0%11,8%
Armfora da lista1,3%8,9%
AMDfora da lista2,4%6,5%
Sem empregador4,1%3,9%1,6%

A tabela mostra Signed-off-by de quem não é o autor do patch, isto é, de quem aceitou o código [32], [31], [40]. "Fora da lista" quer dizer que a empresa não aparece entre as publicadas naquele levantamento.

E quem lê o que entra? As etiquetas do commit contam parte da história. Contei no git log a fatia de commits com pelo menos um Reviewed-by, Acked-by ou Tested-by [37]:

VersãoCommits sem mergeReviewed-byAcked-byTested-byPelo menos um dos três
2.6.204.7680,0%10,2%0,1%10,3%
3.09.1537,5%13,6%3,8%22,4%
4.010.34616,8%15,5%5,6%34,1%
5.012.80831,6%16,6%5,7%46,2%
6.015.40239,2%16,2%9,0%52,9%
7.014.25153,8%13,3%9,4%64,1%
7.216.41848,2%13,6%8,0%58,6%

O método é o seguinte: git log --no-merges entre as tags de cada versão, num clone do repositório torvalds/linux de 2 de outubro de 2026, contando os commits cuja mensagem tem uma linha começando por uma das três etiquetas. Nas versões antigas, as contagens do git log diferem um pouco das da LWN, que usava outro recorte. Para o 6.18, a LWN registrou 53,6% com Reviewed-by e chamou o número de "typical" [38]. Em 2026, então, de cada cinco commits, dois entram sem nenhuma etiqueta de revisão, só com a assinatura de quem escreveu e de quem aplicou. No 7.2, foram 6.794. Isso não quer dizer que ninguém leu: muito review acontece na lista sem virar etiqueta, e o mantenedor que aplica um patch lê o que aplica. Mas "qualquer um pode auditar o kernel" pede um asterisco. Poder, pode. O registro de que alguém além do autor e do mantenedor olhou existe em pouco mais da metade do que entra.

A academia chega a números parecidos por outros caminhos. A tese de Urs Lerch na TU Berlin analisou todos os logs do kernel de 2007 e concluiu que "commercial companies contribute 75 percent to the kernel development" [41]. Um estudo de 2014 sobre o open source em geral estimou que cerca de metade do trabalho é pago [42]. O kernel está bem acima dessa média.

Por commits, quatro em cada cinco vêm de quem está na folha de pagamento de alguém. Pelo poder de aceitar, são mais de 95%. O voluntário existe, é mensurável e está nas bordas: 4,5% do código do 7.2 e 1,6% das chaves do 6.19.

Feito sob encomenda: subsistemas de origem corporativa

O post de 1991 dizia que o sistema "is NOT protable (uses 386 task switching etc)" e que provavelmente nunca suportaria nada além de discos AT [1]. No 7.2, o kernel tem 37,7 milhões de linhas de código-fonte em C, Rust e assembly; 69,0% delas estão em drivers/, e o diretório arch/ tem 21 subdiretórios [37]. Contei os arquivos .c, .h, .rs e .S da tag v7.2 direto dos objetos do Git. Cada um desses diretórios tem alguém pagando. Esta seção percorre os subsistemas que mais mudaram o que o Linux é, sempre com o mesmo roteiro: o problema de uma empresa, o mecanismo que o resolveu, as alternativas que perderam e o caminho até o mainline.

cgroups e namespaces: a base dos contêineres

Em 14 de setembro de 2006, Rohit Seth mandou para o LKML a introdução de um patch chamado containers. A justificativa era de data center: "Commodity HW is becoming more powerful", e rodar cargas diferentes na mesma máquina exigia "a notion of limits for each workload in Linux kernel" [43]. Seth escrevia de um endereço do Google, e o trabalho passou para Paul Menage, que "like Rohit, posts from a google.com address" [44]. Anos depois, o artigo do Google sobre o Borg, o orquestrador interno da empresa, diria que "all Borg tasks run inside a Linux cgroup-based resource container" [45].

No Ottawa Linux Symposium de 2007, Menage, com Balbir Singh e Srivatsa Vaddagiri, do Linux Technology Center da IBM, apresentou um framework genérico construído sobre os cpusets que já existiam [46]. O desenho é barato de propósito: cada tarefa ganha um único ponteiro para um css_group compartilhado, e "the space overhead is one pointer per task, and the time overhead is one reference count operation per fork()/exit()". Das alternativas da época, os ResGroups perderam porque "the additional overheads that it introduces are unnecessary" [46]. O commit de Menage entrou no 2.6.24, lançado em janeiro de 2008 [47].

A primeira versão permitia várias hierarquias independentes. Não funcionou: a documentação da versão 2, escrita por Tejun Heo, diz que essa flexibilidade "wasn't useful in practice" [48]. A hierarquia unificada entrou como experimental no 3.16 [49] e foi considerada estável no 4.5 [50]. A interface continua sendo um sistema de arquivos [48]:

mkdir /sys/fs/cgroup/job
echo "+memory +cpu" > /sys/fs/cgroup/cgroup.subtree_control
echo 512M > /sys/fs/cgroup/job/memory.max
echo $$ > /sys/fs/cgroup/job/cgroup.procs

Em 2018, o Facebook acrescentou o PSI, que mede quanto tempo as tarefas passam travadas esperando CPU, memória ou I/O. O recurso, "developed by Facebook engineer Johannes Weiner" [51], já era "used within Facebook for some time" quando foi proposto [52], e entrou no 4.20 [53].

Os cgroups limitam quanto um processo usa. Os namespaces limitam o que ele vê. A ideia vem do Unix de pesquisa: "The Use of Name Spaces in Plan 9", de Rob Pike, Ken Thompson e colegas da Bell Labs [54]. Eric Biederman citou a inspiração no OLS de 2006 e mirou a alternativa da época: "Hypervisor solutions like Xen are nice but they impose a performance penalty" [55]. Os namespaces entraram aos pedaços ao longo de quase dezoito anos: montagem no 2.4.19, UTS e IPC no 2.6.19, PID no 2.6.24, rede completa por volta do 2.6.29 e usuário no 3.8 [56], cgroup no 4.6 [57] e tempo no 5.6 [58]. Os autores vieram de toda parte: o UTS saiu de um endereço @us.ibm.com [59]; o PID foi "developed by the OpenVZ team with the help of IBM" [60]; o de cgroup foi escrito no Google; o de tempo, numa parceria entre OpenVZ e Arista [57], [58]. No meio desse trabalho estava um brasileiro: os commits de Glauber Costa que estenderam a contabilidade de memória dos cgroups saíram de @parallels.com em 2013 [37]. Os contêineres que viraram padrão na indústria são, no kernel, essas duas peças combinadas.

KVM: da Qumranet à Red Hat

Em 19 de outubro de 2006, Avi Kivity apresentou ao LKML um driver chamado KVM. A ideia era aproveitar as extensões de virtualização que Intel e AMD tinham acabado de pôr nos processadores e deixar todo o resto com o Linux: "Each virtual machine is a process on the host; a virtual cpu is a thread in that process. kill(1), nice(1), top(1) work as expected." O driver acrescenta "a third execution mode", o modo convidado, ao lado dos modos kernel e usuário; qualquer acesso a dispositivo de I/O é interceptado e devolvido ao espaço de usuário, onde um QEMU levemente modificado emula o hardware [61]. O escalonador, o gerenciamento de memória e as ferramentas de processo do Linux passam a valer para máquinas virtuais sem código novo para isso.

O artigo do OLS de 2007, assinado por quatro engenheiros da Qumranet e um da IBM, descreve o resto: uma tabela de ponteiros de função, kvm_arch_ops, separa Intel de AMD; tabelas de páginas sombra mantêm a memória do convidado coerente; um log de páginas sujas permite migrar uma máquina virtual em funcionamento; e "In kvm, I/O virtualization is performed by userspace" [62]. Para quem usa, tudo é ioctl sobre /dev/kvm [63]:

int kvm  = open("/dev/kvm", O_RDWR);
int vm   = ioctl(kvm, KVM_CREATE_VM, 0);
int vcpu = ioctl(vm, KVM_CREATE_VCPU, 0);
struct kvm_run *run = mmap(NULL, ioctl(kvm, KVM_GET_VCPU_MMAP_SIZE, 0),
                           PROT_READ | PROT_WRITE, MAP_SHARED, vcpu, 0);
for (;;) {
        ioctl(vcpu, KVM_RUN, 0);          /* roda o convidado até uma saída */
        if (run->exit_reason == KVM_EXIT_IO || run->exit_reason == KVM_EXIT_MMIO)
                emular_dispositivo(run);  /* o espaço de usuário faz o papel do hardware */
}

Do primeiro e-mail à versão estável foram menos de quatro meses: o commit, de avi@qumranet.com, entrou no 2.6.20, lançado em 4 de fevereiro de 2007 [64]. O concorrente, o Xen, só teve o suporte a dom0 aceito no 3.0, em 2011 [65]. Em setembro de 2008, a Red Hat pagou "approximately $107 million in cash" pela Qumranet [66]. No 3.0, o MAINTAINERS listava dois mantenedores do KVM, Avi Kivity e Marcelo Tosatti, o mesmo do 2.4, ambos com e-mail @redhat.com [67]. Glauber Costa escreveu parte do kvmclock, o relógio paravirtualizado do KVM, também de @redhat.com [37].

Hoje o KVM sustenta as maiores nuvens. A AWS diz que o hypervisor do Nitro "is built on core Linux Kernel-based Virtual Machine (KVM) technology" [68]. O Google Cloud roda KVM com um monitor de máquina virtual próprio, porque "Google does not use QEMU" [69]. No 7.2, o KVM é mantido por Paolo Bonzini, de endereço da Red Hat, e o KVM para x86 também por Sean Christopherson, do Google; as duas entradas são Supported [70].

eBPF e XDP: programas dentro do kernel

O BPF original é de 1992, de Steven McCanne e Van Jacobson, no Lawrence Berkeley Laboratory: uma máquina virtual de registradores para filtrar pacotes dentro do kernel, "10 to 150 times faster than Sun's NIT" [71]. Por duas décadas, serviu ao tcpdump e a pouco mais.

Em março de 2014, Alexei Starovoitov, de @plumgrid.com, reescreveu o interpretador interno com um conjunto de instruções "designed to be JITed with one to one mapping" [72]. Entrou no 3.15. Em setembro do mesmo ano veio a syscall bpf(), com os maps, estruturas de dados compartilhadas entre o programa no kernel e o espaço de usuário, que entrou no 3.18 [73]. Havia um concorrente, o ktap, outra máquina virtual para tracing. A LWN resumiu o impasse: "Putting one virtual machine into the kernel for tracing is a hard sell; adding two of them is not really seen as an option by anybody involved" [74]. Ficou o BPF.

O que torna aceitável rodar código de usuário dentro do kernel é o verifier. Ele percorre o programa como um grafo acíclico, recusa laços e acompanha o estado de todos os registradores e posições da pilha antes de aceitar a carga; só então o JIT traduz para instruções nativas [75].

Em julho de 2016, Brenden Blanco, também de @plumgrid.com, acrescentou o XDP, um tipo de programa que roda no driver de rede antes de o kernel alocar suas estruturas para o pacote [76]. Entrou no 4.8. O artigo do XDP na CoNEXT de 2018, com autores da Red Hat, da Cilium e de outras empresas e universidades, mediu 24 milhões de pacotes por segundo num núcleo, contra 43,5 milhões do DPDK, que tira a placa de rede do kernel [75]. A troca é deliberada: menos velocidade bruta, mas o pacote continua no kernel, com firewall, roteamento e o resto.

Starovoitov foi para o Facebook, de onde commitou entre 2016 e 2018 [37]. Em 2019, a empresa tinha "about 40 BPF programs running on each server, with another 100 that are demand loaded" [77]. Em 2020, KP Singh, do Google, levou o BPF aos hooks de segurança do kernel no 5.7 [78], apesar da objeção de Casey Schaufler: "This effectively exposes the LSM hooks as external APIs. It would mean that we can't change or delete them" [79]. Em outubro de 2024, o conjunto de instruções virou padrão da IETF, o RFC 9669, que avisa que eBPF "is no longer an acronym for anything" [80].

io_uring: Meta escreve, Google desliga

O Linux já tinha uma interface de I/O assíncrono, a AIO, mas ela servia mal a quem usava o page cache: "buffered I/O has always been a bit of a sore spot for Linux AIO" [81]. Em janeiro de 2019, Jens Axboe, mantenedor da camada de blocos, propôs outro caminho [82]. Axboe passou pela SUSE, pela Oracle e pela Fusion-io e commitou de @fb.com entre 2014 e 2017 [37]; o perfil público dele no GitHub ainda declara o Facebook como empresa [83].

O mecanismo cabe numa frase do commit: "The submission queue (SQ) and completion queue (CQ) rings are shared between the application and the kernel. This eliminates the need to copy data back and forth to submit and complete IO" [82]. A aplicação escreve pedidos num array de io_uring_sqe, põe os índices no anel de submissão e chama io_uring_enter() uma vez para o lote inteiro; os resultados aparecem como io_uring_cqe no anel de conclusão, que ela lê sem chamada de sistema.

 aplicação                                 kernel
 ---------                                 ------
 preenche SQEs no array
 escreve índices no SQ ring ---------->    consome o SQ ring, executa o I/O
 io_uring_enter(fd, n, ...) ---------->    (uma syscall para n pedidos)
 lê CQEs do CQ ring         <----------    escreve uma CQE por pedido concluído

 SQ ring, CQ ring e array de SQEs ficam em memória compartilhada (mmap)

Cada conclusão é uma estrutura de 16 bytes, que dobra com a opção IORING_SETUP_CQE32 [37]:

struct io_uring_cqe {
	__u64	user_data;	/* sqe->user_data value passed back */
	__s32	res;		/* result code for this event */
	__u32	flags;
	__u64	big_cqe[];	/* só existe com IORING_SETUP_CQE32 */
};

Entrou no 5.1, em maio de 2019. A conta veio depois. Em junho de 2023, o Google publicou que, no kCTF, seu programa de recompensas por exploits de kernel, "60% of the submissions exploited the io_uring component of the Linux kernel (we paid out around 1 million USD for io_uring alone)". A empresa desligou o io_uring no ChromeOS, bloqueou o acesso de apps no Android e escreveu: "It is disabled on production Google servers" [84]. Dois meses depois, um engenheiro do Google, Matteo Rizzo, mandou o sysctl io_uring_disabled, que entrou no 6.6 [85]. Um subsistema escrito por quem trabalhava numa empresa ganhou o interruptor escrito por outra.

Btrfs e XFS: sistemas de arquivos com crachá

Em 12 de junho de 2007, Chris Mason anunciou um sistema de arquivos novo: "After the last FS summit, I started working on a new filesystem that maintains checksums of all file data and metadata." O código tinha "a sparsely commented 10,547 lines" [86]. O Btrfs organiza tudo em árvores B com cópia na escrita: nada é sobrescrito no lugar, e um snapshot é uma raiz nova que compartilha blocos com a anterior [87]. Entrou no 2.6.29, em março de 2009 [88].

A história do Btrfs acompanha os crachás de Mason: 972 commits dele saíram de @oracle.com, 44 de @fusionio.com e, a partir de dezembro de 2013, 148 de @fb.com e 34 de @meta.com [37]. Josef Bacik fez caminho parecido, de Red Hat a Fusion-io e Facebook [37]. No Facebook, o Btrfs virou a raiz dos contêineres internos: "Containers in this system use Btrfs for the root filesystem" [89]. As distribuições escolheram lados. A Red Hat descontinuou o Btrfs no RHEL 7.4 e avisou que ele "will be removed in a future major release" [90]. O Fedora, com Bacik entre os autores da proposta, adotou o Btrfs como padrão no Fedora 33 [91]. No 7.2, os dois mantenedores do Btrfs são Mason, de @fb.com, e David Sterba, de @suse.com [70].

O XFS veio de outra era. A Silicon Graphics o descreveu na USENIX de 1996: grupos de alocação independentes, árvores B+ para o espaço livre e alocação adiada, em que o sistema "simply reserves blocks in the file system for the data buffered in memory" [92]. O código entrou no Linux no 2.5.36, em setembro de 2002, e o anúncio de Linus resumiu: "Big patch, most of it due to the XFS merge" [93]. Anos depois, a Red Hat o descreveria como sistema "originally designed at Silicon Graphics, Inc." e o tornaria "the default file system for Red Hat Enterprise Linux 7" [94]. A verificação com o sistema montado, o scrub, começou em 2017 com Darrick Wong, de @oracle.com [95].

Schedulers: O(1), CFS, EEVDF e sched_ext

O escalonador é o código mais disputado do kernel, e a disputa conta a tese melhor que qualquer tabela.

Em janeiro de 2002, Ingo Molnar anunciou "a pretty radical rewrite of the Linux scheduler", o O(1), com os patches hospedados em redhat.com/~mingo [96]. Em março de 2007, Con Kolivas propôs o RSDL, um escalonador sem heurísticas de interatividade e com justiça completa [97]. Um mês depois, Molnar respondeu com o Completely Fair Scheduler e foi explícito: "i'd like to give credit to Con Kolivas for the general approach here: he has proven via RSDL/SD that 'fair scheduling' is possible and that it results in better desktop scheduling". O CFS trocou as filas de prioridade por "a time-ordered rbtree to build a 'timeline' of future task execution" [98] e entrou no 2.6.23 [99]. A ideia que ganhou foi a de Kolivas. O código que entrou foi o do engenheiro da Red Hat.

Dezesseis anos depois, Peter Zijlstra substituiu o miolo do CFS pelo EEVDF, um algoritmo publicado em 1995 por Ion Stoica e Hussein Abdel-Wahab, da Old Dominion University [100]. A promessa era apagar "a whole [bunch] of icky heuristics code" com uma política bem definida [101]. Cada tarefa tem um lag, a diferença entre o tempo de CPU que mereceria e o que recebeu; o EEVDF "picks tasks with lag greater or equal to zero and calculates a virtual deadline (VD) for each, selecting the task with the earliest VD to execute next" [102]. Entrou no 6.6, com um commit assinado "Peter Zijlstra (Intel)" [103].

Em 2023, Tejun Heo propôs o contrário de um escalonador melhor: deixar cada um escrever o seu, em BPF. O sched_ext, escrito com David Vernet, Josh Don e Barret Rhoden [104], ouviu do mantenedor do escalonador: "I hate all of this. Linus NAK'ed loadable schedulers a number of times in the past and this is just that again -- with the extra downside of the whole BPF thing on top" [104]. Em junho de 2024, Linus decidiu por cima do mantenedor: "I honestly see no reason to delay this any more" [105]. O commit tem Vernet como coautor, de @meta.com, e três Acked-by de endereços @google.com [106]; o perfil de Heo no GitHub declara o Facebook [107]. Entrou no 6.12. Um escalonador em BPF é uma tabela de funções que o kernel chama nos momentos certos, e qualquer erro o derruba de volta para o escalonador padrão [108]:

/* kernel/sched/ext/internal.h, Linux 7.2 (trecho) */
struct sched_ext_ops {
	s32 (*select_cpu)(struct task_struct *p, s32 prev_cpu, u64 wake_flags);
	void (*enqueue)(struct task_struct *p, u64 enq_flags);
	void (*dequeue)(struct task_struct *p, u64 deq_flags);
	void (*dispatch)(s32 cpu, struct task_struct *prev);
	void (*running)(struct task_struct *p);
	void (*stopping)(struct task_struct *p, bool runnable);
	s32 (*init_task)(struct task_struct *p, struct scx_init_task_args *args);
	/* ... */
	u32 timeout_ms;
	char name[SCX_OPS_NAME_LEN];
};

Os dois lados do debate eram funcionários de empresas: o mantenedor que assina como Intel e os autores ligados à Meta e ao Google. Quem arbitrou foi Linus, que aparece como "Fellow" na folha de pagamento da Linux Foundation [109].

Drivers: o kernel é, sobretudo, suporte a hardware

Em 5 de julho de 2015, Linus abriu o 4.2-rc1 avisando que aquele parecia "the biggest rc we've ever had, with over a million lines added". A explicação vinha em seguida: "just those register descriptor headers alone are about 41% of the entire patch". O resto do driver novo da AMD, o amdgpu, era outros 8%, o que deixava o kernel "in the somewhat odd situation where a single driver is about half of the whole rc1 in number of lines" [110]. O commit central do amdgpu é de Alex Deucher, de @amd.com [111].

Onze anos depois, contei a árvore drivers/gpu/drm/amd no 7.2: 6.343.652 linhas, ou 16,8% de todo o código-fonte do kernel. Só os headers de registradores em include/asic_reg/ somam 4.977.963 linhas, 13,2% do kernel [37]. A árvore de um único driver tem mais linhas que arch/, fs/, net/ e kernel/ somados, que chegam a 6,01 milhões [37]. A maior parte dela descreve os registradores dos chips de uma empresa, e os dois mantenedores, numa entrada Supported, têm e-mail @amd.com [70].

A Intel tem dois drivers gráficos. O i915 soma 418.774 linhas, e o xe, para as GPUs a partir de Tiger Lake, 139.555 [37]. O xe entrou no 6.8, e o commit inicial declara 16 coautores: 12 com endereço da Intel, um da Red Hat e uma da Collabora [112].

A NVIDIA foi o contraexemplo por muito tempo. O nouveau, "a reverse-engineered driver for Nvidia graphic cards", entrou em staging no 2.6.33, em 2010 [113]. Em maio de 2022, a NVIDIA publicou seus próprios módulos de kernel com licença dupla GPL e MIT, mas fora da árvore principal [114]. Em 2025, entrou no 6.15 o nova-core, escrito em Rust e "intended to serve as the successor of Nouveau for all GSP-based GPUs" [115]. O autor, Danilo Krummrich, commitou de @redhat.com de 2022 a 2024 [37], e no 7.2 divide a manutenção com Alexandre Courbot, de @nvidia.com [70].

Na rede, o padrão se repete. O mlx5, driver da Mellanox para as placas Connect-IB, entrou no 3.11, em 2013, escrito por Eli Cohen, de @mellanox.com [116]. Em abril de 2020, a NVIDIA concluiu a compra da Mellanox por US$ 7 bilhões [117]. Os quatro mantenedores do mlx5 no 7.2 têm endereço @nvidia.com [70].

Arquiteturas: cada processador, um patrocinador

A IBM chegou cedo. O porte para mainframe, o s390, apareceu no patch do 2.2.14, publicado em janeiro de 2000, com cabeçalhos que dizem "Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation" [118]. O ppc64, para os servidores POWER, chegou na série de desenvolvimento no 2.5.5, em fevereiro de 2002, também com código de copyright da IBM [119]. No 7.2, os mantenedores do s390 e do PowerPC têm todos endereço @linux.ibm.com, e as duas entradas são Supported [70].

O ARM foi o caso da bagunça. Em 2010, a LWN contava "nearly 70 different sub-architectures" no diretório ARM, uma por chip ou SoC, e registrava a fundação do Linaro por Arm, Freescale, IBM, Samsung, ST-Ericsson e Texas Instruments, com orçamento de "tens of millions of dollars, much of which will pay for 80 employees" [120]. Em março de 2011, Linus perdeu a paciência: "Gaah. Guys, this whole ARM thing is a f*cking pain in the ass" [121]. O suporte a 64 bits veio da própria Arm, num "36-part patch set" de Catalin Marinas [122], com o commit inicial em endereços @arm.com de Marinas e Will Deacon [123]. Entrou no 3.7, em dezembro de 2012. O suporte à família MSM, da Qualcomm, entrou no 2.6.25 pelas mãos de um engenheiro do Google, Brian Swetland [124]; no 2.6.35, os três mantenedores da plataforma tinham endereço @codeaurora.org [125].

O RISC-V repetiu o roteiro. O commit inicial é de Palmer Dabbelt, de julho de 2017 [126], e o MAINTAINERS do 4.15 o lista, com Albert Ou, em endereços @sifive.com, numa entrada marcada como Supported, o status que o próprio arquivo define como "Someone is actually paid to look after this" [127].

PREEMPT_RT: vinte anos fora da árvore

Em 13 de outubro de 2004, Ingo Molnar publicou o que chamou de "the first correct conversion of the Linux kernel to a fully preemptible (fully mutex-based) preemption model", de novo hospedado em redhat.com/~mingo [128]. A ideia é fácil de dizer e difícil de fazer: num kernel de tempo real, "spinlock_t is mapped to a separate implementation based on rt_mutex", um lock que dorme e herda prioridade, e os tratadores de interrupção rodam em threads. Só o raw_spinlock_t continua girando, "a strict spinning lock implementation in all kernels, including PREEMPT_RT kernels" [129].

Levou vinte anos. O patch viveu fora da árvore principal, e os pedaços entraram aos poucos: interrupções em threads no 2.6.30, por Thomas Gleixner, de @linutronix.de [130], e o símbolo CONFIG_PREEMPT_RT no 5.3 [131]. Em 2015, a Linux Foundation montou um projeto para financiar o trabalho, com o Google como membro Platinum fundador e National Instruments, OSADL e Texas Instruments como membros Gold; Gleixner, que mantinha o ramo "for more than a decade", virou Linux Foundation Fellow [132]. Em 2022, a Intel comprou a Linutronix, que ela mesma descreveu como "the architect of PREEMPT_RT (Real Time)" [133]. O último obstáculo era o printk, reescrito com consoles que não dependem do lock global [134]; o commit que liberou o x86 registra que, "with the recent printk changes, the last known road block has been addressed" [135]. Em setembro de 2024, o pull request de Gleixner dizia: "After twenty years of development we finally reached the point to enable PREEMPT_RT support in the mainline kernel" [136]. A justificativa do commit do x86 começa com uma frase: "It is really time." [135]. Entrou no 6.12. No ano de 2025, a Linutronix aparece entre os 20 empregadores com mais commits no kernel, com 1.149 [38].

Rust for Linux: um experimento com patrocínio

Em abril de 2021, Miguel Ojeda enviou a proposta de Rust no kernel. Linus reclamou de patches específicos, mas disse: "on the whole I don't hate it" [137]. Naquele mesmo abril, o Internet Security Research Group, a organização sem fins lucrativos por trás do Let's Encrypt, deu a Ojeda um contrato de um ano em tempo integral, "made possible through financial support from Google" [138]. O suporte entrou no 6.1, em dezembro de 2022, num pull request que agradecia a 173 pessoas e informava: "Miguel is the primary maintainer" [139].

As empresas vieram atrás. Wedson Almeida Filho, um dos primeiros mantenedores, commitou de @google.com e depois de @microsoft.com [37]. O driver Binder do Android, reescrito em Rust por Alice Ryhl, de @google.com, entrou no 6.18. O commit começa com "We're generally not proponents of rewrites (nasty uncomfortable things that make you late for dinner!)" e explica o porquê: o Binder em C, com cerca de 6 mil linhas, "combines/nests 13 different locks, 7 reference counters, and atomic variables" [140]. O nova-core, da Red Hat com a NVIDIA, é Rust desde o primeiro commit [115].

Em dezembro de 2025, na Maintainers Summit, o experimento foi declarado encerrado. A LWN registrou que o código Rust tinha crescido "by a factor of five over the last year" e que aparelhos com Android 16 e kernel 6.12 já traziam um módulo em Rust, o ashmem: "So there are millions of real devices running kernels with Rust code now" [141]. O commit de Ojeda que tira o rótulo de experimental, no 7.0, termina pedindo exatamente o que este artigo descreve: "I hope this signals commitment from the kernel to companies and other entities to invest more into it, e.g. into giving time to their kernel developers to train themselves in Rust" [142]. No 7.2, o Rust ainda é pouco: 473 arquivos .rs, 182.584 linhas, 0,5% do código-fonte [37]. A briga política em torno dele fica para a seção sobre tensões.

Um patch para jogar no Linux

O padrão vale também em escala pequena. Jogos de Windows esperam vários eventos ao mesmo tempo com WaitForMultipleObjects; o futex() do Linux esperava um endereço por chamada. Em 30 de julho de 2019, Gabriel Krisman Bertazi, de @collabora.com, mandou o FUTEX_WAIT_MULTIPLE, com duas assinaturas de @valvesoftware.com. Com ele, no Proton, "using futexes in our Wine use case reduced the CPU utilization by 4% for the game Beat Saber and by 1.5% for the game Shadow of Tomb Raider" [143]. A interface que entrou foi outra, uma syscall própria escrita por André Almeida, também de @collabora.com [144]: o futex_waitv() chegou no 5.16, em janeiro de 2022, com o caso de uso declarado, emular o WaitForMultipleObjects, "which allows software like Proton to improve the performance of Windows Games" [145]. Dois brasileiros, uma consultoria de código aberto e uma empresa de games: o caminho de um patch até o mainline.

SubsistemaQuem começou (empresa na época)Entrada no mainline
cgroupsRohit Seth e Paul Menage (Google)2.6.24, jan/2008
namespacesIBM, OpenVZ, Google, Arista e outrosdo 2.4.19 (2002) ao 5.6 (2020)
KVMAvi Kivity (Qumranet, depois Red Hat)2.6.20, fev/2007
eBPFAlexei Starovoitov (PLUMgrid)3.15 e 3.18, 2014
XDPBrenden Blanco (PLUMgrid)4.8, out/2016
io_uringJens Axboe (ver texto)5.1, mai/2019
BtrfsChris Mason (Oracle)2.6.29, mar/2009
XFSSilicon Graphics2.5.36, set/2002
CFSIngo Molnar (Red Hat)2.6.23, out/2007
EEVDFPeter Zijlstra (Intel)6.6, out/2023
sched_extTejun Heo e David Vernet (Meta), com o Google6.12, nov/2024
amdgpuAlex Deucher (AMD)4.2, ago/2015
xeIntel, com Red Hat e Collabora6.8, mar/2024
mlx5Eli Cohen (Mellanox)3.11, set/2013
arm64Catalin Marinas e Will Deacon (Arm)3.7, dez/2012
RISC-VPalmer Dabbelt e Albert Ou (SiFive)4.15, jan/2018
s390IBM Alemanha2.2.14, jan/2000
PREEMPT_RTIngo Molnar (Red Hat) e Thomas Gleixner (Linutronix)6.12, nov/2024
RustMiguel Ojeda (contrato da ISRG pago pelo Google)6.1, dez/2022
futex_waitvAndré Almeida (Collabora), para a Valve5.16, jan/2022

Quase nenhum desses subsistemas nasceu de alguém resolvendo um problema pessoal no fim de semana. Nasceram de um data center que precisava isolar cargas, de uma startup que queria vender virtualização, de outra que queria programar o caminho dos pacotes, de um fabricante que precisava que seu chip funcionasse. O mainline é onde essas necessidades se encontram e passam a ser mantidas em conjunto.

Quem decide

Um patch leva dois ou três meses para sair da caixa de e-mail de um mantenedor e chegar a um release. O caminho é público e documentado, e quase todas as mãos por onde ele passa estão na folha de pagamento de alguém.

A documentação descreve o ritmo. Um release novo sai "every two or three months" e traz "about 13,000 changesets". Primeiro vem uma merge window que "lasts for approximately two weeks", em que Linus puxa o que os mantenedores acumularam. Depois, um -rc "about once a week", até algo entre o -rc6 e o -rc9 [146]. O 7.2 levou nove semanas, de 14 de junho a 16 de agosto de 2026 [37]. Antes de chegar a Linus, o código passa pela árvore de um subsistema e pela linux-next, "maintained by Mark Brown", que é o retrato do que o mainline deve virar na próxima merge window [146].

 autor --e-mail--> lista do subsistema
                     (revisão pública: Reviewed-by, Acked-by, Tested-by)
                            |
                            v
                   árvore do mantenedor  (+ Signed-off-by de quem aplicou)
                            |
                            v
                       linux-next  (integração das árvores dos subsistemas)
                            |   merge window: cerca de duas semanas
                            v
                  mainline (Linus) --> -rc1 ... -rc7 --> release 7.x
                            |
                            v
          stable e LTS (Greg Kroah-Hartman, Sasha Levin):
          só correções que já estão no mainline, até 100 linhas

Depois do release, as correções descem para as árvores stable e de longo prazo. A regra é dura: o patch precisa "already exist in Linux mainline (upstream)" e "cannot be bigger than 100 lines, with context" [147]. Quanto tempo uma versão de longo prazo vive é, literalmente, decisão de mercado. Cada uma "usually starts with only a 2-year projected EOL that can be extended further if there is enough interest from the industry at large to help support it for a longer period of time" [148]. Em outubro de 2026, há seis séries LTS, do 5.10 ao 6.18, com fim projetado entre dezembro de 2026 e dezembro de 2028 [148]. Desde 13 de fevereiro de 2024, o kernel também emite os próprios CVEs [149], com o critério declarado de "assign CVE numbers to any bugfix that they identify" [150]. Saiu do zero para "number 1 in 2025" entre as autoridades de CVE por volume [151], e a Linux Foundation contou 13 CVEs por dia [152].

Quem é dono de cada pedaço está num arquivo de texto. O MAINTAINERS do 7.2 tem 3.255 entradas, cada uma com mantenedores (M:), revisores (R:), lista de e-mail (L:), árvore (T:) e status (S:) [70]. O status é o dado mais franco do kernel. Supported quer dizer "Someone is actually paid to look after this"; Maintained, "Someone actually looks after it". No 7.2, 795 entradas (24,4%) se declaram pagas, 2.205 (67,7%) se declaram mantidas e 139 (4,3%) estão órfãs [70]. O número é autodeclarado e subestima o pagamento. O CGROUP, mantido por Tejun Heo, Johannes Weiner e um engenheiro da SUSE, está como Maintained; o Btrfs, com Chris Mason, de @fb.com, e David Sterba, de @suse.com, também; o mlx5, com quatro mantenedores de @nvidia.com, idem [70].

Dos 1.998 endereços de mantenedor, 287 são gmail.com e 191 kernel.org, e nenhum dos dois diz nada sobre o empregador. Depois vêm Intel (86, somando linux.intel.com), AMD (56), Red Hat (46), IBM (45), Broadcom (41), NVIDIA (35) e NXP (35) [70]. O domínio engana nos dois sentidos. Mauro Carvalho Chehab aparece no MAINTAINERS como mchehab@kernel.org, mas 2.310 dos seus commits saíram de mchehab+huawei@kernel.org [37]. Peter Zijlstra usa um domínio pessoal e assina "Peter Zijlstra (Intel)" [103]. Para saber quem paga quem, é preciso juntar provas:

ÁreaMantenedorVínculo, com a prova mais recente encontrada
Tudo o que sobra ("THE REST")Linus TorvaldsLinux Foundation: "Fellow" no formulário 990 de 2024 [109]
stable e LTSGreg Kroah-HartmanLinux Foundation: "Fellow" na página do TAB [153]
escalonadorPeter ZijlstraIntel: assina "Peter Zijlstra (Intel)" [103]
x86Borislav PetkovAMD: assina "Borislav Petkov (AMD)" [37]
x86 e escalonadorIngo Molnare-mail @redhat.com no MAINTAINERS [70]
redeEric Dumazete-mail @google.com [70]
redeJakub KicinskiFacebook, na programação da LPC 2025 [154]
redePaolo Abenie-mail @redhat.com [70]
BPFDaniel Borkmann"Isovalent at Cisco", na programação da OSS NA 2025 [155]
KVMPaolo Bonzinie-mail @redhat.com [70]
KVM para x86Sean Christophersone-mail @google.com [70]
segurança do kernelKees CookGoogle, na página do TAB [153]
AMDGPUAlex Deuchere-mail @amd.com [70]
PREEMPT_RTSebastian Andrzej Siewiore-mail @linutronix.de, empresa da Intel [70], [133]

A sucessão segue o mesmo padrão. Em abril de 2026, Andrew Morton, cujo endereço no MAINTAINERS é @linux-foundation.org [70], anunciou que vai começar a deixar a manutenção do gerenciamento de memória, função que exercia "since before memory management was even seen as its own subsystem". A árvore de integração do subsistema "will be picked up by David Hildenbrand" [156], que a página do TAB lista como funcionário da Arm [153].

Acima de tudo isso está a Linux Foundation, que paga o próprio Linus. No formulário 990 de 2024, ele aparece como "Fellow", com US$ 524.349 na coluna de remuneração e US$ 1.089.627 na coluna "Other". Dez executivos da fundação vêm antes dele na coluna principal, a começar pelo diretor executivo, Jim Zemlin, com US$ 952.166 e US$ 451.018 [109]. O relatório anual de 2025 previa receita de US$ 311,3 milhões, 42,8% dela em "Membership & Donations", e despesas de US$ 284,8 milhões. A linha "Linux Kernel Project" ficou em US$ 8,4 milhões, 2,95% do gasto. É menos que "Training", com US$ 21,6 milhões, e que "Event Services", com US$ 16,8 milhões. A maior fatia, US$ 181,9 milhões, foi para "Project Support", os outros projetos que a fundação hospeda [152]. Em 2024, o kernel tinha ficado com US$ 6,8 milhões, 2,27% [157]. Os números do relatório anual são previsões e não batem com os do formulário 990, que registrou US$ 220,7 milhões de receita em 2024 [109]. Por qualquer das duas contas, a Linux Foundation de hoje é uma fundação de muitos projetos que carrega o nome de um.

A ponte formal entre a comunidade e a fundação é o Technical Advisory Board. Ele "exists to provide advice from the kernel community to the Linux Foundation and holds a seat on the LF's board of directors" [158], e o estatuto da fundação reserva ao TAB uma das cadeiras de diretor at-large [159]. Na eleição de dezembro de 2025, havia 1.054 eleitores registrados, e 265 votaram [160]. Dos dez membros listados hoje, dois são do Google, dois da Intel, um da Arm e um do Inria; dois são Fellows da própria fundação, um declara a Qube-RT e Miguel Ojeda não declara empresa [153]. A LWN descreve o TAB como "a sort of governing board in a community that has no governing boards" [161].

O Brasil na folha de pagamento

Os brasileiros que já apareceram nos meus posts sobre o kernel também têm crachá. O domínio dos e-mails nos commits conta a carreira de cada um [37]:

DesenvolvedorOnde aparece no MAINTAINERS do 7.2Domínios nos commits (anos)
Marcelo Tosatti(mantenedor do 2.4 em 2001; do KVM em 2011)conectiva.com.br no LKML em 2001; redhat.com (2007–2024)
Arnaldo Carvalho de MeloPerformance Eventsmandriva.com (2005–2006); redhat.com (2007–2026), 4.392 de 4.726 commits
Mauro Carvalho ChehabMedia (V4L/DVB) e drivers HiSiliconredhat.com (2007–2013); samsung.com e osg.samsung.com (2013–2018); mchehab+huawei@kernel.org (2.310 commits)
Glauber Costa(kvmclock; memória nos cgroups)redhat.com (2008–2011); parallels.com (2011–2013)
Lucas De Marchi(coautor do driver xe)profusion.mobi (2011–2013); intel.com (2014–2025, 871 commits); nvidia.com (2026)
Gabriel Krisman BertaziUnicodelinux.vnet.ibm.com (2015–2016); Collabora (2016–2024); suse.de (2022–2026)
André AlmeidaFutex (revisor)collabora.com (2019–2022); igalia.com (2022–2026)
Luiz Augusto von DentzBluetoothnokia.com (2010–2011); intel.com (2011–2026, 503 commits)
Henrique de Moraes HolschuhThinkPad ACPIhmh.eng.br, domínio próprio (2006–2021, 342 commits)

As fontes são o git log do kernel, para os domínios, e o MAINTAINERS do 7.2 e do 3.0, para as funções [37], [70], [67]. O e-mail de 2001 de Tosatti está no LKML [7]. A régua da LKML é aberta, e eles passaram nela. Mas passaram, em quase todos os casos, com alguém pagando as horas. A exceção da tabela, Henrique de Moraes Holschuh, manteve um driver por quinze anos com domínio próprio, e é exatamente o tipo de contribuição que os 4,5% de "(None)" medem.

O processo é aberto: qualquer pessoa pode mandar um patch, e as regras valem para todos. Mas quem aplica, quem integra, quem decide quanto tempo uma versão vive e quem paga o árbitro final é, quase sempre, alguém com crachá.

Por que concorrentes dividem o mesmo código

Num post sobre licenças, escrevi que a GPL é legalismo e a BSD é confiança: uma obriga a devolver, a outra espera que a colaboração apareça sozinha. Olhando o kernel de perto, a frase pede uma correção. O que faz uma empresa devolver código não é só a licença. É o custo de não devolver.

O Linux não promete estabilidade a quem fica fora da árvore. O documento de Greg Kroah-Hartman sobre o assunto começa dizendo que o Linux "does not have a binary kernel interface, nor does it have a stable kernel interface". Em troca, oferece um acordo: "If your driver is in the tree, and a kernel interface changes, it will be fixed up by the person who did the kernel change in the first place". Das vantagens listadas, a primeira é econômica: "The quality of the driver will rise as the maintenance costs (to the original developer) will decrease" [162]. Quem fica fora paga o rebase a cada versão, e sai uma "every nine or ten weeks" [39]. Quem entra divide a conta com todo mundo, inclusive com os concorrentes.

O Google mediu essa conta por dentro. O Prodkernel, o kernel dos servidores da empresa, "consists of around 9000 patches on top of an older upstream Linux kernel", e o rebase desses patches para uma versão nova, feito a cada dois anos mais ou menos, é "extremely costly". O projeto Icebreaker nasceu "to provide a near-mainline kernel for development and testing within Google" [163]. O Facebook chegou lá antes. Em 2015, a empresa contou que o seu branch interno do 4.0 tinha 101 commits de 12 engenheiros, enquanto o mainline tinha recebido 238 commits de nove deles: "This is our upstream-first philosophy at work" [164]. Num congresso em 2016, um engenheiro da empresa foi direto: "Running old kernels with internal-only patches is painful" [165]. A AWS seguiu o modelo das distribuições: o Amazon Linux 2023 lança um kernel de longo prazo por ano, "based on the upstream Linux community's annual LTS kernel" [166].

O Android mostra o custo de fazer o contrário. Em 2010, Greg Kroah-Hartman contou que tinha posto os drivers do Android em staging e que o Google prometera ajudar a levá-los ao mainline, "but they didn't"; ele teve de removê-los [167]. O nó eram os wakelocks, o mecanismo de economia de energia que o Android espalhava pelos drivers. O código voltou ao staging no fim de 2011 [168], e o autosleep, uma versão do mecanismo aceitável para o mainline, entrou no 3.5, em 2012 [169], [170]. Mesmo assim, em 2017 os aparelhos ainda saíam com kernels que traziam "large amounts (often millions of lines) of out-of-tree code" [171].

O Google mudou de estratégia. Em 2018, o Android Common Kernel precisava de "only about 30 patches", com cerca de 6.500 linhas, para dar boot [172]; em 2020, ainda carregava 485 patches sobre o 5.9-rc [173]. A documentação do Android explica o porquê: antes do Generic Kernel Image, a customização de fabricantes de chip e de aparelhos "could result in as much as 50% of kernel code being out-of-tree code". Desde o Android 12, aparelhos com kernel 5.10 ou mais novo "must ship with the GKI kernel" [174], e a orientação para quem desenvolve é: "Upstream development is strongly encouraged" [175].

A Microsoft é o caso mais simbólico. Em 20 de julho de 2009, a empresa liberou "20,000 lines of device driver code to the Linux community under the popular General Public Licence v2", os drivers do Hyper-V [176]. Greg Kroah-Hartman anunciou no LKML que eles iriam para drivers/staging/ com "a whole bunch of cleanups" [177]. A limpeza foi tanta que, no 3.0, em 2011, a Microsoft respondia por 4,0% das mudanças, e a LWN comentou: "one assumes that presence will not be permanent: even the HV drivers can only need so much cleaning up" [33]. A presença ficou. Em novembro de 2016, a Microsoft virou membro Platinum da Linux Foundation [178]. Hoje mantém em público o kernel do WSL2 [179] e, no 6.19, respondia por 3,3% das assinaturas de mantenedor [40].

E a BSD? O FreeBSD prova o ponto pelo avesso. A Sony lista o "FreeBSD Kernel" entre os componentes do PlayStation 4 [180], e o XNU da Apple é "a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD", publicado pela empresa numa organização do GitHub chamada apple-oss-distributions [181]. A licença permite fechar, e muita empresa fecha. Mas a Netflix, que roda FreeBSD na sua rede de distribuição de vídeo, acompanha o branch de desenvolvimento: "a commit to the upstream FreeBSD development branch will usually be fully deployed across Netflix's CDN within 4-12 weeks" [182]. Faz isso pelo mesmo motivo de Google e Facebook no Linux: manter um fork longe do upstream é caro. A GPL obriga a publicar o código que se distribui, mas não obriga ninguém a mandar patch para o mainline. O que leva o patch até lá é a conta.

O contraexemplo vem do Solaris. Um funcionário da própria Oracle resumiu, em 2010, o que aconteceu depois da compra da Sun: a Oracle "stopped publishing binaries for recent OpenSolaris releases and stopped talking to the community at the same time". Em 3 de agosto de 2010, a Nexenta anunciou o Illumos para continuar o sistema por fora [183]. Projeto com um dono só morre quando o dono decide, e a conclusão deste artigo volta a esse ponto.

A literatura econômica tem nome para tudo isso. Lerner e Tirole, em 2002, explicaram boa parte da participação individual pela economia do trabalho, em especial pela "literature on career concerns" [184]: contribuir é currículo. O relatório da Linux Foundation de 2017 mostra o efeito no kernel, onde quem põe código no mainline arranja emprego [31]. West e Gallagher descreveram as estratégias das empresas em open source, entre elas "pooled R&D/product development" e "selling complements" [185]. É o caso do kernel: Intel, AMD e NVIDIA dividem o custo do sistema operacional e competem no hardware que roda nele. Joachim Henkel estudou empresas de Linux embarcado e mostrou que a revelação é seletiva: elas publicam parte do que desenvolvem e protegem o resto [186]. Em 2024, um estudo da Harvard Business School estimou em US$ 4,15 bilhões o custo de reescrever o software de código aberto mais usado e em US$ 8,8 trilhões o valor que ele gera para quem o usa, e mostrou que "96% of the demand-side value is created by only 5% of OSS developers" [187]. Os autores agradecem o "financial and administrative support from the Linux Foundation" [187].

Nadia Eghbal, num relatório de 2016 para a Ford Foundation, tratou o kernel como exceção. Escreveu que "The Linux Foundation is one of the most successful outliers, due to the fundamental value of the Linux kernel to nearly every corporate entity", e trouxe um dado brasileiro: um estudo da UFMG com 133 projetos populares do GitHub mostrou que 64% "relied upon just one or two developers to survive" [188]. O kernel escapou desse destino porque virou infraestrutura de quem paga.

Concorrentes dividem o mesmo código porque não dividir custa mais do que o que se ganha escondendo. A licença ajuda. Quem decide é a conta.

Os robôs que testam o kernel

Já repeti por aí que, na prática, quase ninguém lê os milhares de patches que entram no kernel. A resposta da indústria não foi contratar mais leitores. Foi pôr máquinas para ler e executar o código o tempo todo, e quase todas elas têm dono.

O syzkaller, do Google, é "an unsupervised coverage-guided kernel fuzzer", e o repositório existe desde outubro de 2015 [189]. O syzbot é o robô que o roda sem parar: "syzbot system continuously fuzzes main Linux kernel branches and automatically reports found bugs to kernel mailing lists" [190]. Em 2019, Dmitry Vyukov, que commita de @google.com [37], contou cerca de 2.300 bugs encontrados no upstream em dois anos, três por dia, e outros 2.500 em Android, ChromeOS, árvores stable e kernels internos [191]. Em 2 de outubro de 2026, o painel do syzbot mostrava 7.518 bugs corrigidos no upstream e 1.591 ainda abertos [192].

A Intel roda o 0-day, que assina os relatos como "kernel test robot". Em 2012, ele já testava a árvore de Linus, a linux-next e "more than 180 trees owned by individual kernel maintainers and developers" [193]; o código está no repositório lkp-tests [194]. No 5.5, a LWN contou de onde vinham os créditos de Reported-by: o Hulk Robot ficou com 15,7%, o syzbot com 12,0% e o robô da Intel com 9,8%, e a conclusão foi que "over 1/3 of the bug reports for the kernel (of which 934 were credited in 5.5) are now coming from automated testing systems" [195]. No git log do 5.5, os 164 créditos do Hulk Robot saem de hulkci@huawei.com, e os do robô da Intel, de lkp@intel.com [37].

O KernelCI começou do outro jeito. Ele foi "originally started in 2014 as a side project by a few engineers who were doing the testing at home and in their spare time". Em outubro de 2019, virou projeto da Linux Foundation "underwritten by BayLibre, Civil Infrastructure Platform, Collabora, Foundries.io, Google, Microsoft, Red Hat" [196]. Hoje a lista de membros inclui Arm, Google, Linaro, Microsoft, Qualcomm, Red Hat e Texas Instruments [197]. O projeto de fim de semana virou infraestrutura com patrocinadores.

As ferramentas de diagnóstico dentro do kernel têm a mesma origem. O KASAN, que detecta acesso inválido à memória, entrou no 4.0 por Andrey Ryabinin, de @samsung.com, e o próprio commit cita a família de ferramentas que o Google criou para espaço de usuário: "We've developed the set of tools, AddressSanitizer (Asan), ThreadSanitizer and MemorySanitizer" [198]. O KCSAN, para condições de corrida, é de Marco Elver, de @google.com, e entrou no 5.8 [199], [200]. O KMSAN, para memória não inicializada, é de Alexander Potapenko, também do Google, e entrou no 6.1; no pull request, Andrew Morton escreveu: "KMSAN keeps finding bugs. New ones, as well as the legacy ones" [201], [202]. O KUnit, de testes unitários, veio de Brendan Higgins, de @google.com, no 5.5 [203]. O kselftest, a suíte de testes que roda num kernel instalado, foi organizado a partir de 2014 por Shuah Khan, que commitava de @samsung.com [37], [204].

FerramentaQuem paga ou começouEntradaO que faz
syzkaller e syzbotGooglerepositório desde out/2015fuzzing contínuo; 7.518 bugs corrigidos e 1.591 abertos em 2/10/2026
kernel test robot (0-day)Intelmais de 180 árvores testadas em 2012compila, dá boot e testa cada árvore; 9,8% dos relatos de bug no 5.5
Hulk RobotHuawei (hulkci@huawei.com)ativo no 5.515,7% dos relatos de bug no 5.5
KernelCILinux Foundation, com Google, Microsoft, Red Hat e outros2014; na LF desde 2019testes em hardware real de vários laboratórios
KASANAndrey Ryabinin (Samsung), a partir das ferramentas do Google4.0, abr/2015acesso inválido à memória
KCSANMarco Elver (Google)5.8, ago/2020condições de corrida
KMSANAlexander Potapenko (Google)6.1, dez/2022uso de memória não inicializada
KUnitBrendan Higgins (Google)5.5, jan/2020testes unitários dentro do kernel
kselftestShuah Khan (Samsung, na época)2014testes de um kernel instalado

Até a caça a exploits é paga. O kCTF, programa de recompensas do Google para falhas no kernel, "has rewarded researchers with a total of 1.8 million USD" desde que começou [84].

Auditar o kernel é possível, e quem audita em escala está na folha de pagamento de alguém: Google, Intel, Huawei, Samsung. A fila de 1.591 bugs abertos no syzbot lembra a outra metade da frase que eu costumo repetir: ter review, teste e mantenedor não significa que a falha não existe.

O que não fecha

Um modelo bancado por empresas resolve muita coisa e cria outros problemas. Alguns aparecem nos números; outros, nas listas de e-mail.

Mantenedores no limite

Na Maintainers Summit de 2023, Ted Ts'o abriu uma sessão sobre burnout dizendo, segundo a LWN, que os mantenedores acabam fazendo "all of the tasks that nobody else working on a given subsystem wants to take on" [205]. Um ano antes, numa sessão conduzida por Josef Bacik, a frase sobre os sistemas de arquivos tinha sido: "we simply do not have enough people on some of the filesystem teams" [206]. A pesquisa acadêmica confirma o desenho. Um estudo de 2017 concluiu que "the distribution of work among maintainers is highly unbalanced" e que pôr mais de um mantenedor num arquivo rende "only a power of 1/2 increase in productivity" [207]. As empresas contratam gente para escrever código. A revisão do código dos outros cai sobre poucas pessoas, e os 41,4% de commits do 7.2 sem nenhuma etiqueta de revisão são o retrato disso [37].

O preço apareceu fora do kernel. Em junho de 2022, o mantenedor do xz, Lasse Collin, respondeu a cobranças por mais atividade: "I haven't lost interest but my ability to care has been fairly limited mostly due to longterm mental health issues but also due to some other things. Recently I've worked off-list a bit with Jia Tan on XZ Utils" [208]. Em março de 2024, Andres Freund descobriu que "the upstream xz repository and the xz tarballs have been backdoored" e escreveu que quem fez os commits suspeitos "is either directly involved or there was some quite severe compromise of their system" [209]. Um dos commits que ele apontou é assinado por Jia Tan [210]. O kernel não é o xz, mas a lição vale para ele: mantenedor cansado é superfície de ataque.

A GPL e o driver que não quer abrir

O kernel tenta separar o que é público do que é interno pela licença. Os símbolos exportados com EXPORT_SYMBOL_GPL() "can only be seen by modules with a MODULE_LICENSE() that specifies a GPLv2 compatible license" [211]. Fabricantes de driver fechado contornavam isso com módulos-ponte de licença aberta. Em 2020, o 5.9 fechou essa porta: um módulo que importa símbolos de um módulo proprietário passa a ser tratado como proprietário [212]. O commit traz um comentário de Greg Kroah-Hartman: "Ah, the proven-to-be-illegal "GPL Condom" defense :)". Em 2023, a LWN resumiu a regra: um módulo assim "immediately loses its ability to access GPL-only symbols" [213].

A NVIDIA era o alvo de sempre. Em 2012, numa palestra na Universidade Aalto, Linus chamou a empresa de "the single worst company we have ever dealt with", segundo a Phoronix [214]. Em maio de 2022, a NVIDIA abriu os módulos de kernel dos seus drivers, mas fora da árvore principal [114]. O driver que deve entrar no mainline, o nova-core, foi iniciado por um desenvolvedor que commitava da Red Hat e hoje tem um engenheiro da NVIDIA entre os mantenedores [115], [70]. A empresa entrou no kernel quando o custo de ficar fora ficou maior que o de entrar.

Hardware com embargo

Falhas de hardware criam um conflito que o kernel não tinha como evitar: quem descobre e quem conserta são empresas que concorrem entre si. Em janeiro de 2018, no meio da correção do Spectre, Linus avaliou assim uma série de patches que implementava a interface IBRS definida pela Intel: "As it is, the patches are COMPLETE AND UTTER GARBAGE". Na mesma conversa, tinha pedido: "Please, any Intel engineers here - talk to your managers" [215]. O processo que saiu dali está documentado. Falhas como "Meltdown, Spectre, L1TF etc. must be treated differently because they usually affect all Operating Systems", e a equipe do kernel, por "not a formal body", é "unable to enter into any non-disclosure agreements", oferecendo em troca um memorando de entendimento [216]. O kernel trata com fabricantes de chip como uma comunidade, não como um fornecedor que assina contrato.

Poucas empresas, muito poder

A concentração já apareceu nos números. Desde 2017, mais da metade dos patches passa pelas mãos de mantenedores de cinco empresas [31], [39]. A lista dessas empresas muda: a Red Hat tinha 42,4% das assinaturas de mantenedor em 2009 e 4,9% no 6.19, e a Meta, que não aparecia em 2009, lidera hoje [32], [40]. O kernel sobreviveu a essa troca de guarda sem crise visível. O risco não é uma empresa sair. É o interesse comum das que ficam decidir, sozinho, o que vale a pena manter.

Sanções

Em 18 de outubro de 2024, um commit de Greg Kroah-Hartman tirou do MAINTAINERS várias entradas "due to various compliance requirements", com a promessa de que poderiam voltar "if sufficient documentation is provided" [217]. O patch foi enviado só para uma lista de patches e entrou no 6.12-rc4 dentro de um pull request de drivers, sem destaque; a LWN observou que os desenvolvedores removidos "all appear to be of Russian origin" [218]. Paul Moore pediu o mínimo: "can we at least explicitly list those requirements in the commit description?" [219]. A explicação veio de James Bottomley: "If your company is on the U.S. OFAC SDN lists, subject to an OFAC sanctions program, or owned/controlled by a company on the list, our ability to collaborate with you will be subject to restrictions, and you cannot be in the MAINTAINERS file" [220]. Linus apoiou a mudança em público e disse que ela não seria revertida [218]. Um projeto mantido por empresas, sob a guarda de uma fundação americana, segue a lei americana. Isso não é uma falha de caráter da comunidade. É uma consequência do modelo.

Rust e o poder do mantenedor

A disputa mais longa dos últimos anos foi sobre Rust, e foi menos sobre a linguagem do que sobre quem manda em quê. Em agosto de 2024, Wedson Almeida Filho, que commitava de @microsoft.com [37], deixou o projeto: "I find myself lacking the energy and enthusiasm I once had to respond to some of the nontechnical nonsense" [221]. Em janeiro de 2025, Christoph Hellwig vetou uma abstração de DMA em Rust com um Nacked-by, escreveu que não queria outro mantenedor no subsistema e mandou quem quisesse uma base de código em duas linguagens fazer isso no próprio driver, "instead of spreading this cancer to core subsystems". Na mesma mensagem, esclareceu que o câncer era "a cross-language codebase" [222]. Dias depois, completou: "I will do everything I can do to stop this. This is NOT because I hate Rust" [223].

Hector Martin, do Asahi Linux, escreveu na lista: "If shaming on social media does not work, then tell me what does, because I'm out of ideas." Linus respondeu: "How about you accept the fact that maybe the problem is you" [224]. Martin saiu do MAINTAINERS dizendo que não tinha mais "any faith left in the kernel development process or community management approach" [225]. Duas semanas depois, Linus escreveu a Hellwig que o pull request contestado "DID NOT TOUCH THE DMA LAYER AT ALL" e fixou a regra: "if you as a maintainer feel that you control who or what can use your code, YOU ARE WRONG" [226]. A política oficial do projeto admite o meio-termo: "Some subsystems may decide they do not want to have Rust code for the time being, typically for bandwidth reasons. This is fine and expected" [227]. Um experimento financiado por empresas esbarrou no limite de tempo de quem mantém o núcleo. Quem resolveu foi o árbitro pago pela fundação.

O sistema de arquivos sem patrão

O bcachefs, o projeto que Kent Overstreet tocava "on his own, supported by interested users on Patreon" e que inflou o "(None)" do 6.7 [36], foi marcado como "externally maintained" no 6.17-rc4, num commit de Linus com uma linha de justificativa: "As per many long discussion threads, public and private" [228]. No 6.18, o código saiu, porque o sistema já era "a DKMS module" [229]. O commit não fala em dinheiro; fala em discussões longas. Mas o resultado ilustra a tese pelo avesso: o caso mais visível de grande subsistema sem empresa por trás terminou fora da árvore.

A IA chegou à fila

No 7.2, 1.111 mudanças, "under 7% of the total", declararam ajuda de ferramentas de IA com a etiqueta Assisted-by, contra 301 no ciclo anterior [2]. O painel do syzbot já tem um filtro para correções propostas por IA aguardando revisão [192]. Na minha experiência, a IA não diminuiu o trabalho; aumentou. Mais patches, de mais gente desconhecida, para os mesmos mantenedores revisarem.

O kernel tem backdoor?

Já escrevi que o kernel tem backdoor e que código da NSA ficou anos nele. Fui atrás do que está documentado. Em 2003, uma tentativa de backdoor em wait4() foi barrada antes de chegar à árvore principal, como a seção histórica mostrou [22]. Em 2021, pesquisadores da Universidade de Minnesota mandaram patches propositalmente defeituosos para estudar o review; o TAB reexaminou 435 commits da universidade, e "These 39 commits are going to be reverted" [230]. E a NSA? O SELinux foi escrito pela NSA e entrou no kernel como código público, revisado na lista. As "referências à NSA" que sumiram saíram no commit "selinux: de-brand SELinux", de Stephen Smalley, um dos mantenedores do SELinux [70], que trocou "NSA SELinux" por "SELinux" no texto de ajuda e nos comentários [231]. O pull request do 6.6 explica: "We've come a long way from the original NSA submission and I would consider SELinux a true community project at this point so removing the NSA branding just makes sense" [232]. Foi uma troca de marca, não a retirada de código malicioso. A frase que eu repetia estava errada. O risco real é mais chato: quatro em cada dez commits entram sem etiqueta de revisão, e o mantenedor que os aplica está cansado.

Nenhuma dessas tensões indica que o modelo vai quebrar. São o preço de um modelo em que quem paga decide onde gastar, e em que o que ninguém quer pagar, como review, manutenção de código antigo e paciência com o processo, sobra para poucas pessoas.

Conclusão: um bem comum com donos demais

Em 1991, o kernel era de uma pessoa. Em 2026, ele é de ninguém e de todo mundo que paga.

Os números deste artigo apontam para o mesmo lugar. De cada cinco commits do 7.2, quatro vêm de quem tem vínculo identificado, e só 4,5% de quem declaradamente trabalha por conta própria [2]. Quem aceita o código é ainda mais corporativo: 1,6% das assinaturas de mantenedor do 6.19 vêm de gente sem empregador [40]. Os subsistemas que definem o Linux moderno, de cgroups a io_uring, de KVM a sched_ext, nasceram de necessidades de empresas e chegaram ao mainline escritos por funcionários delas. Os robôs que testam o kernel também têm dono. Até o tempo de vida de uma versão de longo prazo depende de "enough interest from the industry at large" [148].

Isso não faz do Linux um produto de uma empresa, e é aí que o contraste com os outros Unix ajuda. O OpenSolaris tinha um dono, e a comunidade precisou criar o Illumos quando o dono parou de publicar [183]. O XNU é de uma empresa e aparece no GitHub como distribuição de releases [181]. O kernel Linux recebeu commits de 249 empregadores identificados num único ciclo, e nenhuma empresa sozinha passou de 10% dos commits do 7.2 nem de 12% das assinaturas de mantenedor do 6.19 [2], [40]. O árbitro final é pago por uma fundação que as empresas sustentam, e no conselho dessa fundação cada membro Platinum indica um único diretor [159]. A robustez do Linux não vem da ausência de empresas. Vem de haver empresas demais para que uma só mande.

O modelo funciona sob três condições, e o kernel mostra as três. Ficar fora precisa custar caro: sem ABI interna estável, quem não manda o código para o mainline paga o rebase para sempre [162]. Nenhum participante pode ser grande o bastante para fechar o projeto. E o processo precisa ser público, com regras que valem para o estagiário e para o vice-presidente: a mesma lista, o mesmo Signed-off-by, a mesma merge window.

O modelo também tem pontos cegos, e eles estão onde ninguém tem incentivo para pagar. Revisão, manutenção de código antigo e paciência com o processo sobram para poucas pessoas. A Linux Foundation destinou ao kernel 2,95% das despesas previstas para 2025 [152]. Dois em cada cinco commits entram sem etiqueta de revisão [37]. E quando a geopolítica chega, o projeto obedece à lei do país onde estão a fundação e as maiores empresas [218].

Quem usa Linux todo dia, como eu, não precisa romantizar nada disso. O Linux não é seguro por ser aberto, nem livre de interesse comercial. É uma infraestrutura crítica que dezenas de concorrentes mantêm juntos porque sai mais barato do que manter sozinhos, e que continua aberta porque nenhum deles conseguiria fechá-la.

Software livre não é software sem dono. É software com donos demais para um só mandar.

Referências

  1. [1]L. Torvalds, “What would you like to see most in minix?,” mensagem em comp.os.minix, 25 ago. 1991. Cópia arquivada pela Carnegie Mellon University. [Online]. Disponível em: https://www.cs.cmu.edu/~awb/linux.history.html ↩
  2. [2]J. Corbet, “Development statistics for the 7.2 kernel,” LWN.net, 17 ago. 2026. [Online]. Disponível em: https://lwn.net/Articles/1088776/ ↩
  3. [3]The FreeBSD Documentation Project, “Introduction: About the FreeBSD Project,” em FreeBSD Handbook. [Online]. Disponível em: https://docs.freebsd.org/en/books/handbook/introduction/ ↩
  4. [4]M. Linksvayer, “The Choice of a GNU Generation: An Interview With Linus Torvalds,” Meta, nov. 1993. [Online]. Disponível em: https://gondwanaland.com/meta/history/interview.html ↩
  5. [5]Red Hat, Inc., “Prospectus: 6,000,000 Shares, Common Stock (Form 424B1),” U.S. Securities and Exchange Commission, 11 ago. 1999. [Online]. Disponível em: https://www.sec.gov/Archives/edgar/data/0001087423/000104746999031070/0001047469-99-031070.txt ↩
  6. [6]A. Leonard, “Red Hot,” Salon, 12 ago. 1999. [Online]. Disponível em: https://www.salon.com/1999/08/12/redhat_ipo/ ↩
  7. [7]M. Tosatti, “Re: Linux 2.4.16-pre1,” mensagem na linux-kernel mailing list, 24 nov. 2001. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0111.3/0103.html ↩
  8. [8]LWN.net, “Linux in the News,” LWN.net Weekly Edition, 14 dez. 2000. [Online]. Disponível em: https://lwn.net/2000/1214/press.php3 ↩
  9. [9]LWN.net, “Commerce,” LWN.net Weekly Edition, 14 dez. 2000. [Online]. Disponível em: https://lwn.net/2000/1214/commerce.php3 ↩
  10. [10]J. Barr, “Inside IBM's Linux Technology Center,” Computerworld, 20 mar. 2001. [Online]. Disponível em: https://www.computerworld.com/article/1447992/inside-ibm-s-linux-technology-center.html ↩
  11. [11]“Industry Leader Forming Development Lab For Linux,” comunicado de imprensa reproduzido por Scoop, 31 ago. 2000. [Online]. Disponível em: https://www.scoop.co.nz/stories/BU0008/S00241.htm ↩
  12. [12]OSDL e Transmeta, “Linux Creator Linus Torvalds joins OSDL,” comunicado reproduzido no LWN.net, 17 jun. 2003. [Online]. Disponível em: https://lwn.net/Articles/36635/ ↩
  13. [13]A. Updegrove, “Joining Forces: OSDL and the Free Standards Group will become The Linux Foundation,” ConsortiumInfo.org, 21 jan. 2007. [Online]. Disponível em: https://www.consortiuminfo.org/open-source-open-standards/joining-forces-osdl-and-the-free-standards-group-will-become-the-linux-foundation ↩
  14. [14]Novell, Inc., “Novell Announces Agreement to Acquire Leading Enterprise Linux Technology Company SUSE LINUX,” Exhibit 99, Form 8-K, U.S. Securities and Exchange Commission, 4 nov. 2003. [Online]. Disponível em: https://www.sec.gov/Archives/edgar/data/0000758004/000075800403000018/nov4_99.htm ↩
  15. [15]Caldera International, Inc. (The SCO Group), “Form 8-K,” U.S. Securities and Exchange Commission, 7 mar. 2003. [Online]. Disponível em: https://www.sec.gov/Archives/edgar/data/1102542/000104746903008083/a2105216z8-k.txt ↩
  16. [16]The SCO Group, Inc., “Form 8-K,” U.S. Securities and Exchange Commission, 10 ago. 2007. [Online]. Disponível em: https://www.sec.gov/Archives/edgar/data/1102542/000095013407018100/v33019e8vk.htm ↩
  17. [17]S. Sharwood, “SCO v. IBM settlement deal is done, but zombie case shuffles on elsewhere,” The Register, 30 ago. 2021. [Online]. Disponível em: https://www.theregister.com/2021/08/30/sco_tsg_vs_ibm_settlement/ ↩
  18. [18]L. Torvalds, “[RFD] Explicitly documenting patch submission,” mensagem na linux-kernel mailing list, 23 maio 2004. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0405.2/1301.html ↩
  19. [19]The Linux Foundation, “Developer Certificate of Origin, Version 1.1,” 2004–2006. [Online]. Disponível em: https://developercertificate.org/ ↩
  20. [20]The kernel development community, “Submitting patches: the essential guide to getting your code into the kernel,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/process/submitting-patches.html ↩
  21. [21]J. Corbet, “The kernel and BitKeeper part ways,” LWN.net, 6 abr. 2005. [Online]. Disponível em: https://lwn.net/Articles/130746/ ↩
  22. [22]J. Corbet, “An attempt to backdoor the kernel,” LWN.net, 6 nov. 2003. [Online]. Disponível em: https://lwn.net/Articles/57135/ ↩
  23. [23]L. Torvalds, “Kernel SCM saga..,” mensagem na linux-kernel mailing list, 6 abr. 2005. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0504.0/1540.html ↩
  24. [24]L. Torvalds, “Initial revision of "git", the information manager from hell,” commit e83c5163316f, repositório git/git, 7 abr. 2005. [Online]. Disponível em: https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290 ↩
  25. [25]L. Torvalds, “Linux-2.6.12-rc2,” commit 1da177e4c3f4, repositório torvalds/linux, 16 abr. 2005. [Online]. Disponível em: https://github.com/torvalds/linux/commit/1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ↩
  26. [26]J. Corbet, “Kernel Summit: Development process,” LWN.net, 21 jul. 2004. [Online]. Disponível em: https://lwn.net/Articles/94386/ ↩
  27. [27]J. Corbet, “Who wrote 2.6.20?,” LWN.net, 21 fev. 2007. [Online]. Disponível em: https://lwn.net/Articles/222773/ ↩
  28. [28]The Linux Foundation, “Linux Foundation Publishes Study on Linux Development Statistics: Who Writes Linux and Who Supports It,” comunicado de imprensa, 1 abr. 2008. [Online]. Disponível em: https://www.linuxfoundation.org/press/press-release/linux-foundation-publishes-study-on-linux-development-statistics-who-writes-linux-and-who-supports-it ↩
  29. [29]The Linux Foundation, “The Linux Foundation Releases Annual Linux Development Report,” comunicado de imprensa, 3 abr. 2012. [Online]. Disponível em: https://www.linuxfoundation.org/press/press-release/the-linux-foundation-releases-annual-linux-development-report ↩
  30. [30]The Linux Foundation, “The Linux Foundation Releases Linux Development Report,” comunicado de imprensa, 18 fev. 2015. [Online]. Disponível em: https://www.linuxfoundation.org/press/press-release/the-linux-foundation-releases-linux-development-report ↩
  31. [31]J. Corbet e G. Kroah-Hartman, 2017 Linux Kernel Development Report. The Linux Foundation, 2017. [Online]. Disponível em: https://www.linuxfoundation.org/hubfs/Reports/LinuxKernelReport_2017.pdf ↩
  32. [32]J. Corbet, “Developer statistics for 2.6.30,” LWN.net, 27 maio 2009. [Online]. Disponível em: https://lwn.net/Articles/334721/ ↩
  33. [33]J. Corbet, “Who wrote 3.0 - from two points of view,” LWN.net, 13 jul. 2011. [Online]. Disponível em: https://lwn.net/Articles/451243/ ↩
  34. [34]J. Corbet, “Statistics from the 4.0 development cycle,” LWN.net, 1 abr. 2015. [Online]. Disponível em: https://lwn.net/Articles/637909/ ↩
  35. [35]J. Corbet, “Some 6.0 development statistics,” LWN.net, 3 out. 2022. [Online]. Disponível em: https://lwn.net/Articles/909625/ ↩
  36. [36]J. Corbet, “Some 6.7 development statistics,” LWN.net, 8 jan. 2024. [Online]. Disponível em: https://lwn.net/Articles/956765/ ↩
  37. [37]L. Torvalds et al., “Linux kernel source tree (torvalds/linux),” repositório Git, clone consultado em 2 out. 2026. [Online]. Disponível em: https://github.com/torvalds/linux ↩
  38. [38]J. Corbet, “Some 6.18 development statistics,” LWN.net, 1 dez. 2025. [Online]. Disponível em: https://lwn.net/Articles/1046966/ ↩
  39. [39]J. Corbet, “Some 6.6 development statistics,” LWN.net, 30 out. 2023. [Online]. Disponível em: https://lwn.net/Articles/948970/ ↩
  40. [40]J. Corbet, “Development statistics for 6.19,” LWN.net, 9 fev. 2026. [Online]. Disponível em: https://lwn.net/Articles/1057302/ ↩
  41. [41]U. Lerch, “Kommerzielle Entwicklung von Open-Source-Software: Idealismus, Pragmatismus oder Strategie? Eine Fallstudie über Entwickler des Linux-Kernels in großen Firmen der Informationstechnologie,” tese de doutorado, Technische Universität Berlin, 2010. [Online]. Disponível em: https://depositonce.tu-berlin.de/items/0f44ee1e-66a6-4161-b9bf-ed7a937be1d5/full ↩
  42. [42]D. Riehle, P. Riemer, C. Kolassa e M. Schmidt, “Paid vs. Volunteer Work in Open Source,” em Proc. 47th Hawaii International Conference on System Sciences (HICSS), 2014, pp. 3286–3295, doi: 10.1109/HICSS.2014.407. [Online]. Disponível em: https://dirkriehle.com/2013/08/22/paid-vs-volunteer-work-in-open-source/ ↩
  43. [43]R. Seth, “[patch 0/5]-Containers: Introduction,” mensagem na linux-kernel mailing list, 14 set. 2006. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0609.1/2068.html ↩
  44. [44]J. Corbet, “Process containers,” LWN.net, 29 maio 2007. [Online]. Disponível em: https://lwn.net/Articles/236038/ ↩
  45. [45]A. Verma, L. Pedrosa, M. Korupolu, D. Oppenheimer, E. Tune e J. Wilkes, “Large-scale cluster management at Google with Borg,” em Proc. EuroSys 2015, 2015. [Online]. Disponível em: https://research.google/pubs/large-scale-cluster-management-at-google-with-borg/ ↩
  46. [46]P. B. Menage, “Adding Generic Process Containers to the Linux Kernel,” em Proc. Ottawa Linux Symposium, vol. 2, 2007, pp. 45–58. [Online]. Disponível em: https://www.kernel.org/doc/ols/2007/ols2007v2-pages-45-58.pdf ↩
  47. [47]P. Menage, “Task Control Groups: basic task cgroup framework,” commit ddbcc7e8e50a, 18 out. 2007. [Online]. Disponível em: https://github.com/torvalds/linux/commit/ddbcc7e8e50aefe467c01cac3dec71f118cd8ac2 ↩
  48. [48]T. Heo, “Control Group v2,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/admin-guide/cgroup-v2.html ↩
  49. [49]J. Corbet, “The unified control group hierarchy in 3.16,” LWN.net, 11 jun. 2014. [Online]. Disponível em: https://lwn.net/Articles/601840/ ↩
  50. [50]Kernelnewbies, “Linux 4.5,” 13 mar. 2016. [Online]. Disponível em: https://kernelnewbies.org/Linux_4.5 ↩
  51. [51]D. Xu, “Open-sourcing oomd, a new approach to handling OOMs,” Engineering at Meta, 19 jul. 2018. [Online]. Disponível em: https://engineering.fb.com/2018/07/19/production-engineering/oomd/ ↩
  52. [52]J. Corbet, “Tracking pressure-stall information,” LWN.net, 13 jul. 2018. [Online]. Disponível em: https://lwn.net/Articles/759781/ ↩
  53. [53]J. Weiner, “psi: pressure stall information for CPU, memory, and IO,” commit eb414681d5a0, 26 out. 2018. [Online]. Disponível em: https://github.com/torvalds/linux/commit/eb414681d5a07d28d2ff90dc05f69ec6b232ebd2 ↩
  54. [54]R. Pike, D. Presotto, K. Thompson, H. Trickey e P. Winterbottom, “The Use of Name Spaces in Plan 9,” Bell Laboratories. [Online]. Disponível em: https://9p.io/sys/doc/names.html ↩
  55. [55]E. W. Biederman, “Multiple Instances of the Global Linux Namespaces,” em Proc. Ottawa Linux Symposium, vol. 1, 2006, pp. 101–112. [Online]. Disponível em: https://www.kernel.org/doc/ols/2006/ols2006v1-pages-101-112.pdf ↩
  56. [56]M. Kerrisk, “Namespaces in operation, part 1: namespaces overview,” LWN.net, 4 jan. 2013. [Online]. Disponível em: https://lwn.net/Articles/531114/ ↩
  57. [57]A. Kali, “cgroup: introduce cgroup namespaces,” commit a79a908fd2b0, 29 jan. 2016. [Online]. Disponível em: https://github.com/torvalds/linux/commit/a79a908fd2b080977b45bf103184b81c9d11ad07 ↩
  58. [58]A. Vagin e D. Safonov, “ns: Introduce Time Namespace,” commit 769071ac9f20, 12 nov. 2019. [Online]. Disponível em: https://github.com/torvalds/linux/commit/769071ac9f20b6a447410c7eaa55d1a5233ef40c ↩
  59. [59]S. E. Hallyn, “uts namespaces: Introduction,” patch reproduzido no LWN.net, abr. 2006. [Online]. Disponível em: https://lwn.net/Articles/179345/ ↩
  60. [60]P. Emelyanov e K. Kolyshkin, “PID namespaces in the 2.6.24 kernel,” LWN.net, 19 nov. 2007. [Online]. Disponível em: https://lwn.net/Articles/259217/ ↩
  61. [61]A. Kivity, “[PATCH 0/7] KVM: Kernel-based Virtual Machine,” mensagem na linux-kernel mailing list, 19 out. 2006. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0610.2/1369.html ↩
  62. [62]A. Kivity, Y. Kamay, D. Laor, U. Lublin e A. Liguori, “kvm: the Linux Virtual Machine Monitor,” em Proc. Ottawa Linux Symposium, vol. 1, 2007, pp. 225–230. [Online]. Disponível em: https://www.kernel.org/doc/ols/2007/ols2007v1-pages-225-230.pdf ↩
  63. [63]“The Definitive KVM (Kernel-based Virtual Machine) API Documentation,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/virt/kvm/api.html ↩
  64. [64]A. Kivity, “[PATCH] kvm: userspace interface,” commit 6aa8b732ca01, 10 dez. 2006. [Online]. Disponível em: https://github.com/torvalds/linux/commit/6aa8b732ca01c3d7a54e93f4d701b8aabbe60fb7 ↩
  65. [65]Kernelnewbies, “Linux 3.0,” 21 jul. 2011. [Online]. Disponível em: https://kernelnewbies.org/Linux_3.0 ↩
  66. [66]Red Hat, “Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition,” comunicado de imprensa, 4 set. 2008. [Online]. Disponível em: https://www.redhat.com/en/about/press-releases/qumranet ↩
  67. [67]“MAINTAINERS,” Linux 3.0, repositório torvalds/linux. [Online]. Disponível em: https://github.com/torvalds/linux/blob/v3.0/MAINTAINERS ↩
  68. [68]Amazon Web Services, “Amazon EC2 FAQs,” consultado em 2 out. 2026. [Online]. Disponível em: https://aws.amazon.com/ec2/faqs/ ↩
  69. [69]A. Honig e N. Porter, “7 ways we harden our KVM hypervisor at Google Cloud: security in plaintext,” Google Cloud Blog, 25 jan. 2017. [Online]. Disponível em: https://cloud.google.com/blog/products/gcp/7-ways-we-harden-our-kvm-hypervisor-at-google-cloud-security-in-plaintext ↩
  70. [70]“MAINTAINERS,” Linux 7.2, repositório torvalds/linux. [Online]. Disponível em: https://github.com/torvalds/linux/blob/v7.2/MAINTAINERS ↩
  71. [71]S. McCanne e V. Jacobson, “The BSD Packet Filter: A New Architecture for User-level Packet Capture,” Lawrence Berkeley Laboratory, 19 dez. 1992. [Online]. Disponível em: https://www.tcpdump.org/papers/bpf-usenix93.pdf ↩
  72. [72]A. Starovoitov, “net: filter: rework/optimize internal BPF interpreter's instruction set,” commit bd4cf0ed331a, 28 mar. 2014. [Online]. Disponível em: https://github.com/torvalds/linux/commit/bd4cf0ed331a275e9bf5a49e6d0fd55dffc551b8 ↩
  73. [73]A. Starovoitov, “bpf: introduce BPF syscall and maps,” commit 99c55f7d47c0, 26 set. 2014. [Online]. Disponível em: https://github.com/torvalds/linux/commit/99c55f7d47c0dc6fc64729f37bf435abf43f4c60 ↩
  74. [74]J. Corbet, “Ktap or BPF?,” LWN.net, 23 abr. 2014. [Online]. Disponível em: https://lwn.net/Articles/595565/ ↩
  75. [75]T. Høiland-Jørgensen, J. D. Brouer, D. Borkmann, J. Fastabend, T. Herbert, D. Ahern e D. Miller, “The eXpress Data Path: Fast Programmable Packet Processing in the Operating System Kernel,” em Proc. CoNEXT '18, 2018, doi: 10.1145/3281411.3281443. [Online]. Disponível em: https://github.com/tohojo/xdp-paper ↩
  76. [76]B. Blanco, “bpf: add XDP prog type for early driver filter,” commit 6a773a15a1e8, 19 jul. 2016. [Online]. Disponível em: https://github.com/torvalds/linux/commit/6a773a15a1e8874e5eccd2f29190c31085912c95 ↩
  77. [77]J. Corbet, “BPF at Facebook (and beyond),” LWN.net, 10 out. 2019. [Online]. Disponível em: https://lwn.net/Articles/801871/ ↩
  78. [78]K. P. Singh, “bpf: Introduce BPF_PROG_TYPE_LSM,” commit fc611f47f218, 29 mar. 2020. [Online]. Disponível em: https://github.com/torvalds/linux/commit/fc611f47f2188ade2b48ff6902d5cce8baac0c58 ↩
  79. [79]J. Corbet, “KRSI — the other BPF security module,” LWN.net, 27 dez. 2019. [Online]. Disponível em: https://lwn.net/Articles/808048/ ↩
  80. [80]D. Thaler, Ed., “BPF Instruction Set Architecture (ISA),” RFC 9669, Internet Engineering Task Force, out. 2024. [Online]. Disponível em: https://www.rfc-editor.org/rfc/rfc9669.html ↩
  81. [81]J. Corbet, “Ringing in a new asynchronous I/O API,” LWN.net, 15 jan. 2019. [Online]. Disponível em: https://lwn.net/Articles/776703/ ↩
  82. [82]J. Axboe, “Add io_uring IO interface,” commit 2b188cc1bb85, 7 jan. 2019. [Online]. Disponível em: https://github.com/torvalds/linux/commit/2b188cc1bb857a9d4701ae59aa7768b5124e262e ↩
  83. [83]J. Axboe, perfil público no GitHub (empresa declarada), consultado em 2 out. 2026. [Online]. Disponível em: https://github.com/axboe ↩
  84. [84]T. Koczka, “Learnings from kCTF VRP's 42 Linux kernel exploits submissions,” Google Online Security Blog, 14 jun. 2023. [Online]. Disponível em: https://security.googleblog.com/2023/06/learnings-from-kctf-vrps-42-linux.html ↩
  85. [85]M. Rizzo, “io_uring: add a sysctl to disable io_uring system-wide,” commit 76d3ccecfa18, 21 ago. 2023. [Online]. Disponível em: https://github.com/torvalds/linux/commit/76d3ccecfa186af3120e206d62f03db1a94a535f ↩
  86. [86]C. Mason, “[ANNOUNCE] Btrfs: a copy on write, snapshotting FS,” mensagem na linux-kernel mailing list, 12 jun. 2007. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0706.1/1732.html ↩
  87. [87]O. Rodeh, J. Bacik e C. Mason, “BTRFS: The Linux B-Tree Filesystem,” ACM Transactions on Storage, vol. 9, n. 3, 2013, doi: 10.1145/2501620.2501623. [Online]. Disponível em: https://doi.org/10.1145/2501620.2501623 ↩
  88. [88]Kernelnewbies, “Linux 2.6.29,” 23 mar. 2009. [Online]. Disponível em: https://kernelnewbies.org/Linux_2_6_29 ↩
  89. [89]J. Corbet, “Btrfs at Facebook,” LWN.net, 2 jul. 2020. [Online]. Disponível em: https://lwn.net/Articles/824855/ ↩
  90. [90]Red Hat, “Btrfs (Technology Preview),” em Red Hat Enterprise Linux 7 Storage Administration Guide. [Online]. Disponível em: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-btrfs ↩
  91. [91]Fedora Project, “Changes/BtrfsByDefault,” Fedora Project Wiki. [Online]. Disponível em: https://fedoraproject.org/wiki/Changes/BtrfsByDefault ↩
  92. [92]A. Sweeney, D. Doucette, W. Hu, C. Anderson, M. Nishimoto e G. Peck, “Scalability in the XFS File System,” em Proc. USENIX 1996 Annual Technical Conference, 1996. [Online]. Disponível em: https://www.usenix.org/legacy/publications/library/proceedings/sd96/sweeney.html ↩
  93. [93]L. Torvalds, “Linux 2.5.36,” mensagem na linux-kernel mailing list, 17 set. 2002. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0209.2/0514.html ↩
  94. [94]Red Hat, “The XFS File System,” em Red Hat Enterprise Linux 7 Storage Administration Guide. [Online]. Disponível em: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-xfs ↩
  95. [95]D. J. Wong, “xfs: create an ioctl to scrub AG metadata,” commit 36fd6e863cb7, 17 out. 2017. [Online]. Disponível em: https://github.com/torvalds/linux/commit/36fd6e863cb7329ab2e5687fdae4e4626b840adc ↩
  96. [96]I. Molnar, “[announce] [patch] ultra-scalable O(1) SMP and UP scheduler,” mensagem na linux-kernel mailing list, 3 jan. 2002. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0201.0/0810.html ↩
  97. [97]J. Corbet, “The Rotating Staircase Deadline Scheduler,” LWN.net, 6 mar. 2007. [Online]. Disponível em: https://lwn.net/Articles/224865/ ↩
  98. [98]I. Molnar, “[Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS],” mensagem na linux-kernel mailing list, 13 abr. 2007. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0704.1/2138.html ↩
  99. [99]I. Molnar, “sched: cfs core code,” commit dd41f596cda0, 9 jul. 2007. [Online]. Disponível em: https://github.com/torvalds/linux/commit/dd41f596cda0d7d6e4a8b139ffdfabcefdd46528 ↩
  100. [100]I. Stoica e H. Abdel-Wahab, “Earliest Eligible Virtual Deadline First: A Flexible and Accurate Mechanism for Proportional Share Resource Allocation,” Old Dominion University, relatório técnico TR-95-22, 1995. [Online]. Disponível em: https://people.eecs.berkeley.edu/~istoica/papers/eevdf-tr-95.pdf ↩
  101. [101]J. Corbet, “An EEVDF CPU scheduler for Linux,” LWN.net, 9 mar. 2023. [Online]. Disponível em: https://lwn.net/Articles/925371/ ↩
  102. [102]“EEVDF Scheduler,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/scheduler/sched-eevdf.html ↩
  103. [103]P. Zijlstra, “sched/fair: Implement an EEVDF-like scheduling policy,” commit 147f3efaa241, 31 maio 2023. [Online]. Disponível em: https://github.com/torvalds/linux/commit/147f3efaa24182a21706bca15eab2f3f4630b5fe ↩
  104. [104]J. Corbet, “The extensible scheduler class,” LWN.net, 10 fev. 2023. [Online]. Disponível em: https://lwn.net/Articles/922405/ ↩
  105. [105]J. Corbet, “Extensible scheduler class to be merged for 6.11,” LWN.net, 11 jun. 2024. [Online]. Disponível em: https://lwn.net/Articles/978007/ ↩
  106. [106]T. Heo, “sched_ext: Implement BPF extensible scheduler class,” commit f0e1a0643a59, 18 jun. 2024. [Online]. Disponível em: https://github.com/torvalds/linux/commit/f0e1a0643a59bf1f922fa209cec86a170b784f3f ↩
  107. [107]T. Heo, perfil público no GitHub (empresa declarada), consultado em 2 out. 2026. [Online]. Disponível em: https://github.com/htejun ↩
  108. [108]“Extensible Scheduler Class,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/scheduler/sched-ext.html ↩
  109. [109]ProPublica, “The Linux Foundation (EIN 46-0503801),” Nonprofit Explorer, dados dos formulários IRS 990, consultado em 2 out. 2026. [Online]. Disponível em: https://projects.propublica.org/nonprofits/organizations/460503801 ↩
  110. [110]L. Torvalds, “Linux 4.2-rc1,” mensagem na linux-kernel mailing list, 5 jul. 2015. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/1507.0/02156.html ↩
  111. [111]A. Deucher, “drm/amdgpu: add core driver (v4),” commit d38ceaf99ed0, 20 abr. 2015. [Online]. Disponível em: https://github.com/torvalds/linux/commit/d38ceaf99ed015f2a0b9af3499791bd3a3daae21 ↩
  112. [112]M. Brost et al., “drm/xe: Introduce a new DRM driver for Intel GPUs,” commit dd08ebf6c352, 30 mar. 2023. [Online]. Disponível em: https://github.com/torvalds/linux/commit/dd08ebf6c3525a7ea2186e636df064ea47281987 ↩
  113. [113]Kernelnewbies, “Linux 2.6.33,” 24 fev. 2010. [Online]. Disponível em: https://kernelnewbies.org/Linux_2_6_33 ↩
  114. [114]NVIDIA, “NVIDIA Releases Open-Source GPU Kernel Modules,” NVIDIA Technical Blog, maio 2022. [Online]. Disponível em: https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/ ↩
  115. [115]D. Krummrich, “gpu: nova-core: add initial driver stub,” commit 54e6baf123fd, 6 mar. 2025. [Online]. Disponível em: https://github.com/torvalds/linux/commit/54e6baf123fde089cfa9f609b0b39b40abe41e94 ↩
  116. [116]E. Cohen, “mlx5: Add driver for Mellanox Connect-IB adapters,” commit e126ba97dba9, 7 jul. 2013. [Online]. Disponível em: https://github.com/torvalds/linux/commit/e126ba97dba9edeb6fafa3665b5f8497fc9cdf8c ↩
  117. [117]NVIDIA, “NVIDIA Completes Acquisition of Mellanox, Creating Major Force Driving Next-Gen Data Centers,” comunicado de imprensa, 27 abr. 2020. [Online]. Disponível em: https://nvidianews.nvidia.com/news/nvidia-completes-acquisition-of-mellanox-creating-major-force-driving-next-gen-data-centers ↩
  118. [118]“patch-2.2.14.gz,” arquivo de kernel.org, 4 jan. 2000. [Online]. Disponível em: https://cdn.kernel.org/pub/linux/kernel/v2.2/patch-2.2.14.gz ↩
  119. [119]“patch-2.5.5.gz,” arquivo de kernel.org, 20 fev. 2002. [Online]. Disponível em: https://cdn.kernel.org/pub/linux/kernel/v2.5/patch-2.5.5.gz ↩
  120. [120]J. Edge, “Linaro seeks to simplify ARM Linux landscape,” LWN.net, 9 jun. 2010. [Online]. Disponível em: https://lwn.net/Articles/391189/ ↩
  121. [121]L. Torvalds, “Re: [GIT PULL] omap changes for v2.6.39 merge window,” mensagem na linux-kernel mailing list, 17 mar. 2011. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/1103.2/01004.html ↩
  122. [122]J. Corbet, “Supporting 64-bit ARM systems,” LWN.net, 10 jul. 2012. [Online]. Disponível em: https://lwn.net/Articles/506148/ ↩
  123. [123]C. Marinas, “arm64: Kernel booting and initialisation,” commit 9703d9d7f77c, 5 mar. 2012. [Online]. Disponível em: https://github.com/torvalds/linux/commit/9703d9d7f77ce129621f7d80a844822e2daa7008 ↩
  124. [124]B. Swetland, “[ARM] msm: board file for MACH_HALIBUT (QCT MSM7200A),” commit 9e73c84c89b7, 26 nov. 2007. [Online]. Disponível em: https://github.com/torvalds/linux/commit/9e73c84c89b7c91ad5d6a141c58efbbe139f6b6c ↩
  125. [125]“MAINTAINERS,” Linux 2.6.35, repositório torvalds/linux. [Online]. Disponível em: https://github.com/torvalds/linux/blob/v2.6.35/MAINTAINERS ↩
  126. [126]P. Dabbelt, “RISC-V: Init and Halt Code,” commit 76d2a0493a17, 10 jul. 2017. [Online]. Disponível em: https://github.com/torvalds/linux/commit/76d2a0493a17d4c8ecc781366850c3c4f8e1a446 ↩
  127. [127]“MAINTAINERS,” Linux 4.15, repositório torvalds/linux. [Online]. Disponível em: https://github.com/torvalds/linux/blob/v4.15/MAINTAINERS ↩
  128. [128]I. Molnar, “[patch] Real-Time Preemption, -VP-2.6.9-rc4-mm1-U0,” mensagem na linux-kernel mailing list, 13 out. 2004. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0410.1/1577.html ↩
  129. [129]“Lock types and their rules,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/locking/locktypes.html ↩
  130. [130]T. Gleixner, “genirq: add threaded interrupt handler support,” commit 3aa551c9b4c4, 23 mar. 2009. [Online]. Disponível em: https://github.com/torvalds/linux/commit/3aa551c9b4c40018f0e261a178e3d25478dc04a9 ↩
  131. [131]T. Gleixner, “sched/rt, Kconfig: Introduce CONFIG_PREEMPT_RT,” commit a50a3f4b6a31, 17 jul. 2019. [Online]. Disponível em: https://github.com/torvalds/linux/commit/a50a3f4b6a313dc76912bd4ad3b8b4f4b479c801 ↩
  132. [132]The Linux Foundation, “The Linux Foundation Announces Project to Advance Real-Time Linux,” comunicado de imprensa reproduzido por Firmenpresse, out. 2015. [Online]. Disponível em: https://www.firmenpresse.de/pressrelease424560/the-linux-foundation-announces-project-to-advance-real-time-linux.html ↩
  133. [133]J. Corbet, “Intel acquires Linutronix,” LWN.net, 23 fev. 2022. [Online]. Disponível em: https://lwn.net/Articles/885903/ ↩
  134. [134]L. Torvalds, “Merge tag 'printk-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux,” commit c903327d3295, 17 set. 2024. [Online]. Disponível em: https://github.com/torvalds/linux/commit/c903327d3295b135eb8c81ebe0b68c1837718eb8 ↩
  135. [135]S. A. Siewior, “x86: Allow to enable PREEMPT_RT.,” commit d2d6422f8bd1, 6 set. 2024. [Online]. Disponível em: https://github.com/torvalds/linux/commit/d2d6422f8bd17c6bb205133e290625a564194496 ↩
  136. [136]L. Torvalds, “Merge tag 'sched-rt-2024-09-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip,” commit baeb9a7d8b60, 20 set. 2024. [Online]. Disponível em: https://github.com/torvalds/linux/commit/baeb9a7d8b60b021d907127509c44507539c15e5 ↩
  137. [137]J. Edge, “Rust heads into the kernel?,” LWN.net, 21 abr. 2021. [Online]. Disponível em: https://lwn.net/Articles/853423/ ↩
  138. [138]J. Aas, “Supporting Miguel Ojeda's Work on Rust in the Linux Kernel,” Prossimo (ISRG), 17 jun. 2021. [Online]. Disponível em: https://www.memorysafety.org/blog/supporting-miguel-ojeda-rust-in-linux/ ↩
  139. [139]L. Torvalds, “Merge tag 'rust-v6.1-rc1' of https://github.com/Rust-for-Linux/linux,” commit 8aebac82933f, 3 out. 2022. [Online]. Disponível em: https://github.com/torvalds/linux/commit/8aebac82933ff1a7c8eede18cab11e1115e2062b ↩
  140. [140]A. Ryhl, “rust_binder: add Rust Binder driver,” commit eafedbc7c050, 19 set. 2025. [Online]. Disponível em: https://github.com/torvalds/linux/commit/eafedbc7c050c44744fbdf80bdf3315e860b7513 ↩
  141. [141]J. Corbet, “The state of the kernel Rust experiment,” LWN.net, 13 dez. 2025. [Online]. Disponível em: https://lwn.net/Articles/1050174/ ↩
  142. [142]M. Ojeda, “rust: conclude the Rust experiment,” commit 9fa7153c31a3, 13 dez. 2025. [Online]. Disponível em: https://github.com/torvalds/linux/commit/9fa7153c31a3e5fe578b83d23bc9f185fde115da ↩
  143. [143]G. Krisman Bertazi, “futex: Implement mechanism to wait on any of several futexes,” patch reproduzido no LWN.net, 30 jul. 2019. [Online]. Disponível em: https://lwn.net/Articles/794969/ ↩
  144. [144]A. Almeida, “futex: Implement sys_futex_waitv(),” commit bf69bad38cf6, 23 set. 2021. [Online]. Disponível em: https://github.com/torvalds/linux/commit/bf69bad38cf63d980e8a603f8d1bd1f85b5ed3d9 ↩
  145. [145]Kernelnewbies, “Linux 5.16,” 9 jan. 2022. [Online]. Disponível em: https://kernelnewbies.org/Linux_5.16 ↩
  146. [146]The kernel development community, “2. How the development process works,” em A guide to the Kernel Development Process, The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/process/2.Process.html ↩
  147. [147]The kernel development community, “Everything you ever wanted to know about Linux -stable releases,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/process/stable-kernel-rules.html ↩
  148. [148]kernel.org, “Releases,” consultado em 2 out. 2026. [Online]. Disponível em: https://www.kernel.org/category/releases.html ↩
  149. [149]J. Corbet, “A turning point for CVE numbers,” LWN.net, 14 fev. 2024. [Online]. Disponível em: https://lwn.net/Articles/961332/ ↩
  150. [150]The kernel development community, “CVEs,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/process/cve.html ↩
  151. [151]LWN.net, “Kroah-Hartman: Linux CVEs, more than you ever wanted to know,” LWN.net, 10 dez. 2025. [Online]. Disponível em: https://lwn.net/Articles/1049963/ ↩
  152. [152]The Linux Foundation, Annual Report 2025. The Linux Foundation, dez. 2025. [Online]. Disponível em: https://www.linuxfoundation.org/hubfs/Publications/2025%20Linux%20Foundation%20Annual%20Report_122225a_lr.pdf ↩
  153. [153]The Linux Foundation, “Technical Advisory Board,” consultado em 2 out. 2026. [Online]. Disponível em: https://www.linuxfoundation.org/about/technical-advisory-board ↩
  154. [154]Linux Plumbers Conference, página da contribuição de J. Kicinski, LPC 2025. [Online]. Disponível em: https://lpc.events/event/19/contributions/2289/ ↩
  155. [155]Open Source Summit North America 2025, página da palestra de D. Borkmann. [Online]. Disponível em: https://ossna2025.sched.com/event/d3d6bc22578712b8eca7f0c202b195f5 ↩
  156. [156]J. Corbet, “A new era for memory-management maintainership,” LWN.net, 7 maio 2026. [Online]. Disponível em: https://lwn.net/Articles/1070994/ ↩
  157. [157]The Linux Foundation, Annual Report 2024. The Linux Foundation, dez. 2024. [Online]. Disponível em: https://linuxfoundation.org/hubfs/Reports/lf_ar24_121524a.pdf ↩
  158. [158]M. Ojeda, “2025 LF Technical Advisory Board election - update,” mensagem na linux-kernel mailing list, 5 dez. 2025. [Online]. Disponível em: https://lkml.iu.edu/2512.0/05847.html ↩
  159. [159]The Linux Foundation, “Bylaws,” consultado em 2 out. 2026. [Online]. Disponível em: https://www.linuxfoundation.org/legal/bylaws ↩
  160. [160]M. Ojeda, “2025 LF Technical Advisory Board election - results,” mensagem na linux-kernel mailing list, 21 dez. 2025. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2512.2/07130.html ↩
  161. [161]J. Corbet, “An open seat on the TAB,” LWN.net, 8 dez. 2025. [Online]. Disponível em: https://lwn.net/Articles/1049035/ ↩
  162. [162]G. Kroah-Hartman, “The Linux Kernel Driver Interface (all of your questions answered and then some),” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/process/stable-api-nonsense.html ↩
  163. [163]J. Edge, “Moving Google toward the mainline,” LWN.net, 5 out. 2021. [Online]. Disponível em: https://lwn.net/Articles/871195/ ↩
  164. [164]B. Matheny e C. Mason, “Improving the Linux kernel with upstream contributions,” Engineering at Meta, 5 out. 2015. [Online]. Disponível em: https://engineering.fb.com/2015/10/05/open-source/improving-the-linux-kernel-with-upstream-contributions/ ↩
  165. [165]Y. Brosseau, “Upstream kernels @ Facebook,” palestra no SCALE 14x, jan. 2016. [Online]. Disponível em: https://www.socallinuxexpo.org/scale/14x/presentations/upstream-kernels-facebook ↩
  166. [166]Amazon Web Services, “Amazon Linux 2023 kernel lifecycle,” Amazon Linux 2023 User Guide, consultado em 2 out. 2026. [Online]. Disponível em: https://docs.aws.amazon.com/linux/al2023/ug/kernel-lifecycle.html ↩
  167. [167]J. Edge, “ELC: Android and the community,” LWN.net, 14 abr. 2010. [Online]. Disponível em: https://lwn.net/Articles/383276/ ↩
  168. [168]J. Corbet, “Bringing Android closer to the mainline,” LWN.net, 20 dez. 2011. [Online]. Disponível em: https://lwn.net/Articles/472984/ ↩
  169. [169]J. Corbet, “Autosleep and wake locks,” LWN.net, 7 fev. 2012. [Online]. Disponível em: https://lwn.net/Articles/479841/ ↩
  170. [170]Kernelnewbies, “Linux 3.5,” 21 jul. 2012. [Online]. Disponível em: https://kernelnewbies.org/Linux_3.5 ↩
  171. [171]J. Corbet, “An update on the Android problem,” LWN.net, 7 nov. 2017. [Online]. Disponível em: https://lwn.net/Articles/738225/ ↩
  172. [172]J. Corbet, “Bringing the Android kernel back to the mainline,” LWN.net, 15 nov. 2018. [Online]. Disponível em: https://lwn.net/Articles/771974/ ↩
  173. [173]J. Corbet, “Android kernel notes from LPC 2020,” LWN.net, 10 set. 2020. [Online]. Disponível em: https://lwn.net/Articles/830979/ ↩
  174. [174]Android Open Source Project, “Generic Kernel Image (GKI) project,” source.android.com, consultado em 2 out. 2026. [Online]. Disponível em: https://source.android.com/docs/core/architecture/kernel/generic-kernel-image ↩
  175. [175]Android Open Source Project, “Android common kernels,” source.android.com, consultado em 2 out. 2026. [Online]. Disponível em: https://source.android.com/docs/core/architecture/kernel/android-common ↩
  176. [176]P. Galli, “Microsoft Releases Device Driver Code to the Linux Community,” Port25 (Microsoft), 20 jul. 2009. [Online]. Disponível em: https://learn.microsoft.com/en-us/archive/blogs/port25/microsoft-releases-device-driver-code-to-the-linux-community ↩
  177. [177]G. Kroah-Hartman, “[patch 00/54] [Announce] Microsoft Hyper-V drivers for Linux,” mensagem na linux-kernel mailing list, 20 jul. 2009. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/0907.2/01249.html ↩
  178. [178]The Linux Foundation, “Microsoft Fortifies Commitment to Open Source, Becomes Linux Foundation Platinum Member,” comunicado de imprensa, 16 nov. 2016. [Online]. Disponível em: https://www.linuxfoundation.org/press/press-release/microsoft-fortifies-commitment-to-open-source-becomes-linux-foundation-platinum-member ↩
  179. [179]Microsoft, “WSL2-Linux-Kernel: The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2),” repositório no GitHub. [Online]. Disponível em: https://github.com/microsoft/WSL2-Linux-Kernel ↩
  180. [180]Sony Interactive Entertainment, “Open Source Software used in PlayStation®4,” consultado em 2 out. 2026. [Online]. Disponível em: https://www.playstation.com/en-us/oss/ps4/ ↩
  181. [181]Apple, “xnu,” repositório apple-oss-distributions no GitHub. [Online]. Disponível em: https://github.com/apple-oss-distributions/xnu ↩
  182. [182]J. Looney, “Netflix and FreeBSD: Reflections on Running FreeBSD Head in Production,” BSDCan 2019, 2019. [Online]. Disponível em: https://papers.freebsd.org/2019/bsdcan/looney-netflix_and_freebsd/ ↩
  183. [183]K. Vervloesem, “Illumos: new hope for the OpenSolaris community?,” LWN.net, 11 ago. 2010. [Online]. Disponível em: https://lwn.net/Articles/399533/ ↩
  184. [184]J. Lerner e J. Tirole, “Some Simple Economics of Open Source,” The Journal of Industrial Economics, vol. 50, n. 2, pp. 197–234, 2002, doi: 10.1111/1467-6451.00174. Versão de trabalho: NBER Working Paper 7600, 2000. [Online]. Disponível em: https://www.nber.org/papers/w7600 ↩
  185. [185]J. West e S. Gallagher, “Challenges of open innovation: the paradox of firm investment in open-source software,” R&D Management, vol. 36, n. 3, pp. 319–331, 2006, doi: 10.1111/j.1467-9310.2006.00436.x. [Online]. Disponível em: https://scholarworks.sjsu.edu/org_mgmt_pub/3 ↩
  186. [186]J. Henkel, “Selective revealing in open innovation processes: The case of embedded Linux,” Research Policy, vol. 35, n. 7, pp. 953–969, 2006, doi: 10.1016/j.respol.2006.04.010. [Online]. Disponível em: https://doi.org/10.1016/j.respol.2006.04.010 ↩
  187. [187]M. Hoffmann, F. Nagle e Y. Zhou, “The Value of Open Source Software,” Harvard Business School, Working Paper 24-038, 2024. [Online]. Disponível em: https://www.hbs.edu/ris/Publication%20Files/24-038_51f8444f-502c-4139-8bf2-56eb4b65c58a.pdf ↩
  188. [188]N. Eghbal, Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure. Ford Foundation, 2016. [Online]. Disponível em: https://www.fordfoundation.org/wp-content/uploads/2016/07/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure.pdf ↩
  189. [189]Google, “syzkaller: an unsupervised coverage-guided kernel fuzzer,” repositório no GitHub (criado em 12 out. 2015). [Online]. Disponível em: https://github.com/google/syzkaller ↩
  190. [190]Google, “syzbot,” documentação do syzkaller. [Online]. Disponível em: https://github.com/google/syzkaller/blob/master/docs/syzbot.md ↩
  191. [191]D. Vyukov, “Reflections on kernel development process, quality and testing,” apresentação no Linux Kernel Maintainers Summit, 2019. [Online]. Disponível em: https://lpc.events/event/4/contributions/554/attachments/353/584/Reflections__Kernel_Summit_2019.pdf ↩
  192. [192]syzbot, “Linux upstream,” painel consultado em 2 out. 2026. [Online]. Disponível em: https://syzkaller.appspot.com/upstream ↩
  193. [193]M. Kerrisk, “KS2012: Kernel build/boot testing,” LWN.net, 5 set. 2012. [Online]. Disponível em: https://lwn.net/Articles/514278/ ↩
  194. [194]Intel, “lkp-tests: Linux Kernel Performance tests,” repositório no GitHub. [Online]. Disponível em: https://github.com/intel/lkp-tests ↩
  195. [195]J. Corbet, “Some 5.5 kernel development statistics,” LWN.net, 28 jan. 2020. [Online]. Disponível em: https://lwn.net/Articles/810639/ ↩
  196. [196]The Linux Foundation, “Distributed Linux Testing Platform KernelCI Secures Funding and Long-Term Sustainability as New Linux Foundation Project,” comunicado reproduzido em kernelci.org, 28 out. 2019. [Online]. Disponível em: https://kernelci.org/?p=56 ↩
  197. [197]KernelCI, página inicial e lista de membros, consultada em 2 out. 2026. [Online]. Disponível em: https://kernelci.org/ ↩
  198. [198]A. Ryabinin, “kasan: add kernel address sanitizer infrastructure,” commit 0b24becc810d, 13 fev. 2015. [Online]. Disponível em: https://github.com/torvalds/linux/commit/0b24becc810dc3be6e3f94103a866f214c282394 ↩
  199. [199]M. Elver, “kcsan: Add Kernel Concurrency Sanitizer infrastructure,” commit dfd402a4c4ba, 14 nov. 2019. [Online]. Disponível em: https://github.com/torvalds/linux/commit/dfd402a4c4baae42398ce9180ff424d589b8bffc ↩
  200. [200]J. Corbet, “5.8 Merge window, part 2,” LWN.net, 14 jun. 2020. [Online]. Disponível em: https://lwn.net/Articles/822527/ ↩
  201. [201]A. Potapenko, “kmsan: add KMSAN runtime core,” commit f80be4571b19, 15 set. 2022. [Online]. Disponível em: https://github.com/torvalds/linux/commit/f80be4571b19b9fd8dd1528cd2a2f123aff51f70 ↩
  202. [202]A. Morton, “[GIT PULL] MM updates for 6.1-rc1,” mensagem na linux-kernel mailing list, 8 out. 2022. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2210.1/00272.html ↩
  203. [203]B. Higgins, “kunit: test: add KUnit test runner core,” commit 914cc63eea6f, 23 set. 2019. [Online]. Disponível em: https://github.com/torvalds/linux/commit/914cc63eea6fbe11ed46dba5e4438d81b0cd42d2 ↩
  204. [204]The kernel development community, “Linux Kernel Selftests,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/dev-tools/kselftest.html ↩
  205. [205]J. Corbet, “Reducing kernel-maintainer burnout,” LWN.net, 24 nov. 2023. [Online]. Disponível em: https://lwn.net/Articles/952034/ ↩
  206. [206]J. Edge, “Maintainers don't scale,” LWN.net, 6 jun. 2022. [Online]. Disponível em: https://lwn.net/Articles/896918/ ↩
  207. [207]M. Zhou, Q. Chen, A. Mockus e F. Wu, “On the scalability of Linux kernel maintainers' work,” em Proc. ESEC/FSE 2017, 2017, doi: 10.1145/3106237.3106287. [Online]. Disponível em: https://par.nsf.gov/biblio/10063576 ↩
  208. [208]L. Collin, “Re: [xz-devel] XZ for Java,” mensagem na lista xz-devel, 8 jun. 2022. [Online]. Disponível em: https://www.mail-archive.com/xz-devel@tukaani.org/msg00567.html ↩
  209. [209]A. Freund, “backdoor in upstream xz/liblzma leading to ssh server compromise,” mensagem na lista oss-security, 29 mar. 2024. [Online]. Disponível em: https://www.openwall.com/lists/oss-security/2024/03/29/4 ↩
  210. [210]J. Tan, “Tests: Update two test files.,” commit 6e636819e8f0, repositório tukaani-project/xz, 9 mar. 2024. [Online]. Disponível em: https://github.com/tukaani-project/xz/commit/6e636819e8f070330d835fce46289a3ff72a7b89 ↩
  211. [211]R. Russell et al., “Unreliable Guide To Hacking The Linux Kernel,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/kernel-hacking/hacking.html ↩
  212. [212]C. Hellwig, “modules: inherit TAINT_PROPRIETARY_MODULE,” commit 262e6ae7081d, 28 jul. 2020. [Online]. Disponível em: https://github.com/torvalds/linux/commit/262e6ae7081df304fc625cf368d5c2cbba2bb991 ↩
  213. [213]J. Corbet, “Making life (even) harder for proprietary modules,” LWN.net, 3 ago. 2023. [Online]. Disponível em: https://lwn.net/Articles/939842/ ↩
  214. [214]M. Larabel, “Linus Torvalds Calls NVIDIA The Worst Company,” Phoronix, 17 jun. 2012 (fonte secundária). [Online]. Disponível em: https://www.phoronix.com/news/MTEyMTc ↩
  215. [215]L. Torvalds, “Re: [RFC 09/10] x86/enter: Create macros to restrict/unrestrict Indirect Branch Speculation,” mensagem na linux-kernel mailing list, 21 jan. 2018. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/1801.2/04628.html ↩
  216. [216]The kernel development community, “Embargoed hardware issues,” The Linux Kernel documentation. [Online]. Disponível em: https://docs.kernel.org/process/embargoed-hardware-issues.html ↩
  217. [217]G. Kroah-Hartman, “MAINTAINERS: Remove some entries due to various compliance requirements.,” commit 6e90b675cf94, 18 out. 2024. [Online]. Disponível em: https://github.com/torvalds/linux/commit/6e90b675cf942e50c70e8394dfb5862975c3b3b2 ↩
  218. [218]J. Corbet, “Several Russian developers lose kernel maintainership status,” LWN.net, 22 out. 2024, com atualizações. [Online]. Disponível em: https://lwn.net/Articles/995186/ ↩
  219. [219]P. Moore, “Re: [PATCH] MAINTAINERS: Remove some entries due to various compliance requirements.,” mensagem na linux-kernel mailing list, out. 2024. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2410.2/09875.html ↩
  220. [220]J. Bottomley, “Re: [PATCH] MAINTAINERS: Remove some entries due to various compliance requirements.,” mensagem na linux-kernel mailing list, 24 out. 2024. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2410.3/01081.html ↩
  221. [221]W. Almeida Filho, “[PATCH 0/1] Retiring from the Rust for Linux project,” mensagem nas listas do kernel, 28 ago. 2024. [Online]. Disponível em: https://patchew.org/linux/20240828211117.9422-1-wedsonaf@gmail.com ↩
  222. [222]C. Hellwig, “Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.,” mensagem na linux-kernel mailing list, 28 jan. 2025. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2501.3/03615.html ↩
  223. [223]C. Hellwig, “Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.,” mensagem na linux-kernel mailing list, 31 jan. 2025. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2501.3/06788.html ↩
  224. [224]L. Torvalds, resposta a H. Martin na discussão sobre a abstração de DMA em Rust, linux-kernel mailing list, 6 fev. 2025. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2502.0/07186.html ↩
  225. [225]H. Martin, “[PATCH] MAINTAINERS: Remove myself,” mensagem na linux-kernel mailing list, fev. 2025. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2502.0/07276.html ↩
  226. [226]L. Torvalds, “Re: Rust kernel policy,” mensagem na linux-kernel mailing list, 20 fev. 2025. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2502.2/08504.html ↩
  227. [227]Rust for Linux, “Rust kernel policy,” consultado em 2 out. 2026. [Online]. Disponível em: https://rust-for-linux.com/rust-kernel-policy ↩
  228. [228]L. Torvalds, “MAINTAINERS: mark bcachefs externally maintained,” commit ebf2bfec412a, 28 ago. 2025. [Online]. Disponível em: https://github.com/torvalds/linux/commit/ebf2bfec412ad293a0b118fb1a20a551088ebc9b ↩
  229. [229]L. Torvalds, “Remove bcachefs core code,” commit f2c61db29f27, 29 set. 2025. [Online]. Disponível em: https://github.com/torvalds/linux/commit/f2c61db29f277b9c80de92102fc532cc247495cd ↩
  230. [230]Linux Foundation Technical Advisory Board, “Report on University of Minnesota Breach-of-Trust Incident,” mensagem na linux-kernel mailing list, 5 maio 2021. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2105.0/04009.html ↩
  231. [231]S. Smalley, “selinux: de-brand SELinux,” commit 90aa4f5e92f2, 18 jul. 2023. [Online]. Disponível em: https://github.com/torvalds/linux/commit/90aa4f5e92f2797c3c86e05f588ab277b0e0ba39 ↩
  232. [232]P. Moore, “[GIT PULL] SELinux patches for v6.6,” mensagem na linux-kernel mailing list, 29 ago. 2023. [Online]. Disponível em: https://lkml.iu.edu/hypermail/linux/kernel/2308.3/05977.html ↩