¿Qué es Linux?
Linux es un
sistema operativo gratuito de código abierto basado en Unix, Linux está
modelado como un sistema operativo tipo Unix. Desde sus comienzos, Linux se
diseñó para que fuera un sistema multi tarea y multi usuario. Estos hechos son
suficientes para diferenciar a Linux de otros sistemas operativos más
conocidos. Sin embargo, Linux es más diferente de lo que pueda imaginar. Nadie
es dueño de Linux, a diferencia de otros sistemas operativos. Gran parte de su
desarrollo lo realizan voluntarios de forma altruista.
Estrictamente
hablando, Linux es un kernel. Un kernel proporciona acceso al hardware de la
computadora, decide quien usara un recurso, por cuanto tiempo, cuando lo usara
además controla el acceso a recursos tales como:
- Archivos y datos.
- Ejecución de programas.
- Cargando programas en la memoria.
- Redes.
- Seguridad y firewall.
- Otros recursos etc.
Una distribución típica de Linux incluye:
- Kernel de Linux.
- Utilidades de aplicación GNU como editores de
texto, navegadores, etc.
- Colección de varias aplicaciones y utilidades GUI
(X windows).
- Software de aplicación de oficina.
- Herramientas de desarrollo de software y
compiladores.
- Miles de aplicaciones de software listos para usar.
- Programas / scripts de instalación de Linux.
- Las herramientas de administración posteriores a la
instalación de Linux para trabajar a diario, como agregar usuarios, instalar
aplicaciones, etc.
- Y, un Shell para pegar todo junto.
Puede usar Linux como un sistema operativo de servidor o como un sistema
operativo independiente en su PC. Como sistema operativo de servidor,
proporciona diferentes servicios / recursos de red a un cliente. Linux como
sistema operativo de servidor proporciona las características de ser:
- Estable
- Robusto
- Seguro
- Alto rendimiento
Filosofía Unix
La Filosofía UNIX supone crear programas rápidos, simples, con poca
intervención por parte del usuario, o en caso de necesitarla, esta se produzca
al principio o lo más mínima posible. Esta se acopla perfectamente a las
necesidades de computación de los laboratorios científicos, puesto que Unix fue
originalmente desarrollado en uno de estos.
Algunas premisas de la filosofía Unix:
- Que cada programa realice únicamente la tarea para
la que fue creado y la haga bien.
- Para llevar a cabo una nueva tarea escribe un
programa nuevo. No compliques uno viejo añadiendo nueva funcionalidad.
- Escribe tu programa teniendo en cuenta que su
salida probablemente sea la entrada de otro programa.
- Guarda los datos en archivos de texto plano. Si
necesitas seguridad, confía en los permisos.
- Usa nombres cortos y en minúscula.
- En la manera de lo posible haz que el usuario
suministre los datos por línea de comandos en la llamada.
- Haz partes simples conectadas mediante interfaces
limpias y bien definidas.
- Céntrate en los datos.
- Claridad mejor que complejidad. La solución más
simple es frecuentemente la mejor.
- Portabilidad mejor que eficiencia.
- Piensa en paralelo. Hay otros procesos en el mundo,
incluso instancias de tu mismo programa funcionando al mismo tiempo.
- Hacer programas grandes, solo cuando se demuestre
que no se puede realizar con uno pequeño.
- Si no hay nada interesante que decir, que el
programa mejor no diga nada.
- Para cada problema existen múltiples soluciones.
Linux Kernel
El kernel o “núcleo” es un software que constituye la parte más
importante en el sistema operativo. Se reconoce por ser la parte del software
del sistema operativo que se ejecuta en modo privilegiado. el kernel en sí no
es un proceso, sino un administrador de procesos.
Características Linux Kernel
- Es un kernel no preventivo. No puede intercalar
arbitrariamente los flujos de ejecución mientras están en modo kernel.
- Soporta multiprocesamiento simétrico (SMP).
- Tiene soporte para aplicaciones multiproceso.
Lightweight processes (LWP). Pueden operar en un espacio de direcciones común,
páginas de memoria física común, archivos abiertos comunes y otras estructuras
de datos.
- Maneja muchos tipos de sistemas de archivos (ext*,
el XFS, JFS y btrfs).
- Es gratuito.
- Es totalmente personalizable en todos sus componentes.
General Public License (GPL).
- Se ejecuta en plataformas de hardware baratas y de
gama baja.
- Es poderoso (eficiencia).
- Tiene un alto estándar para la calidad del código
fuente (estable).
- Está bien soportado.