Kernel Linux

Linux

Em formação
O Criador Linus Torvalds
Desenvolvido por Linus Torvalds e milhares de colaboradores
Primeira versão 0,01 (17 de setembro de 1991)
Última versão 5,12 (25 de abril de 2021)
Depósito

git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Status do projeto Em constante desenvolvimento
Escrito em C , assembler e C ++
Meio Ambiente Tipo UNIX
línguas inglês
Modelo Núcleo modular monolítico
Política de distribuição Livre
Licença GPLv2 , exceto BLOBs proprietários
Local na rede Internet www.kernel.org

O kernel Linux é um kernel do UNIX . Ele é usado em vários sistemas operacionais, incluindo GNU / Linux (comumente chamado de "Linux") e Android . O kernel Linux é um software parcialmente livre (contendo BLOBs e módulos não livres - veja Linux-libre ) desenvolvido principalmente na linguagem C por milhares de voluntários e funcionários colaborando na Internet .

O kernel é o coração do sistema, é ele quem cuida de fornecer software com uma interface de programação para usar o hardware. O kernel Linux foi criado em 1991 por Linus Torvalds para compatibilidade com PC . Projetado originalmente para a arquitetura do processador x86 , ele foi posteriormente portado para muitos outros, incluindo m68k , PowerPC , ARM , SPARC , MIPS e RISC-V . É usado em uma ampla gama de equipamentos, desde sistemas embarcados a supercomputadores , incluindo telefones celulares e computadores pessoais .

Suas principais características são ser multitarefa e multiusuário . Ele respeita os padrões POSIX, o que o torna um herdeiro valioso para os sistemas UNIX . Inicialmente, o kernel foi projetado para ser monolítico. Essa escolha técnica foi a ocasião para debates acalorados entre Andrew S. Tanenbaum , professor da Universidade Livre de Amsterdã que havia desenvolvido o Minix , e Linus Torvalds . Andrew Tanenbaum argumentando que os kernels modernos têm que ser micro-kernels e Linus respondendo que o desempenho do micro-kernel não é bom. Desde a versão 2.0, o kernel, embora não seja um micro-kernel, é modular, ou seja, algumas funcionalidades podem ser adicionadas ou removidas do kernel na hora (em uso).

História

Em 1991 , os compatíveis com PC dominam o mercado de computadores pessoais e geralmente funcionam com sistemas operacionais MS-DOS , Windows ou OS / 2 . PCs baseados no microprocessador Intel 80386 , vendido desde 1986, estão começando a ter preços acessíveis. Mas os sistemas convencionais continuam comprometidos com a compatibilidade com os processadores de 16 bits mais antigos da Intel e usam indevidamente os recursos de 32 bits e a unidade de gerenciamento de memória do 80386.

É neste ano que o estudante finlandês Linus Torvalds , indisposto com a baixa disponibilidade do servidor informático UNIX da Universidade de Helsínquia , empreende o desenvolvimento de um kernel de sistema operativo , que mais tarde se chamará “Linux”. Linus então queria acima de tudo entender o funcionamento de seu computador baseado em um Intel 80386.

Linus Torvalds aprendeu com o sistema operacional Minix . Como o designer do Minix - Andrew Tanenbaum - se recusa a incorporar contribuições destinadas a melhorar o Minix, Linus decide agendar uma substituição para o Minix. Ele começa desenvolvendo um emulador de terminal simples , que usa para se conectar por meio de um modem ao servidor de computador de sua universidade. Depois de adicionar vários recursos, incluindo um sistema de arquivos compatível com o do Minix, Linus direciona seu projeto para algo mais ambicioso: um kernel para os padrões POSIX . Para este kernel, ele adapta muitos componentes disponíveis do sistema operacional GNU para obter um sistema operacional mais completo.

O 25 de agosto de 1991, ele anuncia no fórum de notícias da Usenet : comp.os.minix que está escrevendo um sistema operacional, mas como um "hobby, que não será tão grande e profissional quanto o GNU". O5 de outubro de 1991, anuncia a disponibilidade de um rascunho da versão 0.02 de seu kernel, sendo a versão 0.01 distribuída mais que confidencial. Finalmente emFevereiro de 1992, a versão 0.12 é lançada sob a GNU General Public License (GNU GPL) em vez da licença ad hoc que anteriormente proibia a redistribuição comercial.

A versão do Linux 1.0.0 foi lançada em 14 de março de 1994 com 176.250 linhas de código.

Inicialmente chamado de Freax por seu criador, o projeto encontra seu nome final graças a Ari Lemmke , administrador do servidor FTP ftp.funet.fi , que hospeda o trabalho de Linus Torvalds em um diretório chamado Linux . Esta foi a primeira aparição de um termo composto por "Linus" e "UNIX", que mais tarde se tornaria uma marca registrada em nome de Linus Torvalds. O pinguim Tux , desenhado por Larry Ewing em 1996, torna-se o mascote do projeto.

O lançamento do código Linux gerou muito interesse na comunidade de usuários do Minix. A partir de então, milhares de programadores voluntários em todo o mundo participaram do projeto. O modelo de desenvolvimento do Linux ainda é considerado um representante típico das características de organização de grandes coletivos de código aberto . Hoje, centenas de entusiastas e empresas de todos os portes participam do projeto, do qual Linus Torvalds ainda é o coordenador. Eric Raymond descreve no ensaio La Cathédrale et le Bazar (2001) o modelo de desenvolvimento do kernel Linux e parte do software livre .

Em sistemas embarcados , o Linux é usado freqüentemente com as uClibc e BusyBox ferramentas que foram desenvolvidas para hardware particularmente limitado em capacidade de memória. Ser capaz de compilar o kernel do Linux com opções especialmente adaptadas ao hardware de destino oferece aos desenvolvedores muitas possibilidades de otimização.

Desenvolvimento do kernel Linux

Se no início de sua história o desenvolvimento do kernel Linux era realizado por desenvolvedores voluntários, os principais contribuintes hoje são um grupo de empresas, muitas vezes em competição, como Red Hat , Novell , IBM ou Intel .

A IBM tinha seu próprio UNIX, denominado AIX, mas a mudança para o Linux - além de permitir que desenvolvedores e mantenedores de AIX sejam designados a outros projetos - também tem a vantagem de permitir uma recuperação, sem dificuldades de portabilidade. Aplicativos ou novos treinamentos para equipes de TI , de servidores Linux PC para Linux em suas séries i, pe z.

