Privacy Policy Cookie Policy Terms and Conditions Núcleo do Linux - Wikipédia

Núcleo do Linux

Origem: Wikipédia, a enciclopédia livre.

Este diagrama, criado com o Free Code Graphing Project, é o que mais próximo existe de uma fotografia do núcleo do Linux, na sua versão 2.4.0
Ampliar
Este diagrama, criado com o Free Code Graphing Project, é o que mais próximo existe de uma fotografia do núcleo do Linux, na sua versão 2.4.0

Em ciências da computação, o núcleo do Linux é um sistema operativo livre idêntico ao Unix e criado por Linus Torvalds em 1991 e subsequentemente melhorado com a ajuda de desenvolvedores de todo o mundo.

Foi inicialmente desenvolvido para o processador Intel 80386 tem sido desde então adaptado a muitas mais plataformas. É quase na totalidade escrito em C com algumas extensões GNU C, juntamente com alguns excertos em assembly.

Desenvolvido sob a GPL, o código-fonte do núcleo de Linux é software livre.

O núcleo é mais conhecido como a base dos sistemas operativos Linux. Distribuições de software baseadas neste núcleo são também denominadas de distribuições de linux

Índice

[editar] História

O projecto foi lançado em 1991 com a famosa mensagem enviada ao grupo de discussão da Usenet comp.os.minix que incluia a seguinte frase:

"Estou a fazer um sistema operativo (grátis) (é só um passatempo, não será grande e profissional como o Projecto GNU) para clones de 386(486)AT..."

Naquela altura, o Projecto GNU havia criado muitos dos componentes necessários a um sistema operativo livre/grátis, mas o seu núcleo, o GNU Hurd, ainda não tinha sido completado e estava assim indisponível. O sistema operativo BSD ainda não se tinha liberto de complicações legais. Isso havia libertado um espaço para o núcleo do Linux preencher, e, apesar da funcionalidade limitada das versões iniciais, acumulou rapidamente desenvolvedores e utilizadores. No inicio, os hackers do Minix contribuiram código e ideias para o núcleo do linux e até aos dias de hoje tem recebido contribuições de milhares de programadores.

No inicio, "Linux" era somente o nome do núcleo. O termo "núcleo" refere-se ao software de sistema de baixo nivel que oferece uma camada de abstracção de hardware, controlo do disco e do sistema de ficheiros, multitarefa, "load-balancing", ligação em rede e segurança. Um núcleo não é um sistema operativo completo (tal como é habitualmente compreendido). Um sistema completo construido à volta do núcleo de linux é usualmente conhecido como o sistema operativo Linux, apesar de haver quem defenda que o seu nome é GNU/Linux, ponto tema que possui alguma controvérsia. A confusão entre o sistema operativo e o núcleo leva a que surjam algumas noções erradas, como a que Torvalds criou ou coordena outras partes do sistema além do núcleo.

[editar] Versões

Torvalds tem continuado a lançar novas versões do núcleo, consolidando contribuições de outros programadores e introduzindo alterações suas. Todas os lançamentos do Linux com um número de versão menor (a segunda componente) par fazem parte da série estável: 1.0.x, 1.2.x, 2.2.x, 2.4.x e a actual 2.6.x; os lançamentos com um número de versão menor impar são versões de desenvolvimento. Enquanto que Torvalds continua a lançar as versões de desenvolvimento mais recentes, a manutenção das versões "estáveis" mais antigas é delegada a outros, incluindo David Weinehal (2.0), Alan Cox e mais tarde Marc-Christian Petersen (2.2), Marcelo Tosatti (2.4) e Andrew Morton (2.6). Para além dos núcleos "oficiais", "árvores do núcleo" alternativas podem ser obtidas de outras fontes. Distribuidores de sistemas operativos completos mantém as suas próprias versões do núcleo, onde, por exemplo, incluem drivers que não se encontram incluidos na versão oficial.

[editar] Versões estáveis

  • Versão 1.0 de Março de 1994 suportava apenas máquinas mono-processador i386. (176.250 linhas de código)
  • Versão 1.2 de Março de 1995 incluido suporte para Alpha, Sparc e Mips. (310.950 linhas de código)
  • Versão 2.0 de Junho de 1996 incluido suporte para mais processadores e foi incluido suporte para SMP (777.956 linhas de código)
  • Versão 2.2 de Janeiro de 1999 (1.800.847 linhas de código)
  • Versão 2.4 de Janeiro de 2001 (3.377.902 linhas de código)
  • Versão 2.6 de 17 de Dezembro de 2003 (5.929.913 linhas de código)

