Linus Torvalds pretende migrar kernel Linux para versão mais moderna da linguagem C

Linus Torvalds pretende migrar kernel Linux para versão mais moderna da linguagem C

Linus Torvalds pretende migrar kernel Linux para versão mais moderna da linguagem C

 Enquanto muitos ficam na extrema expectativa de migrarem o kernel Linux para a linguagem Rust (o que de certa forma eu acho ilógico), Linus Torvalds decidiu migrar o kernel Linux para versão mais moderna da linguagem C. Tal iniciativa foi tomada após um patch para solucionar um potencial problema de segurança apresentou outro problema.

 O que me surpreendeu foi descobrir que o kernel Linux é escrito até hoje na versão C89. (não é a toa que estão querendo migrar para Rust. Mas tinha que necessariamente ser Rust? Acho que seria um trajeto muito longo).
"A razão pela qual esse tipo de bug não especulativo pode acontecer é que historicamente não tínhamos  o "declarar variáveis ​​​​em loops" no estilo C99. Então list_for_each_entry() - e todos os outros - fundamentalmente sempre vaza a última entrada HEAD do loop, simplesmente porque não podíamos declarar a variável do iterador no próprio loop."
 Foi pensado inicialmente em migrar para C99 que nas palavras de Linus "eu pessoalmente *realmente* gostaria de ver seria para nós - mais uma vez - olhar para o uso de "-std=gnu99" e corrigir todo o "ponteiro inválido final de vazamento fora do loop"." porém, tal migração não aconteceu devido alguns problemas estranhos relacionados a algumas versões antigas do GCC. Mas tais problemas estavam relacionados a versões 4.9 e mais antigas do GCC.

  Já que agora a versão exigida é a 5.1 ou LLVM 11.0.0, tal migração para C99 poderia ocorrer tranquilamente. Mas a conclusão que chegaram foi que iriam migrar para a versão C11 (-std=gnu11 -Wno-shift-negative-value) por introduzir suporte a multithreading e maior segurança.

 A migração está prevista para ter inicio no kernel Linux 5.18. Então, ainda há muito chão para percorrer já que a versão 5.17 ainda está no candidato a lançamento nº5. Ainda tem mais novidades sobre o kernel para eu trazer. Vou me esforçar essa semana para isso :)

Comente com o Facebook:

Nenhum comentário:

Postar um comentário

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (2) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (5) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (30) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (32) comp (1) compressores (6) container (7) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (1) desenvolvimento (92) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (91) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (12) DragonflyBSD (22) driver (1) dropbear (3) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (11) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (94) gerenciadores de pacotes (4) glaucus (4) GOG (3) google (9) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (12) Intel (15) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (38) kde (1) kernel (138) lançamento (64) leis (1) LFCS (1) libs (2) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (167) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (1) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (84) OpenBSD (7) OpenShift (1) oracle (1) os vários sabores de Linux (44) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (1) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (64) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (23) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (12) segurança digital (24) servidor web (2) servidores (3) shell (9) shell script (8) sistema operacional (25) skarnet (1) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (6) systemd (8) terminal (89) terminal de comandos (18) toca do tux (1) toybox (27) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (2) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (15) zsh (3)