A licença do kernel Linux é a GNU General Public License na versão 2. Esta licença é gratuita, o que permite que você use, copie e modifique o código-fonte de acordo com seus desejos ou necessidades. Assim, qualquer pessoa com o conhecimento necessário pode participar do teste e evolução do kernel .

Ritmo de desenvolvimento

Entre março e Abril de 2005, o número de linhas de código dobrou (de 4,4 milhões para 8,8 milhões). No início de 2009, a versão 2.6.30 do kernel do linux consistia em mais de 11,5 milhões de linhas de código em 28.000 arquivos, enquanto 2,8 milhões de linhas foram adicionadas entre o Natal de 2008 ejaneiro de 2010.

Entre 2005 e meados de 2009, 5.000 desenvolvedores e 500 empresas participaram da escrita do kernel. O número de patches oferecidos está aumentando, especialmente desde a versão 2.6.25.

Papel de Linus Torvalds

Linus Torvalds , criador do kernel Linux, é o mantenedor oficial desde seu início em 1991 . Ele é uma espécie de "ditador benevolente", a autoridade em termos de escolhas técnicas e organizacionais. As diferentes versões do kernel publicadas por Linus Torvalds são chamadas de "mainline" ou "vanilla" em inglês. Estes são os baunilha kernels que são integrados pelos distribuidores, por vezes com a adição de alguns patches de segurança, correções de bugs ou otimizações.

Processo de desenvolvimento

Linus Torvalds trouxe uma mudança radical na forma como os sistemas operacionais são desenvolvidos, aproveitando ao máximo o poder da Internet.

O processo de desenvolvimento do Linux é público na Internet: as fontes do kernel são visíveis para todos, as mudanças nessas fontes são publicadas e revisadas na Internet e também são visíveis para todos. Um ciclo de desenvolvimento incremental e rápido foi adotado desde o início (hoje uma nova versão é lançada a cada 9 semanas ou mais), o que tornou possível construir em torno do Linux e da Internet em camadas sucessivas uma comunidade dinâmica composta de desenvolvedores, empresas e usuários.

Modo de discagem

Os números da versão do kernel são compostos por três números: o primeiro é o número principal, o segundo é o número secundário. Antes do lançamento das versões 2.6.x, os números menores pares indicavam uma versão estável e os números menores ímpares indicavam uma versão em desenvolvimento. Assim, as versões 2.2, 2.4 são estáveis, as versões 2.3 e 2.5 são versões de desenvolvimento. No entanto, desde a versão 2.6 do kernel, este modelo de numeração estável / em desenvolvimento foi descontinuado e, portanto, não há nenhum significado especial para números pares ou ímpares menores. O terceiro número indica uma revisão, que corresponde a correções de bugs, correções de segurança ou uma adição de funcionalidade, por exemplo 2.2.26, 2.4.30 ou 2.6.11. A mudança para a versão 3.0 foi decidida por Linus Torvalds por ocasião dos 20 anos do kernel Linux, ainda que o motivo real fosse bastante arbitrário.

Desde a Março de 2005(data de lançamento do kernel 2.6.11), Greg Kroah-Hartman e Chris Wright tentam manter um branch estabilizado do kernel vanilla Linus Torvalds. Seu objetivo é estabilizar ainda mais o kernel, integrando correções simples e concisas de correção de bugs, segurança ou otimização que atendem a critérios rígidos. Este ramo não integra novas funcionalidades. Suas publicações são indicadas por um quarto número de versão, por exemplo 2.6.11.1 ou 2.6.11.6. O funcionamento técnico e organizacional deste ramo será testado ao longo do tempo, a médio e longo prazo.

Patches

Existem vários patches disponíveis na Internet na comunidade de desenvolvimento do kernel Linux. Os mais conhecidos são os de Andrew Morton com sufixo -mm que integram patches de funcionalidades e otimizações altamente solicitadas e o WOLK ( trabalhando sobre kernel carregado , kernel funcional sobrecarregado).

A distribuição Ubuntu Studio também inclui um kernel de baixa latência ( Low-latency Kernel ) garantindo menor latência para aplicativos de áudio, ao custo, no entanto, de uma maior carga no próprio sistema (devido a loops de vigilância, polling ) e, portanto, uma diminuição em sua taxa de transferência . Este kernel é pouco usado fora da criação musical, que requer o mínimo de atraso possível entre o toque de uma tecla e a produção do efeito correspondente.

Linux em tempo real

Os patches de Ingo Molnár com o sufixo -rt são usados ​​por distribuições Linux de multimídia como DeMuDi  ; eles fornecem o desempenho em tempo real necessário para o funcionamento adequado de uma estação de trabalho multimídia profissional. Ingo Molnar também é o criador do depurador de kernel kgdb .

Cronologia

Cronograma de lançamento do Linux
Versão Datado Principais melhorias
0,01 17 de setembro de 1991 Distribuição confidencial (10.000 linhas de códigos).
0,02 5 de outubro de 1991 Anúncios na Usenet, sistema quase inutilizável.
0,03 Outubro de 1991 bash e gcc disponíveis em binário.
0,10 Dezembro de 1991 Primeiras contribuições externas, internacionalização do teclado.
0,11 meio-Dezembro de 1991 Driver para disquete, SCSI em desenvolvimento.
0,12 5 de janeiro de 1992 Memória virtual, sistema utilizável, mais hardware suportado, distribuído em GNU GPL , consoles virtuais.
0,95 7 de março de 1992 Init / login, X Window portado, existe um newsgroup : alt.os.linux
0.95a 17 de março de 1992 Novo mantenedor do disquete root do Linux  : Jim Winstead .
0,96 - 0,99 nível de patch 15Z 2 anos de desenvolvimento, para adição de funcionalidades e correções, o comp.os.linux. * Os fóruns são os mais freqüentados da usenet e são reorganizados 3 vezes, sinal de que a comunidade está crescendo e está muito ativa.
1.0 Março de 1994 O kernel Linux é estável para produção e fornece os serviços de um UNIX clássico (176.000 linhas de código).
1,2 Março de 1995 Muito mais arquiteturas de processador, módulos carregáveis, etc. (311.000 linhas de código)
2.0 Julho de 1996 PowerPC , Multiprocessador , mais hardware suportado, gerenciamento de rede mais completo, aparência do mascote Tux .
2.1.80 Janeiro de 1998 Suporte preliminar para arquiteturas ARM
2,2 Janeiro de 1999 Framebuffer , NTFS , Joliet , IPv6 ,… (1,8 milhões de linhas de código)
2,4 Janeiro de 2001 USB , PCMCIA , I2O, NFS 3, X86-64 ... (3,378 milhões de linhas de códigos)
2,6 dezembro 2003 ALSA , kernel preemptivo, ACL , NFS 4,… (5,93 milhões de linhas de código)
2.6.16 LTS 20 de março de 2006 Primeira versão com suporte estendido, suporte OCFS2, suporte a processador Cell , 13 novas chamadas de sistema adicionadas para plataformas x86 e x86_64, suporte cpufreq para Power Mac G5s , gerenciamento de energia aprimorado para alguns dispositivos, suporte IPv6 para protocolo DCCP , gerenciamento ACL para sistema de arquivos CIFS , Gerenciamento do sistema de arquivos HFSX , suporte para execução de executáveis ​​do sistema de arquivos plan9,….
2.6.17 17 de junho de 2006 Suporte para CPUs multicore Niagara da Sun, suporte para chipset wi-fi Broadcom 43xx, otimização de imagem do kernel na inicialização em x86, novo agendador otimizado para processadores multicore….
2.6.18 19 de setembro de 2006 Ferramenta Lockdep, herança de prioridade, gerenciamento de prioridade com SMPnice, planejador CFQ,….
2.6.19 29 de novembro de 2006 Sistema de arquivos GFS2, criptografia eCryptfs, subsistema libata, etc.
2.6.20 4 de fevereiro de 2007 Virtualização KVM, suporte UDP-Lite, varredura SCSI assíncrona,….
2.6.21 25 de abril de 2007 Paravirtualização interface de VMI (Virtual Machine Interface), dynticks e Clockevents, ....
2.6.22 8 de julho de 2007 Camada wi-fi totalmente nova, alocador de memória SLUB, agendador CFQ I / O , novos drivers ... (8.499 milhões de linhas de código)
2.6.23 9 de outubro de 2007 Novo agendador de tarefas CFS , ambiente de suporte de driver de espaço de usuário UIO integrado ao kernel, alocador de memória padrão SLUB,….
2.6.24 24 de janeiro de 2008 Unificação das arquiteturas i386 e x86-64 , E / S vetorial, autenticação de periféricos USB, agendamento de grupo com CFS ,….
2.6.25 16 de abril de 2008 SMACK (alternativa ao SELinux ), gerenciamento do barramento CAN , redesenho do timerfd , melhoria do gerenciamento em tempo real ….
2.6.26 13 de julho de 2008 Integração do depurador de kernel kgdb , início do suporte para redes de topologia mesh unificada, suporte para telas Braille , suporte para PAT para arquitetura x86 , montagem “--bind” somente leitura, gerenciamento de direitos de segurança por processo ( securebits ), virtualização aprimorada com KVM ….
2.6.27 LTS 9 de outubro de 2008 Conjunto de drivers de webcam GSPCA, camada de rede de vários arquivos, UBIFS , sistema de  depuração ftrace (en) ….
2.6.28 24 de dezembro de 2008 Gerenciador de memória para placas de vídeo GEM ( Graphics Execution Manager ), sistema de arquivos ext4 , melhor suporte para gerenciamento de memória, gerenciamento de redes UWB ….
2.6.29 23 de março de 2009 Integração de Btrfs , squashfs , bateria WiMAX , melhoria de eCryptfs  (in) , integração de KMS , etc.
2.6.30 9 de junho de 2009 Integração de NILFS , um cache local para sistemas de arquivos remotos , o módulo de segurança TOMOYO, suporte para dispositivos de armazenamento de objetos (11,561 milhões de linhas de código).
2.6.31 9 de setembro de 2009 Suporte para USB 3.0, aparência API fsnotify para notificação de eventos relacionados ao sistema de arquivos, desfragmentação de disco quente para ext4 , monitor de desempenho PerfCounters .
2.6.32 LTS 3 de dezembro de 2009 Gravação de dados por BDI, Mudanças no escalonador CFS, Gerenciamento dinâmico de energia, Gerenciamento de integridade TXT , devtmpfs para listagem de dispositivos, técnica KSM para redução do footprint de memória de sistemas virtualizados com KVM , socket encarregado da função TRIM pelo Btrfs .
2.6.33 LTS 24 de fevereiro de 2010 Sistema de arquivos DRBD , novo driver , transação TCP por cookie, controlador IO-Block, suporte à função TRIM por ext4 .
2.6.34 LTS 16 de maio de 2010 Sistemas de arquivos Ceph e LogFS, standby de dispositivo assíncrono, mecanismo de segurança GTSM, Lockdep-RCU, VGA-Switcheroo.
2.6.35 LTS 2 de agosto de 2010 Função Cpu_stop, gerenciamento de energia, compressão de memória, desempenho de rede com RPS e RFS, Qualidade de serviço com pm_qos, gerenciamento de interrupção.
2.6.36 20 de outubro de 2010 AppArmor , reescrita de função OOM Killer , ferramenta fanotify , otimizações de VFS .
2.6.37 5 de janeiro de 2011 Desempenho aprimorado de ext4 e rastreamento de mecanismos ( etiqueta de salto ) suporte FITRIM (um TRIM diferido) para ext4 , introdução do alocador de memória memblock para substituir early_res, bateria PPTP , primeiro driver wi-fi Broadcom (todos os principais construtores wi-fi agora têm um driver gratuito).
2.6.38 15 de março de 2011 Nova gestão de paginação macroscópica , otimização da resolução do caminho de acesso .
2.6.39 18 de maio de 2011 Abordagem encadeada para conectar periféricos , integração de ipsets oficiais, suporte FITRIM (um TRIM atrasado) por Btrfs , fim do bloqueio global ( Big Kernel Lock ).
3,0 LTS 22 de julho de 2011 Novo cache de página de memória, melhorias de Btrfs , nova interface de acesso de alarme de BIOS , remoção de pré-busca, compilador instantâneo para instruções de comparação de pilha de rede.
3,1 24 de outubro de 2011 Arquitetura OpenRISC , gerenciamento de consumo por cpupower, acréscimos de recursos para KVM , melhoria de gerenciamento de memória Xen , gerenciamento de velocidades de disco, sistema de arquivos virtual , protocolo BATMAN , adição de drivers NFC
3.2 LTS 4 de janeiro de 2012 Melhoria dos drivers CFS , ext4 , Btrfs , MPI e gráficos, algoritmos do Extended Verification Module para verificação criptográfica e redução da taxa proporcional para a pilha TCP , gerenciamento de geradores de número aleatório digital e arquiteturas Hexagon e secAMD Bulldozer , gerenciamento de write-back dinâmico , implementação de montagem de SHA -1 , Blowfish e Twofish , RAID-5 para EXOFS  (en) , API Dynamic Voltage e Frequency Scaling , leitura assíncrona para SMB . A versão 3.2.5 corrige um bug que existia desde a versão 2.6.38 no Active State Power Management (ASPM) que causava consumo excessivo de energia.
3,3 19 de março de 2012 Integração de drivers Android , libgcrypt , Open vSwitch, um driver de rede "equipe", arquitetura C6X, adição de um cgroup para recursos de rede, "naturalização" de memcg, novos limites de infraestrutura de "  fila de bytes  ", buffer DMA , PAE para processadores ARM , Suporte LLCP e NVM Express , novo gerenciador de bateria, melhoria de ext4 e Btrfs , reconstrução “quente” para RAID, saída de áudio via HDMI
3,4 20 de maio de 2012 Arquitetura X32 , dm-verity na placa periférica , unificação de gerenciamento de relógio para a arquitetura ARM, módulo de segurança YAMA, aprimoramento de ext4 , Btrfs , drivers gráficos e de desempenho , suporte para Universal Flash Storage e HSI, algoritmo Camellia em assembler, domínios IRQ
3,5 21 de julho de 2012 Algoritmo CoDel para a pilha TCP, revisão da tabela de exceção x86, melhor manuseio de EDAC , NUMA , namespaces de usuário e logs de kernel, drivers de gráficos Btrfs , ext4 , perf e AMD e intel aprimorados , método autosleep , filtragem de chamadas de sistema por Seccomp, sondas uprobes, modo de reparo para conexões TCP
3,6 30 de setembro de 2012 Espera e hibernação combinadas, economia de energia para ATA e PCIe, melhorias em TCP , Btrfs e ext4 , geração de entropia e drivers gráficos, remoção de cache de roteamento IPv4, troca por NFS, melhor manuseio de SSDs em RAID
3,7 11 de dezembro de 2012 Compilação de plataforma cruzada, virtualização e versão de 64 bits para a arquitetura ARM, Prevenção de Acesso do Modo Supervisor , gerenciamento de módulo de assinatura por MODSIGN, Wii Balance Board , processador SPARC T4  (in) , reescrita KMS e novo driver Radeon aprimorado, TCP , perf , Btrfs e sistemas de arquivos ext4 , NAT IPv6 , VXLAN, limpeza de cabeçalhos
3,8 19 de fevereiro de 2013 Fim do suporte i386 , suporte POWER8 adicionado , escalonador NUMA aprimorado , drivers gráficos Tegra , Intel , Nouveau e Radeon aprimorados , novo sistema de arquivos F2FS e Btrfs e ext4 aprimorados , Netlink aprimorado , criptografia de algoritmos aprimorados , gerenciamento Wi-Fi 802.11ac e 802.11ad , namespaces de rede para usuários, implementação de RFC5961. Adicionados contêineres LXC .
3,9 29 de abril de 2013 Novo modo de espera, reagrupamento de arquiteturas ARM, melhoria dos drivers gráficos Intel , Nouveau e Radeon , RAID 5 e 6 para Btrfs , melhorias de IPv6 , novo filtro no Netfilter , bloqueio de filtros no soquete , mapeador de dispositivos para usar um dispositivo como o cache de outro algoritmo LZO aprimorado
3.10 LTS 30 de junho de 2013 Adicionado suporte para Unified Video Decoder  (in) , integração Bcache SSD / HDD , suporte significativamente aprimorado para processadores Intel Haswell , suporte aprimorado para processadores ARM de 64 bits, recursos de virtualização aprimorados e adição de drivers de áudio. Como acontece com cada nova versão, as atualizações são fornecidas para os sistemas de arquivos ext4 e btrfs
3,11 2 de setembro de 2013 Compressão de swap pages, compressão do kernel em LZ4 para a arquitetura ARM, otimização da criação de arquivos temporários, melhorias para as arquiteturas ARM e Aarch64, drivers gráficos intel, nVidia e ATI / AMD, redução do consumo da placa gráfica por Dynamic Power Gerenciamento e gerenciamento de energia de estado ativo , melhorias para ext4 , Btrfs, XFS, F2FS e Luster
3,12 LTS 3 de novembro de 2013 Desempenho aprimorado de cpufreq , nós de renderização para DRM , gerenciamento de direitos para buffers gráficos, HDMI e infoframes ultra HD, sono profundo para processadores gráficos Haswell, desligamento automático e decodificação de hardware VP3-VP4 para placas nVidia, melhor gerenciamento de energia para ATI / AMD placas, suporte para núcleos gráficos Adreno, desempenho aprimorado de ext4 e F2FS
3,13 20 de janeiro de 2014 Mecanismo UEFI Common Platform Error record , earlyprintk para UEFI , seqcount / seqlocks in lockdep, balanceamento NUMA automático, limitação de consumo de intel, driver aprimorado para placas GPU Adreno ARM e nVidia, som sobre HDMI e GPU de gerenciamento de energia para AMD / ATI, processadores de gerenciamento Broadwell (microarquitetura)  (en) e Display Serial Interface , substituição de iptables por nftables , fila múltipla para gravação de arquivos por sistemas multi-core, melhor gerenciamento de loginuid , melhoria de / dev / urandom
3,14 LTS 31 de março de 2014 Suporte para coprocessadores criptográficos AMD , chipset Intel Merrifield e novos processadores ARM e MIPS, drivers gráficos AMD e Intel aprimorados, aceleração para GPUs nVidia GK110 / GK208, endereços IPv6 de espaço de usuário temporário, autocap TCP, depurador para BSD Packet Filter , melhoria de Btrfs e F2FS , melhoria da virtualização pelo Xen .
3,15 8 de junho de 2014 Suporta modo misto EFI , suporta o conjunto de instruções AVX-512  (in) , agendador melhorado, abandono de plataformas x86 antigas, gerenciamento aprimorado das chaves de brilho, drivers gráficos gratuitos aprimorados, proteção aprimorada contra ataques de negação de serviço , nível 4 de segurança Bluetooth , sistemas de arquivos ext3 / 4 estabilizados e XFS, Btrfs, F2FS aprimorados
3,16 LTS 3 de agosto de 2014 Melhorias nos drivers gráficos gratuitos, TCP Fast Open disponível para IPv6, correções de vulnerabilidades, melhorias nos sistemas de arquivos XFS, Btrfs, F2FS, Reiser4 e NFS
3,17 5 de outubro de 2014 Suporta modo inativo pela geração Broadwell (microarquitetura)  (en) , suporte a novos chips ARM, arquiteturas de suporte final IBM POWER3 e IBM RS64 , drivers gráficos gratuitos aprimorados, correções de vulnerabilidade, melhorias de sistemas de arquivos F2FS, NFS, XFS e Btrfs
3,18 LTS 7 de dezembro de 2014 Espera acelerada, suporte CLANG aprimorado, aprimoramentos de driver de gráficos gratuitos, correções de vulnerabilidade, aprimoramentos do sistema de virtualização Xen e KVM , F2FS, NFS, OverlayFS , aprimoramentos do sistema de arquivos Ceph
3,19 8 de fevereiro de 2015 Suporte a novos chips ARM , tecnologia de suporte Intel MPX  (in) , gerenciamento aprimorado do problema do ano 2038 , melhoria de drivers gráficos gratuitos, correções de vulnerabilidades, melhorias no sistema de arquivos f2fs, NFS, OverlayFS, Ceph, Btrfs e SquashFS , melhorias nos sistemas de virtualização Xen
4,0 12 de abril de 2015 Atualização dinâmica do kernel, suporte ao chip Trusted Platform Module 2.0, aprimoramento gratuito do driver gráfico, correções de vulnerabilidade, F2FS, OverlayFS, aprimoramentos do sistema de arquivos Ceph e Btrfs, aprimoramentos do sistema de virtualização KVM e Virtio
4.1 LTS 21 de junho de 2015 Suporte de novos chips (ARM, Xilinx , Qualcomm ), melhoria de gerenciamento de energia, grande atualização da arquitetura x86 , correção de vulnerabilidades, melhoria de drivers gráficos livres, sistemas de arquivos e sistemas de virtualização
4,2 30 de agosto de 2015 Suporte para novos chips (ARM, Hitachi H8 ), bloqueios aprimorados, desempenho de rede aprimorado, módulos de segurança aprimorados, vulnerabilidades corrigidas, drivers gráficos gratuitos aprimorados, Btrfs, Ext4, FUSE, sistemas de arquivos F2FS e virtualização de sistemas KVM e Xen
4,3 1 r de Novembro de 2015 Intel Skylake Graphics habilitado por padrão, suporte AMD Radeon R9 Fury, suporte OpenGL para VMware, reescrita de driver NVIDIA / Nouveau, driver EXT3 desaparecido (compatível com driver EXT4), muitas melhorias para XFS, EXT4, F2FS, Btrfs, RAID5 / 6 e TRIM .
4,4 LTS 10 de janeiro de 2016 Suporte para aceleração gráfica em máquina virtual, melhoria de I / O (direta e assíncrona), suporte para SSDs de canal aberto, registro de RAID5 na camada MD (RAID / LVM ), programas eBPF podem ser usados ​​por usuários sem privilégios, novos pilotos .
4,5 13 de março de 2016 Melhora a gestão do consumo de energia. Suporte preliminar para AMD PowerPlay  (in) . Retrabalho massivo das arquiteturas ARM v6 e ARM v7.
4,6 15 de maio de 2016 Adicionando o sistema de arquivos OrangeFS  (en) , adicionado suporte para USB 3.1, suporta a versão 5 do protocolo BATMAN .
4,7 24 de julho de 2016 Gerenciamento de controladores Microsoft Xbox One, Apple / Intel Thunderbolt (interface) e USB / IP.
4,8 4 de setembro de 2016 Suporta overclocking de AMDGPU (através do suporte OverDrive).
4,9 LTS 11 de dezembro de 2016 Melhorias na segurança do kernel. AMDGPU suporta AMD PowerPlay  (in) . Compatível com Raspberry Pi Zero.
4,10 30 de abril de 2017 Melhorias (exː Amlogic S905) e correções (exː AMD Ryzen ).
4,11 1 ° de maio de 2017 Melhorias e correções.
4,12 2 de julho de 2017 Fornece suporte para USB Type-C e IMSM ( Intel Matrix RAID  (en) Storage Manager).
4,13 3 de setembro de 2017 Melhorias ( ext4 , I / O , aceleração TLS ) e correções.
4.14 LTS 12 de novembro de 2017 Maior RAM máxima gerenciada em arquiteturas x86_64 , Suporte para novos dispositivos ARM e correções.
4,15 28 de janeiro de 2018 Melhorias em relação à resistência a Meltdown (vulnerabilidade) e Spectre (vulnerabilidade) , muitas melhorias em relação ao AMDGPU .
4,16 16 de maio de 2018 Melhorias em relação à resistência a vulnerabilidades de segurança em CPUs. Adição da segunda parte do código referente ao AMD Secure Encrypted Virtualization  (en) .
4,17 3 de junho de 2018 Melhorias para o kernel 4.17.
4,18 12 de agosto de 2018 Melhorias para o kernel 4.18.
4.19 LTS 22 de outubro de 2018 Melhorias relativas ao kernel 4.19.
4,20 23 de dezembro de 2018 Melhorias para o kernel 4.20.
5.0 3 de março de 2019 Melhoria do driver livre para o AMD Radeon VIIs, trazendo a renderização a um nível nunca alcançado por nenhum driver GPU livre e chegando cara a cara com o driver proprietário da Nvidia. .
5,1 5 de maio de 2019 Melhorias relativas ao VFS com a adição de fsopen, melhorias para io assíncrono com a integração de io_uring. .