[editar] Arquitetura

O núcleo de Linux inclui capacidade real de multi-tarefas, memória virtual, bibliotecas partilhadas, "demand loading", executáveis "copy-on-write" partilhados, gestão de memória e TCP/IP. O núcleo de Linux de hoje é um núcleo monolítico carregador de módulos. Os "drivers" de dispositivos e extensões do núcleo correm tipicamente no anel 0, com acesso total ao hardware, apesar de alguns correrem em espaço de utilizador. Ao contrário dos núcleos monolíticos padrão, os "drivers" de dispositivos são facilmente configurados como módulos, e são carregados/descarregados enquanto o sistema corre. Também ao contrário dos núcleos monolíticos padrão, os "drivers" de dispositivos podem ser "pre-empted" sob certas condições. Esta característica foi adicionada para lidar com "interrupts" de hardware correctamente e para melhorar o suporte de multiprocessamento simétrico. O facto do núcleo do Linux não ser um micronúcleo foi o tema duma famosa discussão acesa entre Linus Torvalds e Andy Tanenbaum no grupo de discussão de Usenet comp.os.minix em 1992.

[editar] Portabilidade

[editar] Termos de licenciamento

Inicialmente, Torvalds lançou o núcleo de Linux sob uma licença que proibia qualquer exploração comercial mas mais tarde adoptou a GPL (versão 2 exclusivamente). Esta licença permite a distribuição e até a venda de versões do núcleo de Linux mas exige que todas essas cópias sejam lançadas sob a mesma licença e que sejam acompanhadas com o código-fonte. Torvalds descreveu o licenciamento do núcleo de Linux sob a GPL como "a melhor coisa que fez desde sempre." Uma dúvida que é levantada na aplicação da GPL no núcleo de Linux é a consideração sob a lei de direitos de autor de módulos carregaveis como sendo ou não "trabalho derivado" e, consequentemente, serem submetidos aos termos da GPL. Torvalds declarou que módulos que usam apenas um conjunto público e limitado do interface do núcleo podem, por vezes, trabalho não-derivado, assim permitindo alguns "drivers" distribuidos apenas em formato binário e outros módulos que não respeitem os termos da GPL. Contudo, nem todos os contribuintes do núcleo concordam com esta interpretação e até Torvalds concorda que muitos módulos do núcleo são claramente obras derivadas, tendo até decalrado que "os módulos do núcleo

[editar] Mascote

A mascote do Linux (núcleo e tudo que é relacionado) é um pinguim chamado Tux, criado por Larry Ewing. O motivo pelo qual a mascote é um pinguim é, como Torvalds disse, "O Linus gosta de pinguins. É isso." O nome Tux foi sugerido para representar Torvalds' Unix, e ficou assim.

[editar] Pânico do núcleo (Kernel Panic)

Em Linux, um pânico é um erro de sistema não-recuperável detectado pelo núcleo, ao contrário dos erros de impressão e utilização por código do espaço de utilizador. É possível que o código do núcleo indique essa condição ao invocar a função panic localizada no ficheiro-cabeçalho sys/system.h. No entanto, grande parte dos pânicos são o resultado de excepções do processador não-lidadas no código do núcleo, tal como referências a moradas de memória inválidas. São normalmente não indicativo de erros algures na cadeia de chamadas que levam ao pânico.

[editar] Referência

  • Torvalds, Linus; Diamond, David (2001). Just For Fun: The Story of an Accidental Revolutionary. HarperBusiness. ISBN 0066620724 (hardcover); HarperAudio ISBN 0694525391 (audio tape, abridged ed., read by David Diamond) - on the beginnings of the Linux kernel; No Brasil: Só por Prazer. Campus. ISBN 85-352-0801-1.
  • Revolution OS - a documentary on the history of Linux featuring several interviews with prominent hackers, including Torvalds
  • LinkSys and binary modules, LWN.net Weekly Edition, October 16, 2003.

[editar] Ligações externas

Wikibooks
O Wikilivros possui livros e publicações sobre: Núcleo do Linux
Commons
O Wikimedia Commons possui multimedia sobre Núcleo do Linux

[editar] Linux 2.6

[editar] Páginas com atalhos para recursos do núcleo

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu