Sistema Operativo Linux
Linux es un núcleo libre de sistema operativo (también
suele referirse al núcleo como kernel) basado en Unix. Es uno de los principales ejemplos de software libre y de
código abierto. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo
del día a día tiene lugar en la Linux Kernel Mailing List Archive
El núcleo Linux fue concebido por el entonces estudiante de ciencias de la
computación finlandés Linus Torvalds en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron
códigos de otros proyectos de software libre para usarlo
con el nuevo sistema operativo. El núcleo Linux ha recibido contribuciones de miles de programadores de
todo el mundo. Normalmente Linux se utiliza junto a un empaquetado de software,
llamado distribución Linux y servidores.
Historia
En abril de 1991, Linus Torvalds, de 21 años, empezó a trabajar en unas simples ideas
para un núcleo de un sistema operativo. Comenzó con un intento por obtener un
núcleo de sistema operativo gratuito similar a Unix que funcionara con microprocesadores Intel 80386. Luego, el 26 de agosto de 1991, Torvalds escribió en el grupo de noticias comp.os.minix:
"Estoy haciendo un sistema operativo
(gratuito, sólo un hobby, no será nada grande ni profesional como GNU) para
clones AT 386(486). Llevo en ello desde abril y está empezando a estar listo.
Me gustaría saber su opinión sobre las cosas que les gustan o disgustan en
minix, ya que mi SO tiene algún parecido con él.[...] Actualmente he portado
bash(1.08) y gcc(1.40), y parece que las cosas funcionan. Esto implica que
tendré algo práctico dentro de unos meses..."
Después de esto, muchas personas ayudaron con el código. En septiembre
de 1991 se lanzó la versión 0.01 de Linux. Tenía 10.239 líneas de código. En
octubre de ese año(1991), se lanzó la versión 0.02 de Linux; luego, en
diciembre se lanzó la versión 0.11(1991). Esta versión fue la primera en ser self-hosted
(autoalbergada). Es decir, Linux 0.11 podía ser compilado por una computadora
que ejecutase Linux 0.11, mientras que las versiones anteriores de Linux se
compilaban usando otros sistemas operativos. Cuando lanzó la siguiente versión,
Torvalds adoptó la GPL como su propio boceto de licencia, la cual no permitía
su redistribución con otra licencia que no sea GPL.
La ubicuidad del núcleo Linux
Se inició un grupo de noticias llamado alt.os.linux y el 19 de
enero de 1992 se publicó en ese grupo el primer post. El 31 de marzo, alt.os.linux
se convirtió en comp.os.linux. XFree86, una implementación del X Window System, fue
portada a Linux, la versión del núcleo 0.95 fue la primera en ser capaz de
ejecutarla. Este gran salto de versiones (de 0.1x a 0.9x) fue por la sensación
de que una versión 1.0 acabada no parecía estar lejos. Sin embargo, estas
previsiones resultaron ser un poco optimistas: desde 1993 a principios de 1994,
se desarrollaron 15 versiones diferentes de 0.99 (llegando a la versión
0.99r15).
El 14 de marzo de 1994, se lanzó Linux 1.0.0, que constaba de 176.250 líneas de código. En
marzo de 1995 se lanzó Linux 1.2.0, que ya estaba compuesto de 310.950 líneas
de código.
- Mayo de 1996: Torvalds decidió
adoptar al pingüino Tux como
mascota para Linux.
- 9 de junio de 1996: Se lanzó la versión 2
de Linux, con una recepción positiva.
- 25 de enero de 1999: Se lanzó Linux 2.2.0
con 1.800.847 líneas de código.
- 18 de diciembre de 1999: se publicaron parches
de IBM
Mainframe para 2.2.13, permitiendo de esta forma que Linux fuera usado en
ordenadores corporativos.
- 4 de enero de 2001: se lanzó Linux 2.4.0
con 3.377.902 líneas de código.
- 17 de diciembre de 2003: se lanzó Linux 2.6.0
con 5.929.913 líneas de código.
- 24 de diciembre de 2008: se lanzó Linux 2.6.28
con 10.195.402 líneas de código.
- 20 de octubre de 2010: se lanzó Linux 2.6.36
con 13.499.457 líneas de código.
- 30 de mayo de 2011: Linus Torvalds
anunció que la versión del núcleo dará el salto a la 3.0 en la siguiente
publicación.
- 21 de julio de 2011: Torvalds publicó en su
perfil en la red social Google+ que el núcleo versión 3.0 estaba listo con
la frase "3.0 Pushed Out".
- 22 de julio de 2011: Fue lanzada la versión
3.0 del núcleo en http://www.kernel.org
- 12 de mayo y 13 de mayo de 2012 fueron lanzadas las
versiones 3.3.6 y 3.4-rc7 del núcleo en http://www.kernel.org respectivamente.
Aspectos técnicos
Arquitecturas
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de
dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio
privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los
controladores de dispositivos y las extensiones al núcleo se pueden cargar y
descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También,
a diferencia de los núcleos monolíticos tradicionales, los controladores pueden
ser prevolcados (detenidos momentáneamente por actividades más importantes)
bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente
interrupciones de
hardware, y para mejorar el soporte de multiprocesamiento
simétrico.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo (diseño
que, en aquella época, era considerado el más apropiado para un núcleo por
muchos teóricos informáticos) fue asunto de una famosa y acalorada discusión
entre Linus Torvalds y Andrew S. Tanenbaum.
Jerarquía de directorios
En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que
el sistema sabe reconocer, o por lo menos, identificar. Este sistema de
ficheros y directorios, tiene como base al carácter (/); ese mismo
carácter sirve también para demarcar los directorios, como por ejemplo: "/home/usuario/imagen.jpg".
El directorio especificado por una ruta consistente sólo por este carácter
contiene toda la jerarquía de los directorios que constituyen todo el sistema.
A este directorio suele llamárselo directorio raíz. En Linux, a los discos no
se les asigna una letra como en Windows (p.e. "C:"), sino
que se les asigna un directorio de la jerarquía del directorio raíz (/),
como por ejemplo: "/media/floppy". Es práctica común en el sistema
de ficheros de Linux, utilizar varias sub-jerarquías de directorios,
según las diferentes funciones y estilos de utilización de los archivos. Estos directorios pueden clasificarse en:
- Estáticos: Contiene archivos que
no cambian sin la intervención del administrador (root), sin embargo, pueden
ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
- Dinámicos: Contiene archivos que
son cambiantes, y pueden leerse y escribirse (algunos solo por su
respectivo usuario y el root). Contienen configuraciones, documentos, etc.
Para estos directorios, es recomendable una copia de seguridad con frecuencia,
o mejor aún, deberían ser montados en una partición aparte en el mismo
disco, como por ejemplo, montar el directorio /home en otra partición del
mismo disco, independiente de la partición principal del sistema; de esta
forma, puede repararse el sistema sin afectar o borrar los documentos de
los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
- Compartidos: Contiene archivos que
se pueden encontrar en un ordenador y utilizarse en otro, o incluso
compartirse entre usuarios.
- Restringidos: Contiene ficheros que
no se pueden compartir, solo son modificables por el administrador. (/etc,
/boot, /var/run, /var/lock...)
Lenguajes de programación
Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar),
junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho
tiempo el único compilador capaz de construir correctamente Linux. Sin embargo,
Intel afirmó
haber modificado su compilador C de forma que permitiera compilarlo
correctamente.
Asimismo se usan muchos otros lenguajes en alguna forma, básicamente en
la conexión con el proceso de construcción del núcleo (el método a través del
cual las imágenes arrancables son creadas desde el código fuente). Estos
incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers también pueden ser
escritos en C++, Fortran, u otros lenguajes, pero esto no es aconsejable. El
sistema de construcción de Linux oficialmente solo soporta GCC como núcleo y
compilador de controlador.
Portabilidad
Aún cuando Linus Torvalds no
ideó originalmente Linux como un núcleo portable, ha evolucionado en esa
dirección. Linux es ahora de hecho, uno de los núcleos más ampliamente
portados, y funciona en sistemas muy diversos que van desde iPAQ (una handheld) hasta un zSeries (un mainframe masivo). Está
planeado que Linux sea el sistema operativo principal de las nuevas supercomputadoras de IBM, Blue Gene cuando su desarrollo se
complete.
De todos modos, es importante notar que los esfuerzos de Torvalds
también estaban dirigidos a un tipo diferente de portabilidad. Según su punto
de vista, la portabilidad es la habilidad de compilar fácilmente en un sistema
aplicaciones de los orígenes más diversos; así, la popularidad original de
Linux se debió en parte al poco esfuerzo necesario para tener funcionando las
aplicaciones favoritas de todos, ya sean GPL o de Código abierto.
Las arquitecturas principales 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 y Xtensa
Arquitectura de máquina
virtual
El núcleo Linux puede correr sobre muchas arquitecturas de máquina
virtual, tanto como host del sistema operativo o como cliente. La máquina
virtual usualmente emula la familia de procesadores Intel x86, aunque en
algunos casos también son emulados procesadores de PowerPC o ARM.
Formatos binarios soportados
Linux 1.0 admitía sólo el formato binario a.out. La siguiente
serie estable (Linux 1.2) agregó la utilización del formato ELF, el cual simplifica la creación de bibliotecas compartidas (usadas de
forma extensa por los actuales ambientes de escritorio como GNOME y KDE). ELF es el formato usado de
forma predeterminada por el GCC desde alrededor de la versión
2.6.0. El formato a.out actualmente no es usado, convirtiendo a ELF en el
formato binario utilizado por Linux en la actualidad.
Linux tiene la capacidad de permitir al usuario añadir el manejo de
otros formatos binarios. También binfmt_misc permite correr el programa
asociado a un archivo de datos.
Versiones
Más allá de haber desarrollado su propio código y de integrar los
cambios realizados por otros programas, Linus Torvalds continua lanzando nuevas
versiones del núcleo Linux. Estos son llamados núcleos “vanilla”, lo que
significa que no han sido modificados por nadie.
Numeración
La versión del núcleo Linux original constaba de cuatro números. Por
ejemplo, asumamos que el número de la versión está compuesta de esta forma: A.B.C[.D]
(ej.: 2.2.1, 2.4.13 ó 2.6.12.3).
- El número A denota la versión del núcleo. Es el que cambia
con menor frecuencia y solo lo hace cuando se produce un gran cambio en el
código o en el concepto del núcleo. Históricamente sólo ha sido modificado
tres veces: en 1994 (versión 1.0), en 1996 (versión 2.0) y en 2011
(versión 3.0).
- El número B denota la subversión del núcleo.
Antes de la
serie de Linux 2.6.x, los números pares indicaban la versión “estable” lanzada.
Por ejemplo una para uso de fabricación, como el 1.2, 2.4 ó 2.6. Los números
impares, en cambio, como la serie 2.5.x, son versiones de desarrollo, es decir
que no son consideradas de producción.
Comenzando
con la serie Linux 2.6.x, no hay gran diferencia entre los números pares o
impares con respecto a las nuevas herramientas desarrolladas en la misma serie
del núcleo. Linus Torvalds dictaminó que este será el modelo en el futuro.
- El número C indica una revisión mayor en el núcleo. En la
forma anterior de versiones con tres números, esto fue cambiado cuando se
implementaron en el núcleo los parches de seguridad, bugfixes, nuevas
características o drivers. Con la nueva política, solo es cambiado cuando
se introducen nuevos drivers o características; cambios menores se
reflejan en el número D.
- El número D se produjo cuando un grave error, que requiere de
un arreglo inmediato, se encontró en el código NFS de la versión 2.6.8.
Sin embargo, no había otros cambios como para lanzar una nueva revisión
(la cual hubiera sido 2.6.9). Entonces se lanzó la versión 2.6.8.1, con el
error arreglado como único cambio. Con 2.6.11, esto fue adoptado como la
nueva política de versiones. Bug-fixes y parches de seguridad son
actualmente manejados por el cuarto número dejando los cambios mayores
para el número C.
También, algunas veces luego de las versiones puede haber algunas letras
como “rc1” o “mm2”. El “rc” se refiere a release candidate e indica un
lanzamiento no oficial. Otras letras usualmente (pero no siempre) hacen
referencia a las iniciales de la persona. Esto indica una bifurcación en el
desarrollo del núcleo realizado por esa persona, por ejemplo ck se refiere a Con Kolivas, ac a Alan Cox, mientras que mm se refiere a
Andrew Morton.
El modelo de desarrollo para Linux 2.6 fue un cambio significativo desde
el modelo de desarrollo de Linux 2.5. Previamente existía una rama estable
(2.4) donde se habían producido cambios menores y seguros, y una rama inestable
(2.5) donde estaban permitidos cambios mayores. Esto significó que los usuarios
siempre tenían una versión 2.4 a prueba de fallos y con lo último en seguridad
y casi libre de errores, aunque tuvieran que esperar por las características de
la rama 2.5. La rama 2.5 fue eventualmente declarada estable y renombrada como
2.6. Pero en vez de abrir una rama 2.7 inestable, los desarrolladores de
núcleos eligieron continuar agregando los cambios en la rama “estable” 2.6. De
esta forma no había que seguir manteniendo una rama vieja pero estable y se podía
hacer que las nuevas características estuvieran rápidamente disponibles y se
pudieran realizar más pruebas con el último código.
Sin embargo, el modelo de desarrollo del nuevo 2.6 también significó que
no había una rama estable para aquellos que esperaban seguridad y bug fixes sin
necesitar las últimas características. Los arreglos solo estaban en la última
versión, así que si un usuario quería una versión con todos los bug fixed
conocidos también tendría las últimas características, las cuales no habían sido
bien probadas. Una solución parcial para esto fue la versión ya mencionada de
cuatro números (y en 2.6.x.y), la cual significaba lanzamientos puntuales
creados por el equipo estable (Greg Kroah-Hartman, Chris Wright, y quizás
otros). El equipo estable solo lanzaba actualizaciones para el núcleo
más reciente, sin embargo esto no solucionó el problema del faltante de una
serie estable de núcleo. Distribuidores de Linux, como Red
Hat y Debian, mantienen los núcleos que
salen con sus lanzamientos, de forma que una solución para algunas personas es
seguir el núcleo de una distribución.
Como respuesta a la falta de un núcleo estable y de gente que coordinara
la colección de corrección de errores, en diciembre de 2005 Adrian Bunk anunció
que continuaría lanzando núcleos 2.6.16 aun cuando el equipo estable
lanzara 2.6.17. Además pensó en incluir actualizaciones de controladores,
haciendo que el mantenimiento de la serie 2.6.16 sea muy parecido a las viejas
reglas de mantenimiento para las serie estables como 2.4. El núcleo 2.6.16 será
reemplazado próximamente por el 2.6.27 como núcleo estable en mantenimiento
durante varios años.
Dado el nuevo modelo de desarrollo, que mantiene
fija la subversión de 2.6, tras durante el Linux
Kernel Summit de ese año, Linus Torvalds decidió modificar el sistema de numeración,
sustituyendo los dos primeros números por una única cifra, de forma que
Linux
2.6.39 fue seguida por Linux 3.0
Fechas de publicación
Versión
|
Fecha
|
Nota
|
Ficheros
|
|||
0.01
|
17 de
septiembre de 1991
|
Initial
Public Release
|
88
|
8.413
|
0,267
|
0,06
|
0.02
|
5 de
octubre de 1991
|
-
|
-
|
|||
0.11
|
8 de
diciembre 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
|
Primera
versión estable
|
561
|
170.581
|
4,633
|
0,969
|
1.1.0
|
6 de
abril de 1994
|
Versión
de desarrollo
|
561
|
170.320
|
||
1.2.0
|
6 de
marzo de 1995
|
909
|
294.623
|
|||
1.3.0
|
12 de
junio de 1995
|
Versión
de desarrollo
|
992
|
323.581
|
||
2.0.0
|
9 de
junio de 1996
|
2.015
|
716.119
|
21,7
|
4,499
|
|
2.1.0
|
30 de
septiembre de 1996
|
Versión
de desarrollo
|
1.727
|
735.736
|
||
2.2.0
|
26 de
enero de 1999
|
4.599
|
1.676.182
|
|||
2.3.0
|
11 de
mayo de 1999
|
Versión
de desarrollo
|
4.721
|
1.763.358
|
||
2.4.0
|
4 de
enero de 2001
|
8.187
|
3.158.560
|
96,8
|
18,79
|
|
2.5.0
|
23 de
noviembre de 2001
|
Versión
de desarrollo
|
9.893
|
3.833.603
|
||
2.6.0
|
18 de
diciembre 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
junio 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
julio de 2011
|
36.782
|
13.688.408
|
410,8
|
73,2
|
|
3.0
|
27 de
julio de 2012
|
37.792
|
19.688.408
|
460,8
|
73,2
|
Distribuciones
Una distribución Linux es un conjunto de software acompañado del núcleo
Linux que se enfoca a satisfacer las necesidades de un grupo específico de
usuarios. De este modo hay distribuciones para hogares, empresas y servidores.
Las distribuciones son ensambladas por individuos, empresas u otros
organismos. Cada distribución puede incluir cualquier número de software adicional, incluyendo software que facilite la instalación del sistema. La base del software incluido
con cada distribución incluye el núcleo Linux, en la mayoría de los casos las
herramientas GNU, al que suelen añadirse
también multitud de paquetes de software.
Las herramientas que suelen incluirse en la distribución de este sistema operativo se obtienen de diversas fuentes, y en especial de proyectos de software libre, como: GNU, GNOME (creado por GNU) y KDE. También se incluyen utilidades de otros proyectos como Mozilla, Perl, Ruby, Python, PostgreSQL, MySQL, Xorg, casi todas con licencia GPL o compatibles con ésta (LGPL, MPL).
Usualmente se utiliza la plataforma X.Org Server, basada en
la antigua XFree86, para sostener la interfaz gráfica.
Críticas
Soporte de hardware
El núcleo Linux ha sido criticado con frecuencia por falta de controladores para cierto hardware de computadoras de
escritorio. Sin embargo, el progresivo incremento en la adopción de Linux en el
escritorio ha mejorado el soporte de hardware por parte de terceros o de los
propios fabricantes, provocando que, en los últimos años, los problemas de
compatibilidad se reduzcan.
Empresas como IBM, Intel Corporation, Hewlett-Packard, Dell o MIPS Technologies tienen programadores en el equipo de desarrolladores del núcleo Linux
que se encargan de mantener los controladores para el hardware que fabrican.
Este grupo de programadores también se le suman los que provee grandes
distribuidores de soluciones Linux como Novell o Red Hat.
Linux
|
|
Desarrollador
|
|
Información general
|
|
Lanzamiento inicial
|
|
Estado actual
|
Activo
|
Inglés, Español
|
|
Artículos relacionados
|
|
Que en 1991 empezo a funcionar el nombre de linux que viene por su creador entonces estudiante de computacion linus tovalds de 21 años despues muchos lo ayudaron con el codigo que el comento y fue creciendo el codigo hasta que el programa fue lanzado en septiembre 1991.Vivian Celeste 2do B #07
ResponderBorrarEs un tema interesante porque linux es hoy un gran sistema operativo. Oscar alejandro cabrera 2B#5
ResponderBorrarmuchas personas ayudaron con el código. En septiembre de 1991 se lanzó la versión 0.01 de Linux. Tenía 10.239 líneas de código fue creado por el joven Linus torvalsd . Yosenia Mese 2do B #29
ResponderBorrares importante notar que los esfuerzos de Torvalds también estaban dirigidos a un tipo diferente de portabilidad. Según su punto de vista, la portabilidad es la habilidad de compilar fácilmente en un sistema aplicaciones de los orígenes más diversos; así, la popularidad original de Linux. numero 5 de 2d0 A Arturo
Borrares argo muy importante ya que lo vemos casi diariario y lo usamos casi tados los dias que funciona en sistema muy diversos cono ipaq . eliezer ariles corniel 2do a numero 02
BorrarAún cuando Linus Torvalds no ideó originalmente Linux como un núcleo portable, ha evolucionado en esa dirección. Linux es ahora de hecho, uno de los núcleos más ampliamente portados, y funciona en sistemas muy diversos que van desde iPAQ (una handheld) hasta un zSeries (un mainframe masivo). Está planeado que Linux sea el sistema operativo principal de las nuevas supercomputadoras de IBM, Blue Gene cuando su desarrollo se complete.#36 1eE
ResponderBorrarDe todos modos, es importante notar que los esfuerzos de Torvalds también estaban dirigidos a un tipo diferente de portabilidad. Según su punto de vista, la portabilidad es la habilidad de compilar fácilmente en un sistema aplicaciones de los orígenes más diversos; así, la popularidad original de Linux se debió en parte al poco esfuerzo necesario para tener funcionando las aplicaciones favoritas de todos, ya sean GPL o de Código abierto.#14 1E
ResponderBorrar1e #21 buuenoo me gusta esta pagina porque en esta pagina podemos aprennder mmuchas cosa desconosida y nos facilita hacer vla clase mas comoda tambien esta pagina tiene la informacion mas amplia y con una definiiicion mas amplia y mas clara
ResponderBorrar