5,2 7 de julho de 2019 Melhorias no kernel 5.2.
5,3 15 de setembro de 2019 Melhorias relativas ao kernel 5.3.
5,4 24 de novembro de 2019 Melhorias relacionadas ao kernel 5.4.
5,5 26 de janeiro de 2020 Melhorias para o kernel 5.5.
5,6 29 de março de 2020 Melhorias para o kernel 5.6.
5,7 31 de maio de 2020 Melhorias para o kernel 5.7.
5,8 2 de agosto de 2020 Melhorias no kernel 5.8.
5,9 11 de outubro de 2020 Melhorias no kernel 5.9.
5,10 13 de dezembro de 2020 Melhorias para o kernel 5.10.
5,11 14 de fevereiro de 2021 Melhorias para o kernel 5.11.


Fonte: www.kernel.org

 

Gerenciamento de versão

O núcleo foi mantido há muito tempo sem controle de versão do sistema , principalmente porque Linus Torvalds não gostava dos sistemas de controle de versão centralizado.

Em 2002 , o kernel mudou para o Bitkeeper , um sistema de controle de versão proprietário que atendia aos requisitos técnicos de Linus Torvalds. O uso deste software foi oferecido gratuitamente aos desenvolvedores do kernel . Porém, por não ser um software livre , a escolha desse produto gerou polêmica na comunidade. O sistema não era, por exemplo, interoperável com sistemas de controle de versão de código aberto, como CVS e SVN .

