From Wikipedia, the free encyclopedia
Linux é un núcleo libre de sistema operativo baseado en Unix.[2] É un dos principais exemplos de software libre e de código aberto.[3] Linux está licenciado baixo a GPL v2 e está desenvolvido por colaboradores de todo o mundo. O desenvolvemento do día a día ten lugar na Linux Kernel Mailing List Arquive
Atención: Este artigo ou apartado precisa dun traballo de revisión.
Cando os problemas se resolvan, retire esta mensaxe, pero non quite esta mensaxe ata que estea todo solucionado. De ser posible, sería mellor substituír este marcador por outro máis específico. (Desde marzo de 2020) |
Este artigo ou sección precisa revisión por alguén que saiba deste tema. Se ten eses coñecementos mellore este artigo. Vexa na páxina de discusión que aspectos son os que precisan revisión. (Desde marzo de 2020.) |
Linux Kernel | |
---|---|
Desenvolvedor | Linus Torvalds, e a comunidade de colaboradores ao redor do mundo. |
Modelo de desenvolvemento | Desenvolvemento iterativo, mediante código aberto e colaboración da comunidade.[1] |
Núcleo | Monolítico |
Tipo de núcleo | Unix-like |
Licenza | GPL v2 |
Última versión estable | 3.9.3 19 de maio de 2013 |
Estado actual | Activo |
Sitio web | Linux Kernel Arquives |
O núcleo Linux foi concibido polo entón estudante de ciencias da computación finlandés, Linus Torvalds, en 1991.[4] Linux conseguiu rapidamente desenvolvedores e usuarios que adoptaron códigos doutros proxectos de software libre para usalo co novo sistema operativo.[5] O núcleo Linux recibiu contribucións de miles de programadores de todo o mundo.[6] Normalmente Linux utilízase xunto a un empaquetado de software, chamado distribución Linux e servidores.
En abril de 1991,[7] Linus Torvalds, de 21 anos, empezou a traballar nunhas simples ideas para un núcleo dun sistema operativo. Comezou cun intento por obter un núcleo de sistema operativo gratuíto similar a Unix que funcionase con microprocesadores Intel 80386. Logo, o 25 de agosto de 1991, Torvalds escribiu no grupo de noticias comp.vos.minix:[8]
"Estou a facer un sistema operativo (gratuíto, só un hobby, non será nada grande nin profesional como GNU) para clons AT 386(486). Levo niso desde abril e está a empezar a estar listo. Gustaríame saber a súa opinión sobre as cousas que lles gustan ou desgustan en minix, xa que a miña SO ten algún parecido con el.[...] Actualmente portei bash(1.08) e gcc(1.40), e parece que as cousas funcionan. Isto implica que terei algo práctico dentro duns meses..."
Despois disto, moitas persoas axudaron co código. En setembro de 1991 lanzouse a versión 0.01 de Linux. Tiña 10.239 liñas de código. En outubro dese ano(1991), lanzouse a versión 0.02 de Linux; logo, en decembro lanzouse a versión 0.11(1991). Esta versión foi a primeira en ser self-hosted (autoalbergada). É dicir, Linux 0.11 podía ser compilado por unha computadora que executase Linux 0.11, mentres que as versións anteriores de Linux se compilaban usando outros sistemas operativos. Cando lanzou a seguinte versión, Torvalds adoptou a GPL como o seu propio bosquexo de licenza, a cal non permitía a súa redistribución con outra licenza que non sexa GPL.
Iniciouse un grupo de noticias chamado alt.vos.linux e o 19 de xaneiro de 1992 publicouse nese grupo o primeiro post. O 31 de marzo, alt.vos.linux converteuse en comp.vos.linux. XFree86, unha implementación do X Window System, foi portada a Linux, a versión do núcleo 0.95 foi a primeira en ser capaz de executala. Este gran salto de versións (de 0.1x a 0.9x) foi pola sensación de que unha versión 1.0 acabada non parecía estar lonxe. Con todo, estas previsións resultaron ser un pouco optimistas: desde 1993 a principios de 1994, desenvolvéronse 15 versións diferentes de 0.99 (chegando á versión 0.99r15).
O 14 de marzo de 1994, lanzouse Linux 1.0.0, que constaba de 176.250 liñas de código. En marzo de 1995 lanzouse Linux 1.2.0, que xa estaba composto de 310.950 liñas de código.
O seu código fonte está dispoñible para descarga no sitio web oficial: http://www.kernel.org
Actualmente Linux é un núcleo monolítico híbrido. Os controladores de dispositivos e as extensións do núcleo normalmente execútanse nun espazo privilexiado coñecido como anel 0 (ring 0), con acceso irrestricto ao hardware, aínda que algúns se executan en espazo de usuario. A diferenza dos núcleos monolíticos tradicionais, os controladores de dispositivos e as extensións ao núcleo pódense cargar e descargar facilmente como módulos, mentres o sistema continúa funcionando sen interrupcións. Tamén, a diferenza dos núcleos monolíticos tradicionais, os controladores poden ser prevolcados (detidos momentaneamente por actividades máis importantes) baixo certas condicións. Esta habilidade foi agregada para xestionar correctamente interrupcións de hardware, e para mellorar o soporte de multiprocesamiento simétrico.
O feito de que Linux non fose desenvolvido seguindo o deseño dun micronúcleo (deseño que, naquela época, era considerado o máis apropiado para un núcleo por moitos teóricos informáticos) foi asunto dunha famosa e acalorada discusión entre Linus Torvalds e Andrew S. Tanenbaum.[13][14]
En Linux existe un sistema de arquivos que carga e contén todos os directorios, redes, programas, particiones, dispositivos etc. que o sistema sabe recoñecer, ou polo menos, identificar. Este sistema de ficheiros e directorios, ten como base ao carácter (/); ese mesmo carácter serve tamén para demarcar os directorios, por exemplo: "/home/usuario/imaxe.jpg". O directorio especificado por unha ruta consistente só por este carácter contén toda a xerarquía dos directorios que constitúen todo o sistema. A este directorio adoita chamarllo directorio raíz. En Linux, aos discos non se lles asigna unha letra como en Windows (p.e. "C:"), senón que se lles asigna un directorio da xerarquía do directorio raíz (/), por exemplo: "/media/floppy". É práctica común no sistema de ficheiros de Linux, utilizar varias sub-xerarquías de directorios, segundo as diferentes funcións e estilos de utilización dos arquivos.[15] Estes directorios poden clasificarse en:
En Linux, un panic é un erro case sempre insalvable do sistema detectado polo núcleo en oposición aos erros similares detectados no código do espazo de usuario. É posible para o código do núcleo indicar estas condicións mediante unha chamada á función de pánico situada no arquivo header sys/system.h. Con todo, a maioría das alertas son o resultado de excepcións no código do núcleo que o procesador non pode manexar, como referencias a direccións de memorias inválidas. Xeralmente isto é indicador da existencia dun bug nalgún lugar da cadea de alerta. Tamén poden indicar un fallo no hardware como un fallo da RAM ou erros nas funcións aritméticas no procesador, ou por un erro no software. En moitas ocasións é posible reiniciar ou apagar adecuadamente o núcleo mediante unha combinación de teclas como ALT+SysRq+REISUB.
Linux está escrito na linguaxe de programación C, na variante utilizada polo compilador GCC (que introduciu un número de extensións e cambios ao C estándar), xunto a unhas pequenas seccións de código escritas co linguaxe ensamblador. Polo uso das súas extensións á linguaxe, GCC foi durante moito tempo o único compilador capaz de construír correctamente Linux. Con todo, Intel afirmou modificar o seu compilador C de forma que permitise compilarlo correctamente.
Así mesmo úsanse moitos outras linguaxes nalgunha forma, basicamente na conexión co proceso de construción do núcleo (o método a través do cal as imaxes arrancables son creadas desde o código fonte). Estes inclúen a Perl, Python e varias linguaxes shell scripting. Algúns drivers tamén poden ser escritos en C++, Fortran, ou outras linguaxes, pero isto non é aconsellable. O sistema de construción de Linux oficialmente só soporta GCC como núcleo e compilador de controlador.
Aínda cando Linus Torvalds non ideou orixinalmente Linux como un núcleo portable, evolucionou nesa dirección. Linux é agora de feito, un dos núcleos máis amplamente portados, e funciona en sistemas moi diversos que van desde iPAQ (unha handheld) até un zSeries (un mainframe masivo). Está planeado que Linux sexa o sistema operativo principal das novas supercomputadoras de IBM, Blue Gene cando o seu desenvolvemento complétese.
De todos os xeitos, é importante notar que os esforzos de Torvalds tamén estaban dirixidos a un tipo diferente de portabilidade. Segundo o seu punto de vista, a portabilidad é a habilidade de compilar facilmente nun sistema aplicacións das orixes máis diversas; así, a popularidade orixinal de Linux debeuse en parte ao pouco esforzo necesario para ter funcionando as aplicacións favoritas de todos, xa sexan GPL ou de Código aberto.
As arquitecturas principais soportadas por Linux son DEC Alpha, ARM, AVR32, Blackfin, ETRAX CRIS, FR-V, H8, IA64, M32R, m68k, MicroBlaze, MIPS, MN10300, PA-RISC, PowerPC, System/390, SuperH, SPARC, x86, x86 64 e Xtensa[16]
O núcleo Linux pode correr sobre moitas arquitecturas de máquina virtual, tanto como host do sistema operativo ou como cliente. A máquina virtual usualmente emula a familia de procesadores Intel x86, aínda que nalgúns casos tamén son emulados procesadores de PowerPC ou ARM.
Linux 1.0 admitía só o formato binario a.out. A seguinte serie estable (Linux 1.2) agregou a utilización do formato ELF, o cal simplifica a creación de bibliotecas compartidas (usadas de forma extensa polos actuais ambientes de escritorio como GNOME e KDE). ELF é o formato usado de forma predeterminada polo GCC desde ao redor da versión 2.6.0. O formato a.out actualmente non é usado, convertendo a ELF no formato binario utilizado por Linux na actualidade.
Linux ten a capacidade de permitir ao usuario engadir o manexo doutros formatos binarios. Tamén binfmt_misc permite correr o programa asociado a un arquivo de datos.
Máis aló de desenvolver o seu propio código e de integrar os cambios realizados por outros programas, Linus Torvalds continua lanzando novas versións do núcleo Linux. Estes son chamados núcleos ?vanilla?, o que significa que non foron modificados por ninguén.
A versión do núcleo Linux orixinal constaba de catro números. Por exemplo, asumamos que o número da versión está composta desta forma: A.B.C[.D] (ex.: 2.2.1, 2.4.13 ó 2.6.12.3).
Tamén, algunhas veces logo das versións pode haber algunhas letras como ?rc1? ou ?mm2?. O ?rc? refírese a release candidate e indica un lanzamento non oficial. Outras letras usualmente (pero non sempre) fan referencia ás iniciais da persoa. Isto indica unha bifurcación no desenvolvemento do núcleo realizado por esa persoa, por exemplo ck refírese a Con Kolivas, ac a Alan Cox, mentres que mm refírese a Andrew Morton.
O modelo de desenvolvemento para Linux 2.6 foi un cambio significativo desde o modelo de desenvolvemento de Linux 2.5. Previamente existía unha rama estable (2.4) onde se produciron cambios menores e seguros, e unha rama inestable (2.5) onde estaban permitidos cambios maiores. Isto significou que os usuarios sempre tiñan unha versión 2.4 a proba de fallos e co último en seguridade e case libre de erros, aínda que tivesen que esperar polas características da rama 2.5. A rama 2.5 foi eventualmente declarada estable e renombrada como 2.6. Pero no canto de abrir unha rama 2.7 inestable, os desenvolvedores de núcleos elixiron continuar agregando os cambios na rama ?estable? 2.6. Desta forma non había que seguir mantendo unha rama vella pero estable e podíase facer que as novas características estivesen rapidamente dispoñibles e puidésense realizar máis probas co último código.
Con todo, o modelo de desenvolvemento do novo 2.6 tamén significou que non había unha rama estable para aqueles que esperaban seguridade e bug fixes sen necesitar as últimas características. Os arranxos só estaban na última versión, así que se un usuario quería unha versión con todos os bug fixed coñecidos tamén tería as últimas características, as cales non foran ben probadas. Unha solución parcial para isto foi a versión xa mencionada de catro números (e en 2.6.x.e), a cal significaba lanzamentos puntuais creados polo equipo estable (Greg Kroah-Hartman, Chris Wright, e quizais outros). O equipo estable só lanzaba actualizacións para o núcleo máis recente, con todo isto non solucionou o problema do faltante dunha serie estable de núcleo. Distribuidores de Linux, como Red Hat e Debian, manteñen os núcleos que saen cos seus lanzamentos, de forma que unha solución para algunhas persoas é seguir o núcleo dunha distribución.
Como resposta á falta dun núcleo estable e de xente que coordinase a colección de corrección de erros, en decembro de 2005 Adrian Bunk anunciou que continuaría lanzando núcleos 2.6.16 aínda cando o equipo estable lanzase 2.6.17. Ademais pensou en incluír actualizacións de controladores, facendo que o mantemento da serie 2.6.16 sexa moi parecido ás vellas regras de mantemento para a serie estables como 2.4. O núcleo 2.6.16 será substituído proximamente polo 2.6.27 como núcleo estable en mantemento durante varios anos.
Dado o novo modelo de desenvolvemento, que mantén fixa a subversión de 2.6, tras durante o Linux Kernel Summit dese ano, Linus Torvalds decidiu modificar o sistema de numeración, substituíndo os dous primeiros números por unha única cifra, de forma que Linux 2.6.39 foi seguida por Linux 3.0 [17]
Versión | Data[18] | Nota | Ficheiros[19] | LoC[20] | MiB | MiB (bz2) |
---|---|---|---|---|---|---|
0.01 | 17 de setembro de 1991 | Initial Public Release | 88 | 8.413 | 0,267 | 0,06 |
0.02 | 5 de outubro de 1991 | - | - | |||
0.11 | 8 de decembro de 1991 | 100 | 11.907 | 0,363 | 0,076 | |
0.95 | 7 de marzo de 1992 | 122 | 19.200 | 0,533 | 0,111 | |
1.0.0 | 13 de marzo de 1994 | Primeira versión estable | 561 | 170.581 | 4,633 | 0,969 |
1.1.0 | 6 de abril de 1994 | Versión de desenvolvemento | 561 | 170.320 | ||
1.2.0 | 6 de marzo de 1995 | 909 | 294.623 | |||
1.3.0 | 12 de xuño de 1995 | Versión de desenvolvemento | 992 | 323.581 | ||
2.0.0 | 9 de xuño de 1996 | 2.015 | 716.119 | 21,7 | 4,499 | |
2.1.0 | 30 de setembro de 1996 | Versión de desenvolvemento | 1.727 | 735.736 | ||
2.2.0 | 26 de xaneiro de 1999 | 4.599 | 1.676.182 | |||
2.3.0 | 11 de maio de 1999 | Versión de desenvolvemento | 4.721 | 1.763.358 | ||
2.4.0 | 4 de xaneiro de 2001 | 8.187 | 3.158.560 | 96,8 | 18,79 | |
2.5.0 | 23 de novembro de 2001 | Versión de desenvolvemento | 9.893 | 3.833.603 | ||
2.6.0 | 18 de decembro de 2003 | 15.007 | 5.475.685 | 170,7 | 31,7 | |
2.6.25 | 16 de abril de 2008 | 23.810 | 8.396.250 | 258,8 | 46,4 | |
2.6.30 | 10 de xuño de 2009 | 27.878 | 10.419.567 | 322,3 | 56,7 | |
2.6.35 | 1 de agosto de 2010 | 33.315 | 12.250.679 | 376,2 | 66,1 | |
3.0 | 22 de xullo de 2011 | 36.782 | 13.688.408 | 410,8 | 73,2 | |
Unha distribución Linux é un conxunto de software acompañado do núcleo Linux que se enfoca a satisfacer as necesidades dun grupo específico de usuarios. Deste xeito hai distribucións para fogares, empresas e servidores.
As distribucións son ensambladas por individuos, empresas ou outros organismos. Cada distribución pode incluír calquera número de software adicional, incluíndo software que facilite a instalación do sistema. A base do software incluído con cada distribución inclúe o núcleo Linux, na maioría dos casos as ferramentas GNU, ao que adoitan engadirse tamén multitude de paquetes de software.
As ferramentas que adoitan incluírse na distribución deste sistema operativo obtéñense de diversas fontes, e en especial de proxectos de software libre, como: GNU, GNOME (creado por GNU) e KDE. Tamén se inclúen utilidades doutros proxectos como Mozilla, Perl, Ruby, Python, PostgreSQL, MySQL, Xorg, case todas con licenza GPL ou compatibles con esta (LGPL, MPL).
Usualmente utilízase a plataforma X.Org Server, baseada na antiga XFree86, para soster a interface gráfica.
Inicialmente, Torvalds distribuíu Linux baixo os termos dunha licenza que prohibía a explotación comercial. Pero esta licenza foi substituída, pouco tempo despois, pola GNU GPL (versión 2 exclusivamente). Os termos desta última licenza permiten a distribución e venda de copias ou mesmo modificacións, pero require que todas as copias do traballo orixinal e traballos de autoría derivados do orixinal sexan publicados baixo os mesmos termos, e que o código fonte sempre poida obterse polo mesmo medio que o programa licenciado.
Torvalds referiuse a licenciar Linux baixo a GPL como "a mellor cousa que fixen" (en inglés, "the best thing I ever did").[21]
Con todo, a versión oficial do núcleo Linux contén firmware de código pechado[Cómpre referencia], por iso, o Proxecto Linux-libre, auspiciado pola FSFLA, publica e mantén versións modificadas do núcleo Linux ás que se lles quitou todo o software non libre.
A día de hoxe, Linux é unha marca rexistrada de Linus Torvalds nos Estados Unidos.[22]
Até 1994 ninguén rexistrou a marca Linux nos Estados Unidos. O 15 de agosto de 1994 cando William R. Della Croce, Jr. rexistrou a marca Linux, pediu o pago de regalías aos distribuidores de Linux. En 1996, Torvalds e algunhas organizacións afectadas denunciaron a Della Croce e en 1997 o caso pechouse e a marca foi asignada a Torvalds.[23]
Desde entón, o Linux Mark Institute xestiona a marca. En 2005 o LMI enviou algunhas cartas a empresas distribuidoras de Linux esixindo o pago dunha cota polo uso comercial do nome. Isto é así porque a lexislación estadounidense esixe que o dono dunha marca deféndaa, polo que se tivo que pedir diñeiro por usar a marca Linux, algunhas compañías de forma totalmente voluntaria cumpriron coa devandita esixencia, a propósito de que devandito diñeiro se ía a usar para caridade ou defender a marca Linux.[24]
O núcleo Linux foi criticado con frecuencia por falta de controladores para certo hardware de computadoras de escritorio. Con todo, o progresivo incremento na adopción de Linux no escritorio mellorou o soporte de hardware por parte de terceiros ou dos propios fabricantes, provocando que, nos últimos anos, os problemas de compatibilidade redúzanse.
Empresas como IBM, Intel Corporation, Hewlett-Packard, Dell ou MIPS Technologies[25] teñen programadores no equipo de desenvolvedores do núcleo Linux que se encargan de manter os controladores para o hardware que fabrican. Este grupo de programadores tamén se lle suman os que prové grandes distribuidores de solucións Linux como Novell ou Red Hat.
Andy Tanenbaum escribiu o 29 de xaneiro de 1992:
...Linux é un sistema monolítico. Isto é retroceder un paso xigante cara á década de 1970. É como tomar un programa existente escrito en C e reescribilo en BASIC. Para min, escribir un sistema monolítico en 1991 é verdadeiramente unha idea pobre.[26]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.