1.2 Lección 1
Certificación: |
Linux Essentials |
---|---|
Versión: |
1.6 |
Tema: |
1 La comunidad Linux y una carrera en el Open Source |
Objetivo: |
1.2 Principales aplicaciones de código abierto |
Lección: |
1 de 1 |
Introducción
Una aplicación es un programa informático que no está directamente relacionado con el funcionamiento de la computadora, sino con las tareas que realiza el usuario. Las distribuciones de GNU/Linux ofrecen muchas opciones de aplicaciones para realizar una variedad de tareas, tales como aplicaciones de oficina, navegadores web, reproductores, editores multimedia, gestores de bases de datos, clientes de correo electrónico, etc. A menudo hay más de una aplicación o herramienta para realizar un trabajo en particular, y es el usuario quien debe elegir la aplicación que mejor se adapte a sus necesidades.
Paquetes de software
Casi todas las distribuciones de
GNU/Linux ofrecen un conjunto
aplicaciones preinstaladas. Además de
esas aplicaciones preinstaladas, una
distribución tiene un repositorio de
paquetes con una vasta colección de
aplicaciones disponibles para instalar a
través de su gestor de paquetes package
manager. Aunque las diversas
distribuciones ofrecen aproximadamente
las mismas aplicaciones, existen varios
sistemas de gestión de paquetes
diferentes para varias distribuciones,
por ejemplo, Debian, Ubuntu y Linux Mint
utilizan las herramientas dpkg
,
apt-get
y apt
para instalar paquetes de software,
generalmente denominados paquetes DEB.
Por el contrario, distribuciones como
Red Hat, Fedora y CentOS usan los
comandos rpm
, yum
y dnf
que a su vez
instalan paquetes RPM. Como el
empaquetado de la aplicación es
diferente para cada familia de
distribución, es muy importante instalar
paquetes desde el repositorio correcto
diseñado para la distribución en
particular. El usuario final normalmente
no tiene que preocuparse por esos
detalles, ya que el gestor de paquetes
de la distribución elegirá los paquetes
adecuados, las dependencias necesarias y
las actualizaciones futuras. Las
dependencias son paquetes auxiliares que
necesitan los programas que se desean
instalar. Por ejemplo, si una librería
proporciona funciones para tratar
imágenes JPEG que son utilizadas por
varios programas, es probable que esta
librería esté empaquetada en su propio
paquete del que dependen todas las
aplicaciones que utilizan la librería.
Los comandos dpkg
y rpm
operan en archivos de paquetes
individuales. En la práctica, casi todas
las tareas de gestión de paquetes son
realizadas por los comandos apt-get
o apt
en sistemas que
utilizan paquetes DEB o por yum
o dnf
en sistemas que
utilizan paquetes RPM. Estos comandos
funcionan con catálogos de paquetes en
lugar de paquetes individuales. Como
ejemplos de las muchas funcionalidades
de estos comandos inteligentes
podemos enumerar estas dos:
- Descargar nuevos paquetes mas todas sus dependencias para luego proceder a la instalación automática sin más intervención del usuario.
- Comprobar si hay versiones más recientes de los paquetes ya instalados e invitar al usuario a actualizar dichos paquetes.
Instalación de paquetes
Suponga que ha oído hablar de un
comando llamado figlet
que
imprime texto agrandado en el terminal y
desea probarlo; sin embargo, obtendrá el
siguiente mensaje después de ejecutar el
comando figlet
:
$ figlet -bash: figlet: command not found
Esto significa que probablemente el
paquete no esté instalado en su sistema.
Si su distribución funciona con paquetes
DEB, puede buscar en sus repositorios
usando apt-cache search
package_name
o apt
search package_name
. El comando
apt-cache
se usa para
buscar paquetes y para listar
información sobre paquetes disponibles.
El siguiente comando busca cualquier
ocurrencia del término “figlet” en los
nombres y descripciones del paquete:
$ apt-cache search figlet figlet - Make large character ASCII banners out of ordinary text
La búsqueda identificó un paquete
llamado figlet que corresponde
al comando que falta. La instalación y
eliminación de un paquete requiere
permisos especiales otorgados solo al
administrador del sistema: el usuario
llamado root
. En los
sistemas de escritorio, los usuarios
comunes pueden instalar o eliminar
paquetes anteponiendo el comando sudo
a los comandos de instalación /
eliminación. Eso requerirá que escriba
su contraseña para continuar. Para los
paquetes DEB, la instalación se realiza
con el comando apt-get install
package_name
o apt
install package_name
:
$ sudo apt-get install figlet Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: figlet 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
En este punto el paquete se descargará e instalará en el sistema, así como las dependencias que eventualmente necesite el paquete:
Need to get 184 kB of archives. After this operation, 741 kB of additional disk space will be used. Get:1 http://archive.raspbian.org/raspbian stretch/main armhf figlet armhf 2.2.5-2 [184 kB] Fetched 184 kB in 0s (213 kB/s) Selecting previously unselected package figlet. (Reading database ... 115701 files and directories currently installed.) Preparing to unpack .../figlet_2.2.5-2_armhf.deb ... Unpacking figlet (2.2.5-2) ... Setting up figlet (2.2.5-2) ... update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figlet (figlet) in auto mode Processing triggers for man-db (2.7.6.1-2) ...
Una vez finalizada la descarga, todos los archivos son copiados a las ubicaciones correspondiente, se realizará cualquier configuración adicional y el comando estará disponible:
$ figlet Awesome! _ _ / \__ _____ ___ ___ _ __ ___ ___| | / _ \ \ /\ / / _ \/ __|/ _ \| '_ ` _ \ / _ \ | / ___ \ V V / __/\__ \ (_) | | | | | | __/_| /_/ \_\_/\_/ \___||___/\___/|_| |_| |_|\___(_)
En distribuciones basadas en paquetes
RPM, las búsquedas se realizan usando yum
search package_name
o dnf
search package_name
. Supongamos
que desea mostrar algún texto de una
forma más irreverente, seguido de una
vaca caricaturesca, pero no está seguro
del paquete que puede realizar esa
tarea:
$ yum search speaking cow Last metadata expiration check: 1:30:49 ago on Tue 23 Apr 2019 11:02:33 PM -03. ==================== Name & Summary Matched: speaking, cow ==================== cowsay.noarch : Configurable speaking/thinking cow
Después de encontrar un paquete
adecuado en el repositorio, puede
instalarse con yum install
package_name
o dnf
install package_name
:
$ sudo yum install cowsay Last metadata expiration check: 2:41:02 ago on Tue 23 Apr 2019 11:02:33 PM -03. Dependencies resolved. ============================================================================== Package Arch Version Repository Size ============================================================================== Installing: cowsay noarch 3.04-10.fc28 fedora 46 k Transaction Summary ============================================================================== Install 1 Package Total download size: 46 k Installed size: 76 k Is this ok [y/N]: y
Una vez más, el paquete deseado y todas sus posibles dependencias serán descargados e instalados:
Downloading Packages: cowsay-3.04-10.fc28.noarch.rpm 490 kB/s | 46 kB 00:00 ============================================================================== Total 53 kB/s | 46 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Installed: cowsay.noarch 3.04-10.fc28 Complete!
El comando cowsay
hace
exactamente lo que su nombre indica:
$ cowsay "Brought to you by yum" _______________________ < Brought to you by yum > ----------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Aunque puedan parecer inútiles, los
comandos figlet
y cowsay
proporcionan una forma de llamar la
atención de otros usuarios sobre la
información relevante.
Eliminación de paquetes
Los mismos comandos utilizados para
instalar paquetes se utilizan para
eliminarlos. Todos los comandos aceptan
la palabra clave remove
para desinstalar un paquete instalado: apt-get
remove package_name
o apt
remove package_name
para
paquetes DEB y yum remove
package_name
o dnf
remove package_name
para
paquetes RPM. El comando sudo
también es necesario para realizar la
eliminación. Por ejemplo, para eliminar
el paquete figlet instalado
previamente en una distribución basada
en DEB:
$ sudo apt-get remove figlet Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: figlet 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 741 kB disk space will be freed. Do you want to continue? [Y/n] Y
Después de confirmar la operación, el paquete se borra del sistema:
(Reading database ... 115775 files and directories currently installed.) Removing figlet (2.2.5-2) ... Processing triggers for man-db (2.7.6.1-2) ...
Un procedimiento similar se realiza en un sistema basado en RPM, por ejemplo, para eliminar el paquete cowsay previamente instalado de una distribución basada en RPM:
$ sudo yum remove cowsay Dependencies resolved. ================================================================================== Package Arch Version Repository Size ================================================================================== Removing: cowsay noarch 3.04-10.fc28 @fedora 76 k Transaction Summary ================================================================================== Remove 1 Package Freed space: 76 k Is this ok [y/N]: y
Asimismo, se solicita una confirmación y se borra el paquete del sistema:
Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Erasing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Removed: cowsay.noarch 3.04-10.fc28 Complete!
Los archivos de configuración de los paquetes eliminados se mantienen en el sistema, por lo que pueden volver a utilizarse si el paquete se vuelve a instalar en el futuro.
Aplicaciones de Office
Las aplicaciones de Office se utilizan para editar archivos como textos, presentaciones, hojas de cálculo y otros formatos que se utilizan habitualmente en un entorno de oficina, y que suelen organizarse en colecciones denominadas office suites.
Durante mucho tiempo, la suite de oficina más utilizada en Linux fue la suite OpenOffice.org. OpenOffice.org era una versión de código abierto de la suite StarOffice lanzada por Sun Microsystems. Unos años más tarde, Sun fue adquirida por Oracle Corporation, que a su vez transfirió el proyecto a la Fundación Apache y OpenOffice.org pasó a llamarse Apache OpenOffice. Mientras tanto, otra suite de oficina basada en el mismo código fuente fue lanzada por la Document Foundation, que la denominó LibreOffice.
Los dos proyectos tienen las mismas características básicas y son compatibles con los formatos de documentos de Microsoft Office. Sin embargo, cuando trabajamos con OpenOffice/LibreOffice el formato de documento preferido es Open Document Format, un formato de archivo completamente abierto y estandarizado ISO. El uso de archivos ODF garantiza que los documentos se puedan transferir entre sistemas operativos y aplicaciones de diferentes proveedores, como Microsoft Office. Las principales aplicaciones que ofrece OpenOffice/LibreOffice son:
- Writer
-
Editor de texto
- Calc
-
Hojas de cálculo
- Impress
-
Presentaciones
- Draw
-
Dibujo vectorial
- Math
-
Fórmulas matemáticas
- Base
-
Base de datos
Tanto LibreOffice como Apache OpenOffice son software de código abierto, pero LibreOffice está licenciado bajo LGPLv3 y Apache OpenOffice está licenciado bajo Apache License 2.0. La distinción de licencia implica que LibreOffice puede incorporar mejoras hechas por Apache OpenOffice, pero Apache OpenOffice no puede incorporar mejoras hechas por LibreOffice. Por esa razón y por una comunidad más activa de desarrolladores, las distribuciones GNU/Linux más populares adoptan LibreOffice como su suite ofimática predeterminada.
Navegadores web
Para la mayoría de los usuarios, el objetivo principal de una computadora es proporcionar acceso a Internet. Hoy en día, las páginas web pueden actuar como una aplicación completa, con la ventaja de ser accesibles desde cualquier lugar, sin la necesidad de instalar software adicional, lo que hace que el navegador web sea la aplicación más importante de los sistemas operativos en su configuración Desktop, al menos para el usuario medio.
Tip
|
Una de las mejores fuentes para aprender sobre el desarrollo web es MDN Web Docs, disponible en https://developer.mozilla.org/. El sitio es mantenido por Mozilla y está lleno de tutoriales para principiantes y materiales de referencia sobre la mayoría de las tecnologías web modernas. |
Los principales navegadores web en el entorno GNU/Linux son Google Chrome y Mozilla Firefox. Chrome es un navegador web mantenido por Google pero se basa en el navegador de código abierto llamado Chromium, que puede instalarse utilizando el gestor de paquetes de la distribución y es totalmente compatible con Chrome. Mantenido por Mozilla, una organización sin fines de lucro, Firefox es un navegador cuyos orígenes están ligados a Netscape, el primer navegador web popular en adoptar el modelo de código abierto, y que está profundamente involucrado con el desarrollo de los estándares abiertos que subyacen en la web moderna.
Mozilla también desarrolla otras aplicaciones, como el cliente de correo electrónico Thunderbird. Muchos usuarios optan por utilizar webmail en lugar de una aplicación de correo electrónico dedicada, pero un cliente como Thunderbird ofrece funciones adicionales y se integra mejor con otras aplicaciones en el escritorio.
Multimedia
En comparación con las aplicaciones web disponibles, las aplicaciones de escritorio siguen siendo la mejor opción para la creación de contenido multimedia. Las actividades como la renderización de video, a menudo requieren altos niveles en los recursos del sistema que son mejor administrados por una aplicación de escritorio local. Algunas de las aplicaciones multimedia más populares para GNU/Linux y sus usos se enumeran a continuación.
- Blender
-
Un renderizador 3D para crear animaciones, también se puede utilizar para exportar objetos 3D para ser impresos por una impresora 3D.
- GIMP
-
Un editor de imágenes completo, que puede compararse con Adobe Photoshop, pero que tiene sus propios conceptos y herramientas para trabajar con imágenes. GIMP puede utilizarse para crear, editar y guardar la mayoría de los archivos de mapas de bits, como JPEG, PNG, GIF, TIFF y muchos otros.
- Inkscape
-
Un editor de gráficos vectoriales, similar a Corel Draw o Adobe Illustrator. El formato por defecto de Inkscape es SVG, que es un estándar abierto para gráficos vectoriales, los archivos SVG pueden ser abiertos por cualquier navegador web y, debido a su naturaleza de gráfico vectorial, puede ser utilizado en diseños flexibles de páginas web.
- Audacity
-
Un editor de audio que permite filtrar, aplicar efectos y convertir a diferentes formatos de audio, como MP3, WAV, OGG, FLAC, etc.
- ImageMagick
-
ImageMagick es una herramienta de línea de comandos para convertir y editar la mayoría de los archivos de tipo imagen. También puede ser usado para crear documentos PDF desde un archivo de imagen y viceversa.
También hay muchas aplicaciones dedicadas a la reproducción multimedia. La aplicación más popular para la reproducción de video es VLC, pero algunos usuarios prefieren otras alternativas, como smplayer. La reproducción de música local también tiene muchas opciones, como Audacious, Banshee y Amarok, que también pueden administrar una colección de archivos de sonido locales.
Programas para servidores
Cuando un navegador web carga una página de un sitio, en realidad se está conectando a un ordenador remoto y solicitando una información específica. En este escenario, el ordenador que ejecuta el navegador web se llama cliente y el ordenador remoto se llama servidor.
El servidor, puede ser un ordenador de sobremesa ordinario o un hardware especializado, este equipo necesita un programa o servicio (Conocido también de esa forma) específico para gestionar cada tipo de información que proporcione. En lo que se refiere al servicio de páginas web, la mayoría de los servidores de todo el mundo utilizan programas de código abierto. A este programa o servicio en particular se le llama servidor HTTP (HTTP significa Protocolo de Transferencia de Texto Hyper) y los más populares son Apache, Nginx y lighttpd.
Incluso las páginas web simples pueden requerir muchas solicitudes, que podrían ser archivos ordinarios como --contenido estático-- o --contenido dinámico-- generado desde varias fuentes. La función de un servidor HTTP es recopilar y enviar todos los datos solicitados al navegador, que a su vez organiza el contenido según lo definido por el documento HTML (Hyper Text Markup Language) recibido por el servidor, en conjunto a otros tipos de archivos que soporta el navegador, por lo que el renderizado de una página web implica operaciones realizadas en el lado del servidor y del cliente. Ambas partes pueden utilizar scripts personalizados para realizar tareas específicas. En el lado del servidor HTTP, es bastante común usar el lenguaje programación PHP. En el lado del cliente, JavaScript es el lenguaje de programación mas utilizado en el navegador web.
Los programas de servidores pueden proporcionar todo tipo de información, no es raro tener un programa de servidor que solicite información proporcionada por otros servicios, como es el caso cuando un servidor HTTP requiere información proporcionada por un servidor de base de datos.
Por ejemplo, cuando se solicita una página dinámica, el servidor HTTP suele consultar una base de datos para recoger toda la información necesaria y enviar el contenido dinámico de vuelta al cliente, del mismo modo que cuando un usuario se registra en un sitio web, el servidor HTTP recoge los datos enviados por el cliente y los almacena en una base de datos.
Una base de datos es un conjunto organizado de información. Un servidor de base de datos almacena contenido de manera formateada, lo que permite leer, escribir y vincular grandes cantidades de datos de manera confiable y a gran velocidad. Los servidores de bases de datos de código abierto se utilizan en muchas aplicaciones, no solo en Internet. Incluso las aplicaciones locales pueden almacenar datos conectándose a un servidor de base de datos local. El tipo más común de base de datos es la base de datos relacional, donde los datos se organizan en tablas predefinidas. Las bases de datos relacionales de código abierto más populares son MariaDB (derivado de MySQL) y PostgreSQL.
Datos compartidos (Data Sharing)
En las redes locales, como las que se encuentran en las oficinas y los hogares, es deseable que los ordenadores no sólo puedan acceder a Internet, sino que también puedan comunicarse entre sí. En ocasiones un ordenador puede actuar como un servidor y un cliente. Por ejemplo, cuando se desea acceder a los archivos de otro ordenador de la red (Supongamos, que se necesita acceder a un archivo almacenado en un ordenador de sobremesa desde un dispositivo portátil) sin la molestia de tener que copiarlo en una unidad USB o similar.
Entre máquinas Linux, NFS (Network File System) se utiliza a menudo para este tipo de funciones. El protocolo NFS es la forma estándar de compartir sistemas de archivos en redes equipadas únicamente con máquinas Unix/Linux con las que un ordenador puede compartir uno o varios de sus directorios con ordenadores específicos de la red. De este modo, NFS puede leer y escribir archivos en estos directorios. Incluso se puede usar NFS para compartir el árbol de directorios de todo un sistema operativo con clientes que lo usarán para arrancar (Bootear) desde el servidor. Estas computadoras, llamadas thin clients, se utilizan principalmente en redes grandes para evitar el mantenimiento de cada sistema operativo de cada máquina.
Si existen otros tipos de sistemas operativos conectados a la red, es necesario utilizar un protocolo de datos compartidos comprensible para todos ellos. Este requisito lo cumple el producto opensource conocido como Samba. Samba implementa un protocolo de datos compartidos a través de la red. Este fue originalmente diseñado para el sistema operativo MS Windows, pero hoy en día es compatible con todos los principales sistemas operativos. Con Samba los ordenadores de la red local no sólo pueden compartir archivos, sino también impresoras.
En algunas redes locales, la autorización dada al iniciar sesión en una estación de trabajo es otorgada por un servidor central, llamado controlador de dominio, conocido como domain controller, que gestiona el acceso a varios recursos locales y remotos. El controlador de dominio es un servicio proporcionado por el Active Directory de Microsoft. Las estaciones de trabajo Linux pueden asociarse con un controlador de dominio mediante el uso de Samba o un subsistema de autenticación llamado SSSD. A partir de la versión 4, Samba también puede funcionar como un controlador de dominio en redes heterogéneas.
Si el objetivo es implementar una solución de computación en la nube (Cloud Computing) capaz de proporcionar varios métodos de compartir datos basados en web; deberá considerar dos alternativas: ownCloud y Nextcloud. Los dos proyectos son muy similares porque Nextcloud es un spin-off de ownCloud, lo cual no es inusual entre los proyectos de código abierto; a esto se le denomina fork. Ambos proporcionan las mismas características básicas: compartición y sincronización de archivos, espacios de trabajo colaborativos, calendario, contactos y correo, todo a través de interfaces de escritorio, móviles y web. Nextcloud también proporciona conferencias privadas de audio/vídeo, mientras que ownCloud se centra más en el intercambio de archivos y la integración con software de terceros. Muchas más características se proporcionan como plugins que pueden ser activados más tarde según sea necesario.
Tanto ownCloud como Nextcloud ofrecen una versión de pago con características adicionales y soporte extendido. Lo que los hace diferentes de otras soluciones comerciales es la capacidad de instalar Nextcloud o ownCloud en un servidor privado, de forma gratuita, evitando mantener datos confidenciales en un servidor desconocido. Como todos los servicios dependen de la comunicación HTTP y están escritos en PHP, la instalación debe realizarse en un servidor web configurado previamente, como Apache. Si considera instalar ownCloud o Nextcloud en su propio servidor, asegúrese de habilitar también HTTPS para cifrar todas las conexiones a su nube.
Administración de la red
La comunicación entre computadoras solo es posible si la red funciona correctamente. Normalmente, la configuración de la red se realiza mediante un conjunto de programas que se ejecutan en el router, encargados de configurar y comprobar la disponibilidad de la red. Para esto se utilizan dos servicios de red básicos: DHCP (Dynamic Host Configuration Protocol) y DNS (Domain Name System).
DHCP es responsable de asignar una dirección IP al host cuando se conecta un cable de red o cuando el dispositivo entra en una red inalámbrica. Al conectarse a Internet, el servidor DHCP del proveedor de servicios de Internet proporcionará una dirección IP al dispositivo solicitante. Un servidor DHCP es muy útil en las redes de área local para proporcionar automáticamente direcciones IP a todos los dispositivos conectados. Si DHCP no está configurado o si no funciona correctamente, sería necesario configurar manualmente la dirección IP de cada dispositivo conectado a la red, lo cual no es práctico entornos de redes grandes e inclusive pequeñas.
La dirección IP es necesaria para
comunicarse con otro dispositivo en una
red, pero es mucho más probable que las
personas recuerden los nombres de
dominio como www.lpi.org
que un número IP como 203.0.113.113.165
.
Sin embargo, el nombre de dominio por sí
solo no es suficiente para establecer la
comunicación a través de la red, por lo
que necesita ser traducido a una
dirección IP por un servidor DNS. La
dirección IP del servidor DNS es
suministrada por el servidor DHCP del
proveedor de servicios de Internet (ISP)
y es utilizada por todos los sistemas
conectados para traducir los nombres de
dominio a direcciones IP.
Las configuraciones de DHCP y DNS se pueden modificar ingresando a la interfaz web provista por el enrutador. Por ejemplo, es posible restringir la asignación de IP sólo a dispositivos conocidos o asociar una dirección IP fija a máquinas específicas. También es posible cambiar el servidor DNS proporcionado por el ISP por algunos servidores DNS de terceros, como los de Google o OpenDNS, en ocasiones pueden proporcionar respuestas más rápidas y funciones adicionales.
Lenguajes de programación
Todos los programas de los ordenadores (programas cliente y servidor, aplicaciones de escritorio y el propio sistema operativo) se realizan utilizando uno o más lenguajes de programación, ya sea un único archivo o un complejo sistema de cientos de archivos que el sistema operativo trata como una secuencia de instrucciones que deben ser interpretadas y ejecutadas por el procesador y otros dispositivos.
Existen numerosos lenguajes de programación para propósitos muy diferentes y los sistemas Linux proporcionan muchos de ellos. Como el software de código abierto también incluye las fuentes de los programas, los sistemas Linux ofrecen a los desarrolladores condiciones perfectas para entender, modificar o crear software de acuerdo con sus propias necesidades.
Cada programa comienza como un archivo de texto, llamado source code. Este código fuente está escrito en un lenguaje más o menos amigable con el ser humano que describe lo que está haciendo el programa. Un procesador no puede ejecutar directamente este código, por lo que en lenguajes de compilación el código fuente se convierte en un archivo binario (binary file) que puede ser ejecutado por el ordenador, mientras que un programa llamado compilador (compiler) se encarga de realizar la conversión del código fuente a una forma ejecutable. Dado que el binario compilado es específico para un tipo de procesador, es posible que el programa deba volver a compilarse para ejecutarse en otro tipo de computadora.
En lenguajes interpretados (interpreted languages), el programa no necesita ser compilado previamente, sino que un intérprete lee el código fuente y ejecuta su instrucción cada vez que se ejecuta el programa, lo que hace que el desarrollo sea más fácil y rápido, pero al mismo tiempo los programas interpretados tienden a ser más lentos que los compilados.
Aquí algunos de los lenguajes de programación más populares:
- JavaScript
-
JavaScript es un lenguaje de programación muy utilizado en páginas web, en sus orígenes, las aplicaciones JavaScript eran muy sencillas, como las rutinas de validación de formularios. Hoy en día, JavaScript es considerado un lenguaje de primera clase y se utiliza para crear aplicaciones muy complejas no sólo en la web, sino también en servidores y dispositivos móviles.
- C
-
El lenguaje de programación C está estrechamente relacionado con los sistemas operativos, en particular con Unix, pero se utiliza para escribir cualquier tipo de programa en casi cualquier tipo de dispositivo. Las grandes ventajas de C son la flexibilidad y la velocidad; el mismo código fuente escrito en C puede ser compilado para ejecutarse en diferentes plataformas y sistemas operativos con poca o ninguna modificación, sin embargo, después de ser compilado, el programa se ejecutará sólo en el sistema donde se compiló.
- Java
-
El aspecto principal de Java es que los programas escritos en este lenguaje son portables, lo que significa que el mismo programa puede ejecutarse en diferentes sistemas operativos. A pesar de su nombre, Java no está relacionado con JavaScript.
- Perl
-
Perl es un lenguaje de programación muy utilizado para procesar contenido de texto con un fuerte énfasis en las expresiones regulares, lo que hace de Perl un lenguaje adecuado para el filtrado y análisis de texto.
- Shell
-
El shell, en particular el Bash shell, no es sólo un lenguaje de programación, sino una interfaz interactiva para ejecutar otros programas. Los programas de Shell, conocidos como shell scripts pueden automatizar tareas complejas o repetitivas en el entorno de línea de comandos.
- Python
-
Python es un lenguaje de programación muy popular entre estudiantes y profesionales que no están directamente relacionados con la informática. Aunque tiene características avanzadas, Python es una buena manera de empezar a aprender programación por su enfoque fácil de usar.
- PHP
-
PHP es el lenguaje de programación más utilizado en el lado del servidor para generar contenido para la web, la mayoría de las páginas HTML en línea no son archivos estáticos, sino contenido dinámico generado por el servidor desde varias fuentes, como bases de datos. Los programas PHP — a veces sólo llamados páginas PHP o scripts PHP — se utilizan a menudo para generar este tipo de contenido. El término LAMP proviene de la combinación de un sistema operativo Linux, un servidor Apache HTTP, una base de datos MySQL (o MariaDB) y la programación PHP. Los servidores LAMP son una solución muy popular para la ejecución de servidores web.
C y Java son lenguajes compilados, para ser ejecutados por el sistema, el código fuente escrito en C se convierte en código binario de la máquina, mientras que el código fuente Java se convierte en bytecode ejecutado en un entorno de software especial llamado Java Virtual Machine. JavaScript, Perl, Shell script, Python y PHP son lenguajes interpretados, también llamados lenguajes de script.
Ejercicios guiados
-
Para cada uno de los siguientes comandos, identifique si está asociado con el sistema de empaquetado Debian (Debian packaging system) o con el sistema de empaquetado Red Hat (Red Hat packaging system) :
dpkg
rpm
apt-get
yum
dnf
-
¿Qué comando se puede usar para instalar Blender en Ubuntu? Después de la instalación, ¿Cómo se puede ejecutar el programa?
-
¿Qué aplicación del paquete LibreOffice se puede utilizar para trabajar con hojas de cálculo?
-
¿Qué navegador web de código abierto se utiliza como base para el desarrollo de Google Chrome?
-
SVG es un estándar abierto para gráficos vectoriales. ¿Cuál es la aplicación más popular para editar archivos SVG en sistemas Linux?
-
Para cada uno de los siguientes formatos de archivo, escriba el nombre de una aplicación capaz de abrir y editar el archivo correspondiente:
png
doc
xls
ppt
wav
-
¿Qué paquete de software permite compartir archivos entre máquinas Linux y Windows a través de la red local?
Ejercicios exploratorios
-
Usted sabe que los archivos de configuración se mantienen incluso si el paquete asociado se elimina del sistema. ¿Cómo puede eliminar automáticamente el paquete llamado cups y sus archivos de configuración de un sistema basado en DEB?
-
Suponga que tiene muchos archivos de imagen TIFF y desea convertirlos a JPEG. ¿Qué paquete de software podría utilizarse para convertir esos archivos directamente en la línea de comandos?
-
¿Qué paquete de software necesita instalar para poder abrir documentos de Microsoft Word enviados por un usuario de Windows?
-
Cada año, linuxquestions.org promueve una encuesta sobre las aplicaciones Linux más populares. Visite https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ y descubra qué aplicaciones de escritorio son las más populares entre los usuarios experimentados de Linux.
Resumen
En esta lección usted aprendió:
-
Los sistemas de gestión de paquetes utilizados en las principales distribuciones de Linux.
-
Aplicaciones de código abierto que pueden editar formatos de archivo populares.
-
Los programas de servidor subyacentes a muchos servicios importantes de Internet y de redes locales.
-
Lenguajes de programación comunes y sus usos.
Respuestas a los ejercicios guiados
-
Para cada uno de los siguientes comandos, identifique si está asociado con el sistema de empaquetado Debian (Debian packaging system) o con el sistema de empaquetado Red Hat (Red Hat packaging system) :
dpkg
Debian sistema de empaquetado
rpm
Red Hat sistema de empaquetado
apt-get
Debian sistema de empaquetado
yum
Red Hat sistema de empaquetado
dnf
Red Hat sistema de empaquetado
-
¿Qué comando se puede usar para instalar Blender en Ubuntu? Después de la instalación, ¿cómo se puede ejecutar el programa?
El comando
apt-get install blender
. El nombre del paquete debe especificarse en minúscula. El programa se puede ejecutar directamente desde el terminal con el comandoblender
o seleccionándolo en el menú de aplicaciones. -
¿Qué aplicación del paquete LibreOffice se puede utilizar para trabajar con hojas de cálculo electrónicas?
Calc
-
¿Qué navegador web de código abierto se utiliza como base para el desarrollo de Google Chrome?
Chromium
-
SVG es un estándar abierto para gráficos vectoriales. ¿Cuál es la aplicación más popular para editar archivos SVG en sistemas Linux?
Inkscape
-
Para cada uno de los siguientes formatos de archivo, escriba el nombre de una aplicación capaz de abrir y editar el archivo correspondiente:
png
Gimp
doc
LibreOffice Writer
xls
LibreOffice Calc
ppt
LibreOffice Impress
wav
Audacity
-
¿Qué paquete de software permite compartir archivos entre máquinas Linux y Windows a través de la red local?
Samba
Respuestas a los ejercicios exploratorios
-
Usted sabe que los archivos de configuración se mantienen incluso si el paquete asociado se elimina del sistema. ¿Cómo puede eliminar automáticamente el paquete llamado cups y sus archivos de configuración de un sistema basado en DEB?
apt-get purge cups
-
Suponga que tiene muchos archivos de imagen TIFF y desea convertirlos a JPEG. ¿Qué paquete de software podría utilizarse para convertir esos archivos directamente en la línea de comandos?
ImageMagick
-
¿Qué paquete de software necesita instalar para poder abrir documentos de Microsoft Word enviados por un usuario de Windows?
LibreOffice - OpenOffice
-
Cada año, linuxquestions.org promueve una encuesta sobre las aplicaciones Linux más populares. Visite https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ y descubra qué aplicaciones de escritorio son las más populares entre los usuarios experimentados de Linux.
Navegador web: Firefox. Cliente de correo: Thunderbird. Reproductor de medios: VLC. Editor gráfico: GIMP.