El desarrollo principal de este SO comenzó en 1991 por un estudiante de Finlandia llamado Linus Torvalds.
La primera versión 0.01 fue presentada el 17 de septiembre de 1991.
La marca Linux fue registrada por el desarrollador, pero el nombre en sí fue
elegido a través del voto de los usuarios.
En este fecha el kernel estaba construido, pero todavía no había programas
para él.
Nota: El Kernel o núcleo, es una parte fundamental del sistema operativo que se encarga de
conceder el acceso al Hardware (componentes) de forma segura a todo
el Software (programas) que lo solicita para su funcionamiento.
Ejemplo: para que imprima la impresora (hardware) necesita instrucciones
(software).
El kernel le de acceso a la impresora al software que tiene programado su
funcionamiento para que funcione cuando lo
requerimos, en este caso cuando queremos que imprima.
El Kernel es una pequeña e invisible parte del sistema operativo, pero la
más importante, ya que sin esta no podría funcionar.
En lugar de escribir el
software de su SO desde cero, Torvalds se
basó en el kernel del software libre gratuito y más famoso en ese
momento, el llamado Proyecto GNU, desarrollado por Richard
Stallman para el movimiento del software libre y basado en el
sistema
operativo libre más utilizado en aquella época llamado UNIX.
Desde entonces, Linux se ha expandido, han
aparecido nuevas distribuciones e incluso el sistema operativo
Android se construyó sobre la base del Kernel de Linux, y que como ya
sabemos su popularidad es imposible de disputar.
La mascota oficial de Linux desde 1996 es el pingüino Tux, abreviatura de "
Torvalds UniX ".
La idea de utilizar un pingüino como mascota de Linux fue propuesta por el
creador, Linus Torvalds.
Linux es una familia de sistemas operativos que utilizan el kernel de Linux.
Los sistemas operativos que usan el kernel de Linux se denominan
distribuciones de Linux.
Son sistemas operativos como Microsoft Windows o Apple macOS, pero con una
característica muy importante, sus códigos fuente son de código
abierto, ya que se distribuyen bajo la licencia GNU GPL.
Esto significa que cualquier usuario tiene derecho a estudiar y modificar el
código fuente de este sistema operativo y de sus distribuciones.
Nota: Vale la pena señalar que también hay distribuciones de Linux de pago
como Red Hat Enterprise Linux, Astra Linux Special Edition, etc.
Linux es un sistema moderno, estable y de rápida evolución, incorporando las
últimas innovaciones tecnológicas casi instantáneamente.
Tiene todas las características inherentes a los sistemas operativos
modernos completamente funcionales.
Aunque en el siguiente punto veremos muchas más, las mas importantes son:
1. Gratuito y de software libre.
2. Sistema operativo multiusuario y multitarea.
3. Muy seguro ya que al ser de código abierto los
desarrolladores de virus no tienen mucho interés en infectar este tipo de
SO.
Linux tiene muy pocos usuarios en comparación con Windows.
Linux tiene casi el 3% del mercado, mientras que Windows más del 80% del
mercado.
4. Muy estable, de hecho la mayoría de servidores lo
utilizan porque tienen que estar las 24 horas del día encendidos.
5. Especialmente para trabajar muchos usuarios a la vez en
red.
6. Realiza una gestión de la memoria eficiente.
7. Funciona en diferentes plataformas de hardware (en todas
las versiones de microprocesadores Intel, en procesadores Athlon y Duron de
AMD, se han desarrollado versiones de SO para otros tipos de
microprocesadores: ARM, DEC Alpha, SUN Sparc, M68000 (Atari y Amiga),
MIPS , PowerPC).
- Es un SO multitarea: muchos programas se pueden ejecutar al mismo tiempo.
- Tiene modo multiusuario: un gran número de usuarios pueden trabajar
simultáneamente en la misma máquina.
- Modo protegido del procesador (386 modo protegido).
- Protección de la memoria de procesos; un bloqueo del programa no puede
hacer que el sistema se congele;
lee del disco solo aquellas partes del programa que se utilizan realmente
para la ejecución.
- División de páginas por registro entre instancias del programa ejecutable.
Esto significa que los procesos-instancias del programa pueden usar la misma
memoria al ejecutarse.
Cuando un proceso de este tipo intenta escribir en la memoria, la página de
4 KB que se está escribiendo se copia en el espacio libre.
Esta propiedad mejora el rendimiento y ahorra memoria.
- Memoria virtual paginada, es decir, no todo el proceso inactivo se envía
al disco desde la memoria, sino solo la página requerida.
- Memoria virtual en particiones de disco independientes y/o archivos en el
sistema de archivos, hasta 2 GB de memoria virtual, cambiar el tamaño de la
memoria virtual durante la ejecución del programa;
- Memoria de programa compartida y caché de disco: toda la memoria libre se
utiliza para almacenar en búfer los intercambios de disco.
- Bibliotecas compartidas cargables dinámicas.
- Volcado del programa para análisis post-mortem: permite al depurador
analizar no solo un programa en ejecución, sino también un programa
terminado anormalmente.
- Compatibilidad a nivel de fuente con los estándares System V y BSD.
- Disponibilidad del código fuente de todos los programas, incluidos los
códigos del kernel, controladores, herramientas de desarrollo y
aplicaciones.
Estos códigos se distribuyen gratuitamente.
Actualmente, algunas empresas suministran una serie de programas comerciales
para Linux sin código fuente, pero todo lo que era gratuito sigue siendo
gratuito.
- Gestión de trabajos en el estándar POSIX.
- Emulación del coprocesador en el kernel, por lo que es posible que a la
aplicación no le importe emular el coprocesador.
Por supuesto, si hay un coprocesador disponible, se utiliza.
- Soporte para alfabetos y convenciones en todos los idiomas y la capacidad
de agregar nuevos.
- Múltiples consolas virtuales: múltiples sesiones independientes
simultáneas en una pantalla, conmutables desde el teclado.
- Soporte para varios sistemas de archivos comunes (sistemas de archivos
MINIX, Xenix, System V); la presencia de su propio sistema de archivos
avanzado de hasta 4 Terabytes y con nombres de archivo de hasta 255
caracteres.
- Acceso transparente a particiones DOS (o OS / 2 FAT ): la partición DOS
parece parte del sistema de archivos de Linux, Soporte VFAT.
- Un sistema de archivos especial UMSDOS que permite instalar Linux en un
sistema de archivos DOS.
- Soporte para todos los formatos estándar de CD ROM.
- Compatibilidad con redes TCP/IP, incluidos ftp, telnet, NFS, etc.
Dado que las distribuciones son desarrolladas por una gran cantidad de
grupos independientes de programadores, hay cientos de distribuciones de
Linux diferentes en el mundo (consulte http://distrowatch.com/), y están
surgiendo nuevas todo el tiempo.
Las nuevas distribuciones generalmente no se crean desde cero, sino que se
basan en una de las distribuciones existentes.
Las diferentes distribuciones se suelen diferenciar en:
- El programa de instalación.
- La herramienta utilizada para instalar paquetes de software (sistema de
gestión de paquetes).
- La composición de utilidades y aplicaciones incluidas en la distribución.
- La secuencia de comandos para el arranque.
- En los Requisitos de hardware.
Hay 3 grupos principales de distribuciones:
- Basadas en la distribución de Red Hat luego renombrada
como Fedora Core.
Las distribuciones más famosas de este grupo son Mandrake (o Mandriva),
ASPLinux, Linux Ink, AltLinux (basado en Mandrake), etc.
- Basadas en la distribución de Debian.
Este grupo incluye el kit de distribución más popular del mundo
Ubuntu, también Knoppix, Storm, etc.
- Basada en la distribución de Slackware.
Este grupo incluye OpenSuSe, cada vez más popular.
Como ya vimos anteriormente, el kernel o núcleo es una parte, la parte
principal del sistema operativo y consiste en un programa principal que
actúa como intermediario entre los dispositivos informáticos o hardware
(procesador, tarjeta de video,
RAM, etc.) y su software.
Gracias a este programa llamado kernel, los usuarios pueden comunicarse y
trabajar de forma sencilla con su computadora y sus
periféricos.
En el código Kernel se incluyen los controladores de los dispositivos y
periféricos, y de esta forma se pueden cargar en la memoria junto con el
kernel del sistema operativo al encenderse, y conectarse con cualquier
dispositivo cuando surja la necesidad de utilizarlo.
Como probablemente sepas, varios programas se pueden ejecutar en un
ordenador a la vez.
Algunos de ellos se ejecutan en segundo plano, otros pueden esperar ciertas
acciones del usuario y otros necesitan recibir información de otro programa
en ejecución.
Es el Kernel el que asume la función de distribuir de manera óptima
los recursos del ordenador entre los programas en ejecución y
organizar la operación en paralelo de muchos procesos diferentes.
El Kernel o Núcleo es el primero en cargarse en la RAM y
siempre está en estado de ejecución, interactuando constantemente con el
hardware y con los programas instalados.
Normalmente, la mayoría de los núcleos o kernel se dividen en tres
tipos: Micronúcleo o MicroKernel, Monolítico e Híbrido.
Un microkernel es un kernel que consta de varios módulos
independientes cargados en la memoria según sea necesario y ejecutados en
espacios de direcciones separados.
De hecho, en esta implementación, no difiere mucho de los programas de
aplicación convencionales.
Las ventajas de este kernel es una mayor confiabilidad en comparación con
otras arquitecturas y su modularidad (facilidad para conectar partes
adicionales del kernel).
Las desventajas de la arquitectura del microkernel incluyen el hecho de que
un kernel construido de acuerdo con este esquema resulta ser muy lento,
después de todo, necesita cambiar constantemente entre las partes separadas.
Un núcleo o Kernel monolítico es exactamente lo contrario
de un microkernel, la memoria del ordenador siempre contiene todo (o casi
todo) el código del kernel, por lo que la velocidad de su funcionamiento es
mayor en comparación con el microkernel.
Un kernel híbrido es un kernel que combina elementos de
arquitecturas monolíticas y de microkernel.
Aunque el kernel de Linux es un kernel monolítico, también
toma prestadas algunas ideas de la arquitectura del microkernel, lo que
significa que todo el sistema operativo se ejecuta en el espacio del kernel,
y los controladores de dispositivos (en forma de módulos) se pueden cargar
(o descargar) directamente con facilidad, durante el tiempo de actividad del
sistema operativo.
Entre todos los sistemas operativos, Linux es único en su filosofía ya que es un sistema que los usuarios han creado para los usuarios.
Linux no es solo un sistema gratuito que cualquiera puede copiar sin restricciones.
Es un sistema de código abierto gratuito, y cualquiera, ya sea de Washington
o Londres, puede convertirse en coautor de Linux contribuyendo, sin importar
lo grande o pequeña que sea la contribución.
Linux es de código abierto y tiene una sólida comunidad de usuarios.
Dado que toda la base de usuarios tiene acceso al código fuente, pueden
monitorear los problemas y existe una buena posibilidad de que se detecten
vulnerabilidades antes de que los piratas informáticos las apunten.
Linux recibe un excelente nivel de mantenimiento por parte de su comunidad
de desarrolladores.
El hecho de que la mayoría de las supercomputadoras más rápidas del mundo se
ejecutan con Linux se puede atribuir a su velocidad.
Linux tiene la reputación de ser rápido y fluido, mientras que por ejemplo
Windows se vuelve lento con el tiempo.
Linux ofrece alta velocidad y seguridad, mientras que Windows ofrece una
gran facilidad de uso, por lo que incluso las personas sin conocimientos de
tecnología pueden trabajar fácilmente en ordenadores personales.