Saltar al contenido principal
Página

Tema 1.1 - Conociendo Linux

¿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.


Última modificación: lunes, 11 de mayo de 2020, 22:10