El kernel de Linux puede
ejecutar una gran variedad de software a través de muchas plataformas de
hardware. Una computadora puede actuar como un servidor, que significa que
principalmente maneja datos en nombre de otro o puede actuar como un escritorio
lo que significa que un usuario puede interactuar con él directamente. La
máquina puede ejecutar el software o puede ser utilizada como máquina de
desarrollo en el proceso de creación de software. Incluso puede ejecutar
múltiples roles ya que no hay distinción en el Linux en cuanto a la función de
la máquina; es simplemente una cuestión de configurar cuáles de las
aplicaciones se ejecutarán.
Una ventaja de esto es que se
pueden simular casi todos los aspectos de un entorno de producción, desde el
desarrollo a las pruebas y hasta la verificación en un hardware reducido, lo
cual ahorra costos y tiempo. Como estudiante de Linux puedes ejecutar las
mismas aplicaciones de servidor en tu escritorio o un servidor virtual no muy
costoso que funciona a través de un gran proveedor de servicios de Internet.
Por supuesto no vas a poder manejar el mismo volumen que un proveedor de
servicios grande, ya que éste posee un hardware mucho más caro. Sin embargo,
vas a poder simular casi cualquier configuración sin necesidad de un hardware
muy potente o un servidor de licencias para el servidor.
El software de Linux cae
generalmente en una de tres categorías:
Software de servidor: software que no tiene ninguna interacción directa con el monitor y el teclado
de la máquina en la que se ejecuta. Su propósito es servir de información a
otras computadoras llamados clientes. A veces el software de servidor puede no
interactuar con otros equipos, sin embrago, va a estar ahí sentado y
"procesando" datos.
Software de escritorio: un
navegador web, editor de texto, reproductor de música u otro software con el
que tú interactúas. En muchos casos, como un navegador web, el software
consultará a un servidor en el otro extremo e interpretará los datos para ti. Aquí,
el software de escritorio es el cliente.
Herramientas: una categoría
adicional de software que existe para que sea más fácil gestionar el sistema.
Puedes tener una herramienta que te ayude a configurar la pantalla o algo que
proporcione un shell de Linux o incluso herramientas más sofisticadas que
convierten el código fuente en algo que la computadora pueda ejecutar.
Una
aplicación móvil es muy parecida a una aplicación de escritorio pero se ejecuta
en un teléfono o una tableta en lugar de una máquina de escritorio.
Cualquier tarea que quieras
hacer en Linux probablemente pueda ser acomodada por cualquier número de
aplicaciones. Hay muchos navegadores, muchos servidores web y muchos editores
de texto (los beneficios de cada uno son objeto de muchas guerras santas de
UNIX). Esto no es diferente que el mundo de código cerrado. Sin embargo, una
ventaja del código abierto es que si a alguien no le gusta la manera en la que
funciona su servidor web, puede empezar a construir su propio.