1.. SPDX-License-Identifier: GPL-2.0 2 3Índice de Documentação Adicional do Kernel 4========================================== 5 6A necessidade de um documento como este tornou-se evidente na lista de discussão 7linux-kernel, uma vez que as mesmas perguntas, solicitando referências de 8informações, apareciam repetidamente. 9 10Felizmente, à medida que cada vez mais pessoas chegam ao GNU/Linux, mais pessoas 11se interessam pelo Kernel. No entanto, ler o código-fonte nem sempre é o 12suficiente. É fácil entender o código, mas perder os conceitos, a filosofia 13e as decisões de design por trás dele. 14 15Infelizmente, não há muitos documentos disponíveis para iniciantes começarem. 16E, mesmo quando existem, não havia um local "bem conhecido" que os centralizasse. 17Estas linhas tentam suprir essa falta. 18 19POR FAVOR, se você conhece algum artigo não listado aqui ou se escrever um novo 20documento, inclua uma referência a ele aqui, seguindo o processo de envio de 21patches do kernel. Quaisquer correções, ideias ou comentários também são 22bem-vindos. 23 24Todos os documentos estão catalogados com os seguintes campos: o "Título" do 25documento, o(s) "Autor(es)", a "URL" onde podem ser encontrados, algumas 26"Palavras-chave" úteis para pesquisar tópicos específicos e uma breve 27"Descrição" do documento. 28 29.. note:: 30 31 Os documentos em cada seção deste documento estão ordenados por sua data de 32 publicação, do mais recente para o mais antigo. O(s) mantenedor(es) deve(m) 33 remover periodicamente recursos à medida que se tornem obsoletos ou 34 desatualizados; com exceção de livros fundamentais. 35 36Documentação na árvore do Kernel 37-------------------------------- 38 39Os manuais Sphinx devem ser compilados com ``make {htmldocs | pdfdocs | epubdocs}``. 40 41 * Nome: **linux/Documentation** 42 43 :Autor: Muitos. 44 :Localização: Documentation/ 45 :Palavras-chave: arquivos de texto, Sphinx. 46 :Descrição: Documentação que acompanha o código-fonte do kernel, 47 dentro do diretório Documentation. Algumas páginas deste documento 48 (incluindo este próprio documento) foram movidas para lá e podem 49 estar mais atualizadas do que a versão web. 50 51Documentação on-line 52-------------------- 53 54 * Título: **Linux Kernel Mailing List Glossary** 55 56 :Autor: diversos 57 :URL: https://kernelnewbies.org/KernelGlossary 58 :Data: versão contínua (rolling) 59 :Palavras-chave: glossário, termos, linux-kernel. 60 :Descrição: Da introdução: "Este glossário destina-se a ser uma breve 61 descrição de algumas das siglas e termos que você poderá ouvir durante 62 as discussões sobre o kernel Linux". 63 64 * Título: **The Linux Kernel Module Programming Guide** 65 66 :Autor: Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, 67 Jim Huang. 68 :URL: https://sysprog21.github.io/lkmpg/ 69 :Data: 2021 70 :Palavras-chave: módulos, livro GPL, /proc, ioctls, chamadas de sistema, 71 manipuladores de interrupção. 72 :Descrição: Um excelente livro sob licença GPL sobre o tópico de 73 programação de módulos. Repleto de exemplos. Atualmente, a nova versão 74 está sendo mantida ativamente em https://github.com/sysprog21/lkmpg. 75 76Livros Publicados 77----------------- 78 79 * Title: **The Linux Memory Manager** 80 81 :Autor: Lorenzo Stoakes 82 :Editora: No Starch Press 83 :Data: Fevereiro 2025 84 :Páginas: 1300 85 :ISBN: 978-1718504462 86 :Notas: Gerenciamento de memória. Rascunho completo disponível como acesso 87 antecipado para ré-venda, lançamento completo agendado para o 88 outono de 2025. Veja https://nostarch.com/linux-memory-manager 89 para mais informações. 90 91 * Title: **Practical Linux System Administration: A Guide to Installation, Configuration, and Management, 1st Edition** 92 93 :Autor: Kenneth Hess 94 :Editora: O'Reilly Media 95 :Data: Maio, 2023 96 :Páginas: 246 97 :ISBN: 978-1098109035 98 :Notas: Administração de sistemas 99 100 * Title: **Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules** 101 102 :Autor: Kaiwan N Billimoria 103 :Editora: Packt Publishing Ltd 104 :Data: Agosto, 2022 105 :Páginas: 638 106 :ISBN: 978-1801075039 107 :Notas: Livro sobre depuração (debugging) 108 109 * Title: **Linux Kernel Programming: A Comprehensive Guide to Kernel Internals, Writing Kernel Modules, and Kernel Synchronization** 110 111 :Autor: Kaiwan N Billimoria 112 :Editora: Packt Publishing Ltd 113 :Data: Março, 2021 (Segunda edição publicada em 2024) 114 :Páginas: 754 115 :ISBN: 978-1789953435 (O ISBN da segunda edição é 978-1803232225) 116 117 * Title: **Linux Kernel Programming Part 2 - Char Device Drivers and Kernel Synchronization: Create user-kernel interfaces, work with peripheral I/O, and handle hardware interrupts** 118 119 :Autor: Kaiwan N Billimoria 120 :Editora: Packt Publishing Ltd 121 :Data: Março, 2021 122 :Páginas: 452 123 :ISBN: 978-1801079518 124 125 * Title: **Linux System Programming: Talking Directly to the Kernel and C Library** 126 127 :Autor: Robert Love 128 :Editora: O'Reilly Media 129 :Data: Junho, 2013 130 :Páginas: 456 131 :ISBN: 978-1449339531 132 :Notas: Livro fundamental 133 134 * Título: **Linux Kernel Development, 3rd Edition** 135 136 :Autor: Robert Love 137 :Editora: Addison-Wesley 138 :Data: Julho de 2010 139 :Páginas: 440 140 :ISBN: 978-0672329463 141 :Notas: Livro fundamental 142 143 * Título: **Linux Device Drivers, 3rd Edition** 144 145 :Autores: Jonathan Corbet, Alessandro Rubini e Greg Kroah-Hartman 146 :Editora: O'Reilly & Associates 147 :Data: 2005 148 :Páginas: 636 149 :ISBN: 0-596-00590-3 150 :Notas: Livro fundamental. Mais informações em 151 http://www.oreilly.com/catalog/linuxdrive3/ 152 Formato PDF, URL: https://lwn.net/Kernel/LDD3/ 153 154 * Título: **The Design of the UNIX Operating System** 155 156 :Autor: Maurice J. Bach 157 :Editora: Prentice Hall 158 :Data: 1986 159 :Páginas: 471 160 :ISBN: 0-13-201757-1 161 :Notas: Livro fundamental 162 163Diversos 164-------- 165 166 * Nome: **Cross-Referencing Linux** 167 168 :URL: https://elixir.bootlin.com/ 169 :Palavras-chave: Navegação em código-fonte. 170 :Descrição: Outro navegador web para o código-fonte do kernel Linux. 171 Possui muitas referências cruzadas para variáveis e funções. Você pode 172 ver onde elas são definidas e onde são utilizadas. 173 174 * Nome: **Linux Weekly News** 175 176 :URL: https://lwn.net 177 :Palavras-chave: últimas notícias do kernel. 178 :Descrição: O título diz tudo. Há uma seção fixa sobre o kernel que 179 resume o trabalho dos desenvolvedores, correções de bugs, novos recursos 180 e versões produzidas durante a semana. 181 182 * Nome: **The home page of Linux-MM** 183 184 :Autor: A equipe Linux-MM. 185 :URL: https://linux-mm.org/ 186 :Palavras-chave: gerenciamento de memória, Linux-MM, mm patches, TODO, 187 docs, mailing list. 188 :Descrição: Site dedicado ao desenvolvimento do Gerenciamento de Memória 189 do Linux. Patches relacionados à memória, HOWTOs, links, desenvolvedores 190 mm... Não perca se você estiver interessado no desenvolvimento do 191 gerenciamento de memória! 192 193 * Nome: **Kernel Newbies IRC Channel and Website** 194 195 :URL: https://www.kernelnewbies.org 196 :Palavras-chave: IRC, novatos, canal, tirar dúvidas. 197 :Descrição: #kernelnewbies em irc.oftc.net. 198 O canal #kernelnewbies é uma rede de IRC dedicada ao hacker de kernel 199 "novato" (newbie). O público consiste principalmente de pessoas que estão 200 aprendendo sobre o kernel, trabalhando em projetos do kernel ou hackers 201 profissionais que desejam ajudar pessoas menos experientes. 202 O #kernelnewbies está na rede de IRC OFTC. 203 Tente acessar irc.oftc.net como seu servidor e então digite /join #kernelnewbies. 204 O site kernelnewbies também hospeda artigos, documentos, FAQs... 205 206 * Nome: **linux-kernel mailing list archives and search engines** 207 208 :URL: https://subspace.kernel.org 209 :URL: https://lore.kernel.org 210 :Palavras-chave: linux-kernel, arquivos, busca. 211 :Descrição: Alguns dos arquivadores da lista de discussão linux-kernel. 212 Se você conhece algum outro (ou um melhor), por favor, me avise. 213 214 * Nome: **The Linux Foundation YouTube channel** 215 216 :URL: https://www.youtube.com/user/thelinuxfoundation 217 :Palavras-chave: linux, vídeos, linux-foundation, youtube. 218 :Descrição: A Linux Foundation faz o upload de gravações de vídeo de seus 219 eventos colaborativos, conferências de Linux (incluindo a LinuxCon) e 220 outras pesquisas originais e conteúdos relacionados ao Linux e ao 221 desenvolvimento de software. 222 223Rust 224---- 225 226 * Título: **Rust for Linux** 227 228 :Autor: diversos 229 :URL: https://rust-for-linux.com/ 230 :Data: versão contínua (rolling) 231 :Palavras-chave: glossário, termos, linux-kernel, rust. 232 :Descrição Do site: "Rust for Linux é o projeto que adiciona suporte à 233 linguagem Rust ao kernel Linux. Este site pretende ser um hub de links, 234 documentação e recursos relacionados ao projeto". 235 236 * Título: **Learn Rust the Dangerous Way** 237 238 :Autor: Cliff L. Biffle 239 :URL: https://cliffle.com/p/dangerust/ 240 :Data: Acessado em 11 de setembro de 2024 241 :Palavras-chave: rust, blog. 242 :Descrição: Do site: "LRtDW é uma série de artigos que coloca os recursos 243 do Rust em contexto para programadores C de baixo nível que talvez não 244 tenham uma formação formal em Ciência da Computação, o tipo de pessoa 245 que trabalha com firmware, engines de jogos, kernels de SO e afins. 246 Basicamente, pessoas como eu.". O site ilustra conversões de linha por 247 linha de C para Rust. 248 249 * Título: **The Rust Book** 250 251 :Autor: Steve Klabnik e Carol Nichols, com contribuições da comunidade Rust 252 :URL: https://doc.rust-lang.org/book/ 253 :Data: Acessado em 11 de setembro de 2024 254 :Palavras-chave: rust, livro. 255 :Descrição: Do site: "Este livro abraça totalmente o potencial do Rust para 256 capacitar seus usuários. É um texto amigável e acessível destinado a 257 ajudá-lo a elevar não apenas seu conhecimento de Rust, mas também seu 258 alcance e confiança como programador em geral. Então mergulhe de cabeça, 259 prepare-se para aprender e bem-vindo à comunidade Rust!". 260 261 * Título: **Rust for the Polyglot Programmer** 262 263 :Autor: Ian Jackson 264 :URL: https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/index.html 265 :Data: Dezembro de 2022 266 :Palavras-chave: rust, blog, tooling. 267 :Descrição: Do site: "Existem muitos guias e introduções ao Rust. Este é 268 algo diferente: destina-se ao programador experiente que já conhece 269 muitas outras linguagens de programação. Tento ser abrangente o suficiente 270 para servir de ponto de partida para qualquer área do Rust, mas evito 271 entrar em detalhes excessivos, exceto onde as coisas não são como você 272 poderia esperar. Além disso, este guia não é inteiramente isento de 273 opiniões, incluindo recomendações de bibliotecas (crates), ferramentas, etc.". 274 275 * Título: **Fasterthanli.me** 276 277 :Autor: Amos Wenger 278 :URL: https://fasterthanli.me/ 279 :Data: Acessado em 11 de setembro de 2024 280 :Palavras-chave: rust, blog, notícias. 281 :Descrição: Do site: "Eu crio artigos e vídeos sobre como os computadores 282 funcionam. Meu conteúdo é de formato longo, didático e exploratório 283 e frequentemente uma desculpa para ensinar Rust!". 284 285 * Título: **Comprehensive Rust** 286 287 :Autor: Equipe Android do Google 288 :URL: https://google.github.io/comprehensive-rust/ 289 :Data: Acessado em 13 de setembro de 2024 290 :Palavras-chave: rust, blog. 291 :Descrição: Do site: "O curso cobre todo o espectro do Rust, desde a 292 sintaxe básica até tópicos avançados como genéricos e tratamento de erros". 293 294 * Título: **The Embedded Rust Book** 295 296 :Autor: Múltiplos colaboradores, principalmente Jorge Aparicio 297 :URL: https://docs.rust-embedded.org/book/ 298 :Data: Acessado em 13 de setembro de 2024 299 :Palavras-chave: rust, blog. 300 :Descrição: Do site: "Um livro introdutório sobre o uso da linguagem de 301 programação Rust em sistemas embarcados 'Bare Metal', como microcontroladores". 302 303 * Título: **Experiment: Improving the Rust Book** 304 305 :Autor: Cognitive Engineering Lab na Brown University 306 :URL: https://rust-book.cs.brown.edu/ 307 :Data: Acessado em 22 de setembro de 2024 308 :Palavras-chave: rust, blog. 309 :Descrição: Do site: "O objetivo deste experimento é avaliar e melhorar o 310 conteúdo do Rust Book para ajudar as pessoas a aprenderem Rust de forma 311 mais eficaz". 312 313 * Título: **New Rustacean** (podcast) 314 315 :Autor: Chris Krycho 316 :URL: https://newrustacean.com/ 317 :Data: Acessado em 22 de setembro de 2024 318 :Palavras-chave: rust, podcast. 319 :Descrição: Do site: "Este é um podcast sobre aprender a linguagem de 320 programação Rust do zero! Além desta página inicial elegante, todo o 321 conteúdo do site é construído com as próprias ferramentas de documentação 322 do Rust". 323 324 * Título: **Opsem-team** (repositório) 325 326 :Autor: Equipe de semântica operacional (Operational semantics team) 327 :URL: https://github.com/rust-lang/opsem-team/tree/main 328 :Data: Acessado em 22 de setembro de 2024 329 :Palavras-chave: rust, repositório. 330 :Descrição: Do README: "A equipe opsem é a sucessora do grupo de trabalho 331 unsafe-code-guidelines e é responsável por responder a muitas das perguntas 332 difíceis sobre a semântica do Rust inseguro (unsafe Rust)". 333 334 * Título: **You Can't Spell Trust Without Rust** 335 336 :Autor: Alexis Beingessner 337 :URL: https://repository.library.carleton.ca/downloads/1j92g820w?locale=en 338 :Data: 2015 339 :Palavras-chave: rust, mestrado, tese. 340 :Descrição: Esta tese foca no sistema de propriedade (ownership) do Rust, 341 que garante a segurança de memória ao controlar a manipulação de dados e 342 o tempo de vida, enquanto também destaca suas limitações e o compara a 343 sistemas semelhantes no Cyclone e C++. 344 345 * Nome: **Apresentações de Rust no Linux Plumbers (LPC) 2024** 346 347 :Título: Rust microconference 348 :URL: https://lpc.events/event/18/sessions/186/#20240918 349 :Título: Rust for Linux 350 :URL: https://lpc.events/event/18/contributions/1912/ 351 :Título: Journey of a C kernel engineer starting a Rust driver project 352 :URL: https://lpc.events/event/18/contributions/1911/ 353 :Título: Crafting a Linux kernel scheduler that runs in user-space using Rust 354 :URL: https://lpc.events/event/18/contributions/1723/ 355 :Título: openHCL: A Linux and Rust based paravisor 356 :URL: https://lpc.events/event/18/contributions/1956/ 357 :Palavras-chave: rust, lpc, apresentações. 358 :Descrição: Uma série de palestras do LPC relacionadas ao Rust. 359 360 * Nome: **The Rustacean Station Podcast** 361 362 :URL: https://rustacean-station.org/ 363 :Palavras-chave: rust, podcasts. 364 :Descrição: Um projeto comunitário para a criação de conteúdo em podcast 365 sobre a linguagem de programação Rust. 366 367------- 368 369Este documento foi originalmente baseado em: 370 371https://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html 372 373e escrito por Juan-Mariano de Goyeneche. 374