Dentro Abril de 2005, Os esforços de Andrew Tridgell para fazer a engenharia reversa do Bitkeeper levaram a BitMover, a editora desse software, a descontinuar o suporte ao desenvolvimento do Linux. Em resposta, Linus Torvalds e alguns outros desenvolveram um novo sistema de controle de versão: Git . Uma primeira versão do Git foi escrita em poucas semanas e, dois meses depois, uma nova versão do kernel desenvolvida com o Git foi lançada. O desenvolvimento e a manutenção do software Git foram então rapidamente deixados para Junio ​​Hamano e a comunidade. Desde então, foi amplamente adotado, entre outros, pela comunidade de software livre.

Características técnicas

Compilação de kernel

Como todos os programas de computador, o kernel do Linux é escrito como código-fonte e deve ser transformado em um binário executável para ser compreendido pelo microprocessador.

Na medida em que o código-fonte do kernel Linux contém uma quantidade muito grande de funcionalidades, o usuário pode optar por integrar apenas aquelas que são úteis ou mais adequadas a ele (muitas funcionalidades são concorrentes): é a etapa de configuração do kernel.

A grande maioria das distribuições GNU / Linux instala um kernel pré-compilado que atende às necessidades de estações de trabalho e servidores. Portanto, é raro um usuário Linux ter que compilar um kernel. A compilação torna possível adaptar o kernel a necessidades específicas, como o suporte de hardware incomum, a ativação de funcionalidades experimentais ou a adaptação a plataformas específicas, como sistemas embarcados.

