lunes, 9 de junio de 2014

Obtener el código fuente de nuestros programas en GNU/Linux

Este truco está pensado para distribuciones basadas en Debian, ya que usa el gestor de paquetes apt.

Siempre he estado oyendo que es mejor Gnu/Linux porque la mayor parte del software que encontramos dentro es libre y eso nos da ciertas ventajas:
  • Podemos ver el código fuente del programa y estudiarlo
  • Podemos contribuir a mejorar el programa
  • Podemos empezar una versión distinta del programa sin pedir permiso a los programadores originales
  • Podemos publicar nuestras versiones modificadas o las versiones originales legalmente.

Lo cual está muy bien, pero nunca había podido ver de una forma sencilla el código fuente de algún programa como por ejemplo VLC (sin tener que ir a la página y descargarlo claro).



El truco es bastante sencillo y me sorprende mucho que no se hable demasiado de ello. Bueno, se trata de abrir la terminal y escribir lo siguiente:

apt-get source [nombre del programa]

En donde nombre del programa lo sustituímos por el programa que queramos obtener el código fuente. El código fuente del programa se guarda en donde tengamos situada la terminal en el momento de llamar a apt (por defecto en la carpeta personal).

Si se fijan no he escrito sudo al introducir el comando, esto es debido a que si lo hago, el código fuente descargado pertenecerá a root, y para borrarlo tendré que usar la terminal y sudo también.

Un ejemplo, voy a descargar el codigo fuente del programa vlc, pues lo que tengo que introduccir en la terminal es:

apt-get source vlc

y me aparecerá el código fuente del programa en mi carpeta personal.

viernes, 6 de junio de 2014

¿Por qué Linux no es un sistema operativo?

Mucho se ha hablado de Linux, de los sistemas operativos Unix-like y de muchas otras cosas relacionadas al pingüino. Pero ¿por qué Linux no es un sistema operativo?

Un sistema operativo es el conjunto de programas que gestionan los recursos de hardware de un sistema informático y ofrecen servicios comunes al resto de las aplicaciones. Un ordenador sin un sistema operativo no es más que un montón de hojalata y componentes electrónicos inútiles.



La palabra clave entonces es conjunto. Si bien el sistema operativo puede ser un sólo programa, generalmente está conformado por un conjunto y entre ellos el más importante es el kernel.

¿Qué es el kernel?


El kernel o núcleo es el software responsable de gestionar el acceso al hardware del ordenador. Entre sus funciones más importantes están la administración de la memoria, del tiempo de procesador y del acceso a los periféricos del sistema.

Un ordenador puede ejecutar muchos programas a la vez, por eso el kernel también es el encargado de decidir qué programa hace uso de qué recurso o dispositivo y durante cuánto tiempo.

Entonces, técnicamente hablando, Linux es un kernel de código abierto, inspirado en Minix y encargado de gestionar el hardware de un ordenador. Es parte fundamental de un sistema operativo tipo Unix pero por sí sólo no es un sistema operativo.


A inicios de los 90, el proyecto GNU comenzó el desarrollo de un sistema operativo tipo Unix usando el kernel Hurd y todo el conjunto de aplicaciones desarrolladas por ellos mismos. Sin embargo, el diseño ambicioso de este kernel hizo que su salida se demorara más de lo previsto y es aquí cuando la popularidad de Linux juega un papel importante, pues el proyecto GNU decide usarlo como reemplazo de Hurd mientras terminaban su desarrollo.

Se combinaron las aplicaciones de GNU con el kernel de Linux y se dio origen a lo que hoy se conoce como sistema operativo GNU/Linux.

Desde ese entonces, la FSF ha insistido en que los sistemas operativos que usen el kernel Linux y las aplicaciones GNU sean llamados GNU/Linux y de esta manera dar crédito a ambos proyectos.

¿Y por qué esto ya no importa?


Principalmente porque con el paso del tiempo el proyecto GNU ha cambiado su enfoque hacia otras tareas bajándole prioridad al desarrollo. En consecuencia muchas de las aplicaciones de GNU han sido reemplazadas por otras creando así un amplio ecosistema de alternativas; tanto así que en todas las distribuciones la pieza constante es el kernel.

Entonces por facilidad, pragmatismo o simplemente pereza preferimos llamar Linux a todo el sistema operativo y no sólo al kernel.