O código-fonte do kernel Linux está disponível em kernel.org , mas as distribuições GNU / Linux também fornecem fontes compactadas em seus depósitos.

A etapa mais importante na construção de um kernel personalizado é configurá-lo. As opções de configuração são declaradas no arquivo .config, cada uma corresponde a uma funcionalidade do kernel, que se decide usar ou não. Geralmente, são possíveis três opções:

  • Y : a funcionalidade é compilada e implementada na imagem do kernel
  • M : o recurso é compilado como um módulo
  • N : o recurso é ignorado

Algumas opções são binárias: a funcionalidade está incluída na imagem do kernel ou não foi compilada.

Existem várias ferramentas para ajustar a configuração:

  • make config : programa em modo de texto que lista todas as opções e pede que você insira sua escolha
  • make menuconfig : utilitário em modo texto escrito com ncurses , permite uma navegação mais fácil na configuração
  • make gconfig : ferramenta gráfica baseada em GTK +
  • make xconfig : ferramenta gráfica baseada em Qt
  • make defconfig : ferramenta usada para recuperar os parâmetros de configuração do kernel padrão. Esses parâmetros são fornecidos pelos desenvolvedores do kernel cada vez que o kernel é lançado.
  • make oldconfig : ferramenta que permite recuperar os parâmetros de configuração de uma versão antiga do kernel para não reiniciar a configuração do zero.
  • make olddefconfig : ferramenta que permite recuperar os parâmetros de configuração padrão do kernel e definir os outros parâmetros por padrão.
  • make localmodconfig : ferramenta usada para recuperar os parâmetros de configuração do kernel atualmente em execução na máquina para carregar apenas os módulos necessários.

A compilação do kernel e dos módulos é feita pelo comando make. Esta operação pode levar muito tempo, no entanto, o uso do argumento -jreduz o tempo de compilação. Isso prejudica a capacidade de resposta de outros programas e, portanto, do sistema operacional. A instalação é automatizada, os comandos make installe make modules_installpermitem respectivamente instalar a imagem do kernel e seus módulos.

Para permitir que o sistema inicialize com a nova imagem do kernel, é necessário configurar o carregador de boot ( LILO , GRUB ) para executar a imagem do kernel na inicialização. Com ( GRUB , GRUB2 ), o comando update-grub automatiza a configuração.

A distribuição Debian fornece um utilitário make-kpkgque automatiza os passos acima e cria pacotes Debian. Isso permite uma implantação fácil em um grande número de máquinas. Caso contrário, ainda para debian, podemos inserir os comandossudo su ; make menuconfig ; make deb-pkg ; cd ../ ; dpkg -i *deb

Interfaces

Portabilidade

Embora o objetivo inicial do projeto fosse apenas fornecer um kernel do tipo UNIX em arquiteturas x86 , a disponibilidade de fontes permitiu que os contribuidores o adaptassem a um grande número de arquiteturas .

O Linux pode ser executado em computadores de consumo, bem como em supercomputadores de primeira linha entre os 500 melhores. novembro de 2011 : neste ranking, o Linux esteve presente em 91,4% das máquinas.

O kernel também é usado em sistemas embarcados, fornecidos com hardware mais modesto; alguns dos exemplos mais conhecidos são os sistemas de navegação por satélite TomTom ou telefones com a distribuição Android Linux .

Codificação de caracteres

Embora a maioria dos aplicativos seja desenvolvida para funcionar com determinadas codificações de caracteres , o design do kernel do Linux é tal que a codificação de caracteres usada não é conhecida. Em particular, como no antigo Unix, o nome dos arquivos é considerado uma string de bytes, sem que seja possível saber de forma determinística qual texto específico ele representa, na ausência do conhecimento da codificação de caracteres utilizada.

Em relação ao shebang , o kernel do Linux assume que os scripts serão escritos em uma codificação de caracteres extensível ASCII , sem incluir um byte de flag antes do primeiro caractere, como pode acontecer no Unicode . No entanto, o texto Unicode pode passar pelo kernel, especialmente ao acessar sistemas de arquivos NTFS ou CIFS / Samba .

Disputas

Um hobby simples de um estudante no início, o kernel Linux permitiu o surgimento de sistemas operacionais livres em competição direta com outros sistemas operacionais comerciais. Desde seu lançamento em várias arquiteturas (após a versão 1.0), tem sido alvo de ações judiciais  :

  • Sobre a marca: em 1995 , quando o Linux já havia adquirido certa notoriedade, um indivíduo teve a ideia de registrar a marca Linux , o que ninguém havia feito. A reação foi animada em toda a comunidade, a disputa foi resolvida fora do tribunal e Linus tornou-se o dono do nome Linux (e, portanto, livre para recusá-lo ou não a uma distribuição considerada muito comercial).
  • Sobre direitos autorais: uma ação judicial opôs SCO à IBM sobre o assunto do kernel Linux: veja sobre este assunto SCO contra Linux .
  • Sobre patentes de software: incompatíveis com a ideia de interoperabilidade essencial para o sucesso do software livre, as patentes de software constituem uma ameaça para o Linux. Essas patentes são emitidas nos Estados Unidos, mas foram rejeitadas pelo Parlamento Europeu .

Avaliações

Brad Spengler , desenvolvedor da grsecurity , acusa o kernel do Linux de às vezes concentrar seus esforços na funcionalidade em detrimento da segurança. Ele afirma que Linus Torvalds disse a ele que não estava interessado em adicionar opções de segurança úteis para evitar estouros de buffer, pois isso tornaria o carregamento de aplicativos mais lento .

Ele critica a ausência de um responsável oficial pela segurança, com quem seja possível se comunicar em particular e em total segurança. Em vez disso, a única solução é enviar um e - mail para uma lista de discussão de problemas de segurança onde as vulnerabilidades descobertas às vezes são usadas para fins maliciosos antes do lançamento de uma atualização de segurança, enquanto os usuários do Linux não estão cientes da existência dessa falha.

Finalmente, ele questiona a implementação do sistema LSM desde a versão 2.6 do kernel, que teria sido implementado de forma relaxada e teria facilitado a inserção de rootkits invisíveis dentro do sistema, passando-os como módulos de segurança. Esta revisão não é mais relevante graças às mudanças feitas desde a versão 2.6.24.

Notas e referências

  1. (em) É oficial, o Linux foi lançado em 17 de setembro de 1991  " (acessado em 10 de abril de 2018 )
  2. Linus Torvalds , “  Linux 5.12  ” ,25 de abril de 2021(acessado em 26 de abril de 2021 )
  3. (em) Linus Benedict Torvalds , "  comp.os.minix  " ,Agosto de 1991(acessado em 6 de setembro de 2009 )
  4. Esta informação foi retirada do documento Nascimento do Linux , disponível no Wikisource . Ele contém as mensagens em questão e suas traduções.
  5. Notas de versão para Linux v0.12
  6. (in) "  Versão do kernel do Linux 1.0.0 lançada  " em www.webdevelopersnotes.com (acessado em 7 de dezembro de 2017 )
  7. (em) Nate Larkin , Samson and the Pirate Monges: Calling Men to Authentic Brotherhood , Thomas Nelson,18 de fevereiro de 2007, 224  p. ( ISBN  978-1-4185-7769-8 , leia online )
  8. De acordo com Lars Wirzeniu em uma apresentação feita em 1998: Anedotas do Linux
  9. "  US Reg No: 1916230  " , United States Patent and Trademark Office (acessado em 1 ° de abril de 2006 )
  10. Sébastien Broca , Utopia of free software: from computer tinkering to social reinvention , Ed. o clandestino,2013( ISBN  978-2-916952-95-6 e 2916952950 , OCLC  867598251 , leia online )
  11. a catedral e o bazar , de Eric S. Raymond.
  12. [PDF] The Linux Foundation, “  Linux Kernel Development  ” ,2009(acessado em 4 de fevereiro de 2010 )
  13. "  The Linux Kernel Open Source Project: Languages ​​Page  " , no Open Hub (acessado em 30 de setembro de 2015 )
  14. Código aberto: 75% dos contribuidores Linux são pagos no ZDNet
  15. Mensagem de Linus em LKML
  16. Lançamento do Linux 2.1.80
  17. Kernel 2.6.16 lançado em LinuxFr.org
  18. Kernel 2.6.17 lançado em LinuxFr.org
  19. Kernel 2.6.18 lançado em LinuxFr.org
  20. Kernel 2.6.19 lançado em LinuxFr.org
  21. Kernel 2.6.20 lançado em LinuxFr.org
  22. Kernel 2.6.21 lançado em LinuxFr.org
  23. Kernel 2.6.22 lançado em LinuxFr.org
  24. Kernel 2.6.23 lançado em LinuxFr.org
  25. Kernel 2.6.24 lançado em LinuxFr.org
  26. Kernel 2.6.25 lançado em LinuxFr.org
  27. Kernel 2.6.26 lançado em LinuxFr.org
  28. Kernel 2.6.27 lançado em LinuxFr.org
  29. Kernel 2.6.28 lançado em LinuxFr.org
  30. Kernel 2.6.29 lançado em LinuxFr.org
  31. Kernel 2.6.30 lançado em LinuxFr.org
  32. Kernel 2.6.31 lançado em LinuxFr.org
  33. Kernel 2.6.32 lançado em LinuxFr.org
  34. Kernel 2.6.33 lançado em LinuxFr.org
  35. Kernel 2.6.34 lançado em LinuxFr.org
  36. Kernel 2.6.35 lançado em LinuxFr.org
  37. Kernel 2.6.36 lançado em LinuxFr.org
  38. Kernel 2.6.37 lançado em LinuxFr.org
  39. Kernel 2.6.38 lançado em LinuxFr.org
  40. Kernel 2.6.39 lançado em LinuxFr.org
  41. "  Kernel Linux 3.0 lançado  " , em linuxfr.org ,22 de julho de 2011(acessado em 22 de abril de 2015 )
  42. "  Kernel Linux 3.1 lançado  " , em linuxfr.org ,24 de outubro de 2011(acessado em 22 de abril de 2015 )
  43. "  Kernel Linux 3.2 lançado  " , em linuxfr.org ,5 de janeiro de 2012(acessado em 22 de abril de 2015 )
  44. "  Kernel Linux 3.3 lançado  " , em linuxfr.org ,19 de março de 2012(acessado em 22 de abril de 2015 )
  45. "  Kernel Linux 3.4 lançado  " , em linuxfr.org ,21 de maio de 2015(acessado em 22 de abril de 2015 )
  46. "  Kernel Linux 3.5 lançado  " , em linuxfr.org ,22 de julho de 2012(acessado em 22 de abril de 2015 )
  47. "  Kernel Linux 3.6 lançado  " , em linuxfr.org ,1 st outubro 2012(acessado em 22 de abril de 2015 )
  48. "  Kernel Linux 3.7 lançado  " , em linuxfr.org ,11 de dezembro de 2012(acessado em 22 de abril de 2015 )
  49. "  Kernel Linux 3.8 lançado  " , em linuxfr.org ,19 de fevereiro de 2015(acessado em 22 de abril de 2015 )
  50. "  Kernel Linux 3.9 lançado  " , em linuxfr.org ,29 de abril de 2013(acessado em 22 de abril de 2015 )
  51. "  Kernel Linux 3.10 lançado  " , em linuxfr.org ,3 de julho de 2013(acessado em 22 de abril de 2015 )
  52. "  Kernel Linux 3.11 lançado  " , em linuxfr.org ,3 de setembro de 2013(acessado em 22 de abril de 2015 )
  53. "  Kernel Linux 3.12 lançado  " , em linuxfr.org ,6 de novembro de 2013(acessado em 22 de abril de 2015 )
  54. "  Kernel Linux 3.13 lançado  " , em linuxfr.org ,21 de janeiro de 2015(acessado em 22 de abril de 2015 )
  55. (em) "  Linux 3.14 AMD's Recording Cryptographic Coprocessor - Phoronix  " em phoronix.com (acessado em 24 de fevereiro de 2021 ) .
  56. "  Kernel Linux 3.14 lançado  " , em linuxfr.org
  57. "  Kernel Linux 3.15 lançado  " , em linuxfr.org ,12 de junho de 2014(acessado em 22 de abril de 2015 )
  58. "  Kernel Linux 3.16 lançado  " , em linuxfr.org ,7 de agosto de 2014(acessado em 22 de abril de 2015 )
  59. "  Kernel Linux 3.17 lançado  " , em linuxfr.org ,13 de outubro de 2014(acessado em 22 de abril de 2015 )
  60. "  Kernel Linux 3.18 lançado  " , em linuxfr.org ,17 de dezembro de 2014(acessado em 22 de abril de 2015 )
  61. "  Kernel Linux 3.19 lançado  " , em linuxfr.org ,16 de fevereiro de 2015(acessado em 22 de abril de 2015 )
  62. "  Kernel Linux 4.0 lançado  " , em linuxfr.org ,22 de abril de 2015(acessado em 22 de abril de 2015 )
  63. "  Kernel Linux 4.1 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 26 de julho de 2015 )
  64. "  Kernel Linux 4.2 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 17 de setembro de 2015 )
  65. (em) "  kernel Linux 4.4 lançado - kernelnewbies.org  "
  66. "  Kernel Linux 4.5 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 20 de abril de 2016 )
  67. "  Kernel Linux 4.6 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 6 de junho de 2016 )
  68. “  Kernel Linux 4.7 lançado - LinuxFr.org  ” , em linuxfr.org (acessado em 28 de setembro de 2016 )
  69. "  Kernel Linux 4.8 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 16 de dezembro de 2016 )
  70. "  Linux kernel 4.9 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 8 de fevereiro de 2017 )
  71. "  Kernel Linux 4.10 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 8 de fevereiro de 2017 )
  72. "  Kernel Linux 4.11 lançado - LinuxFr.org  " , em linuxfr.org (acessado em 26 de junho de 2020 )
  73. "  Linux_4.12 - Linux Kernel Newbies  " , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  74. "  Linux_4.13 - Linux Kernel Newbies  " , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  75. "  Linux_4.14 - Linux Kernel Newbies  " , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  76. "  Linux_4.15 - Linux Kernel Newbies  " , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  77. “  Linux_4.16 - Linux Kernel Newbies  ” , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  78. “  Linux_4.17 - Linux Kernel Newbies  ” , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  79. "  Linux_4.18 - Linux Kernel Newbies  " , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  80. "  Linux_4.19 - Linux Kernel Newbies  " , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  81. "  Linux_4.20 - Linux Kernel Newbies  " , em kernelnewbies.org (acessado em 24 de fevereiro de 2021 ) .
  82. “  Kernel Linux 5.0 lançado - LinuxFr.org  ” , em linuxfr.org (acessado em 24 de fevereiro de 2021 ) .
  83. “  Kernel Linux 5.1 lançado - LinuxFr.org  ” , em linuxfr.org (acessado em 24 de fevereiro de 2021 ) .
  84. http://lkml.iu.edu/hypermail/linux/kernel/1907.0/05444.html
  85. https://lore.kernel.org/lkml/CAHk-=wiP4K8DRJWsCo=20hn_6054xBamGKF2kPgUzpB5aMaofA@mail.gmail.com/
  86. https://lore.kernel.org/lkml/CAHk-=wjmzaD=BZ1hjUYu+RTnSGDLfCRwCdg99GeQpCjEwo9uzw@mail.gmail.com/
  87. https://lore.kernel.org/lkml/CAHk-=wigRZ6TSJU09bMk3Df2DiOw83B7TrQUq+iXroQCK5EVAQ@mail.gmail.com/
  88. https://lore.kernel.org/lkml/CAHk-=wi9ZT7Stg-uSpX0UWQzam6OP9Jzz6Xu1CkYu1cicpD5OA@mail.gmail.com/
  89. https://lore.kernel.org/lkml/CAHk-=wiZGrCkiBB1V7bxp8NZH6yWi9mPM4ptMW16OzOiNprBFA@mail.gmail.com/
  90. https://lore.kernel.org/lkml/CAHk-=wj+mDPbj8hXspXRAksh+1TmPjubc9RNEbu8EVpYyypX=w@mail.gmail.com/
  91. https://lore.kernel.org/lkml/CAHk-=wi-u86++np80GQvgDuARdt9xpBNho6SjHLmYgm8jibGag@mail.gmail.com/
  92. https://lore.kernel.org/lkml/CAHk-=whCKhxNyKn1Arut8xUDKTwp3fWcCj_jbL5dbzkUmo45gQ@mail.gmail.com/
  93. https://lore.kernel.org/lkml/CAHk-=wg8LpRi9+P2_V+ehJ2_EoJifNh2QmVf47aLXfkCd-1UAQ@mail.gmail.com/
  94. Distribuição do kernel Linux
  95. "NOTA! Eu detesto o modelo SCM centralizado" Mensagem de Torvalds na lista de discussão do kernel
  96. Linux Torvalds, “  Kernel SCM saga ..  ” ,2005(acessado em 5 de novembro de 2009 )
  97. (in) Lista de discussão do kernel do Linux, "  Linux 2.6.12  " ,17 de junho de 2005
  98. "  Graph on Top500.org  " ( ArquivoWikiwixArchive.isGoogle • O que fazer? ) (Acessado em 30 de março de 2013 )
  99. Linux Journal 1997
  100. The Computing World 07/07/2005
  101. (em) John P. Mello Jr. Desenvolvedor Raps Linux Security  " no LinuxInsider ,1 ° de janeiro de 2005(acessado em 13 de janeiro de 2013 )
  102. (in) política para o sistema LSM grsecurity.net
  103. Artigo (in) de lwn.net sobre a passagem no API LSM estático

Apêndices

Artigos relacionados

Filmografia

  • Revolution OS , de JTS Moore  (em) 2001
  • Codinome : Linux , de Hannu Puttonen, 2002

links externos