Introducción a Linux

Anuncio
Programación Bajo Plataformas Abiertas
Profesor: Francisco Siles Canales
Estudiante: Hugo Zúñiga Calvo
Carné: A96988
Tarea 1
95/100
Introducción a Linux
1) ¿Qué es Linux? Mencione 5 corporaciones o empresas internacionales que utilizan Linux.
Menciones 3 empresas en el mundo que brinden servicios de mantenimiento, instalación y
desarrollo de software libre. 8/10
Linux es un sistema operativo, compatible con UNIX. El cual posee dos características
que lo diferencian del resto de sistemas que se pueden encontrar en el mercado, la primera es que
es libre, lo cual significa que no se debe pagar licencia y la segunda es que el sistema viene
acompañado por el código fuente. El software libre suele ser gratuito, pero no es un requisito ... hay
distribuciones de GNU/Linux que son de pago.
El sistema se compone del núcleo (kernel) más un gran número de bibliotecas que
permiten su utilización. Muchos de estos programas han sido posibles gracias al proyecto GNU.
Gracias a esto el sistema ha sido diseñado y programado por multitud de programadores
alrededor del mundo. La definición de software libre es más amplia ... libertad de copiar, distribuir,
modificar ...
Las arquitecturas en las que se puede utilizar Linux son Intel 386, 486, Pentium, Pentium
Pro, entre otras. Algunas corporaciones que utilizan Linux para llevar a cabo sus operaciones son
Boeing, Mercedes-Benz, AMD, Sony y Nokia. Asimismo algunas empresas que den soporte y
mantenimiento al software de Linux son IBM, HP y Red Hat.
2) ¿Qué es GNU? 9/10
GNU es un sistema operativo similar a Unix que es software libre y respeta su libertad. El
proyecto GNU se inició en 1984 para desarrollar el sistema GNU. Este sistema debido a que es
similar a Unix se construye a partir de un conjunto de aplicaciones, bibliotecas y herramientas de
programación, además de un programa para alojar recursos e interactuar con el hardwarek
denominado núcleo. Debido a que el núcleo propio de GNU está lejos de poder utilizarse en el
día a día, éste se usa habitualmente con un núcleo denominado Linux.
Le faltó hablar del papel de Richard Stallman.
3) ¿Qué es una distribución de Linux? Mencione 10 distribuciones y comente sus principales
características, además de las principales diferencias entre ellas. 15/15
Una distribución es una recopilación de programas y ficheros organizados y preparados
para su instalación. Estas distribuciones se pueden obtener a través de Internet, y estos paquetes
contendrán todo lo necesario para instalar un sistema Linux bastante completo y en la mayoría de
los casos un programa de instalación que facilita la tarea de instalarlo.
Algunas de las distribuciones de Linux que se pueden obtener actualmente son:
a) Ubuntu:
 Seguridad: Ubuntu provee seguridad para sus usuarios, ya que construye
firewalls para evitar el acceso de entes externos a la información que se
encuentra dentro del computador.
 Compatible: Es compatible con una gran cantidad de sistemas digitales como
MP3, desktops, cameras, entre otros; Además es compatible con Windows.
 Rapidez: Ubuntu se carga rápidamente en muchas computadoras, ya que no
permite el acceso de programas de prueba o innecesarios.
 Accesible: Es un OS gratuito, además tiene traducción en más de 25 idiomas.
 Basada en Debian.
 Por defecto el escritorio es GNOME
b) Debian:











Mantenido por Usuarios: Si existe algún bug dentro del OS simplemente se
arregla.
El mejor sistema de empaquetamiento: Debian tiene una gran cantidad de
paquetes que se encargan de gestionar los recursos del sistema de forma que
se eviten conflictos de software.
Instalación sencilla: La instalación del OS es sencilla, ya que se puede llevar a
cabo directamente de un CD o incluso de la WEB.
Paquetes bien integrados: La integración de los paquetes de Debian lo
diferencia de las demás distribuciones. Ya que todo el software es
empaquetado en un grupo coherente, todos los paquetes se pueden encontrar
en una única locación, además se puede asegurar que todas las dependencias
se han tratado de manera correcta.
Codigo Fuente: Debian proporciona el código fuente de manera de forma que
los desarrolladores de software tengan la libertad de hacerle las correcciones
necesarias.
Actualizaciones sencillas: Gracias al sistema de empaquetamiento las
actualizaciones del sistema se llevan a cabo de manera sencilla.
Soporta múltiples arquitecturas y kernels
Sistema de rastreo de “bugs”: Debian pone a disposición pública el sistema de
rastreo de bugs, de forma que los usuarios tengan la libertad de reportar
“bugs” y saber la forma en la que se pueden solucionar.
Estabilidad: Los sistemas operativos Debian trabajan de forma muy estable,
por lo cual no hacen rebooting al menos de que ocurra una falla de potencia o
una actualización de hardware.
Rápido y fácil en memoria: El sistema operativo corre de forma rápida, ya que
está basado en GNU/Linux.
Los controladores para una gran cantidad de hardware son escritos por
usuarios de GNU/Linux.

c) Fedora:







Utiliza GNOME como entorno de escritorio por defecto y utiliza paquetes deb
para las aplicaciones
Gratuito: Es totalmente gratuito y consiste de programas cien porciento libres
de código abierto. Sin problema de antivirus o spyware, ya que está basado en
Linux.
Comunidad mundial: Construido por una comunidad global de
desarrolladores, por lo que existe un sitio web local para cada quien.
Poderoso: Fedora es la base de Linux para empresas de Red Hat, el cual es un
poderoso sistema operativo para empresas.
Ilustraciones agradables: Tiene ilustraciones agradables, ya que cuenta con
una gran cantidad de wallpaper.
Utiliza GNOME como escritorio por defecto.
Se basa en paquetes RPM, para cuya gestión usa Yum.
No instala por defecto códecs para formatos propietarios como MP3 o MPEG,
ni software propietario como Adobe.
d) Red Hat:
 Seguro: Basado en la fama de Linux sobre la seguridad de sus sistemas, Red
Hat ha desarrollado un esquema de defensa para mejorar la seguridad de las
computadoras, para esto se han utilizado las siguientes características:
aplicaciones más segura, protección contra fallas de seguridad comúnmente
utilizada y soporte de autentificación vía smart card.
 Administración sencilla: Una herramienta simple y veloz permite a los
administradores del sistema para manejar complejos sistemas de
computadoras distribuidos desde una única consola basada en web.
 Interoperabilidad: Las aplicaciones incluidas en el Red Hat Enterprise Linux
Desktop son compatibles con formatos de Microsoft.
 Aplicaciones de productividad incluidas: Red Hat incluye los aplicaciones
más populares sin cargo adicional.
 El Sistema operativo no es gratuito, ya que se debe pagar una licencia de
soporte.
e) OpenSuse:
 Interoperabilidad: Suse es compatible con Windows, Mac y Unix.
 No es gratuito.
 Office Suite completa
 Sencillo de usar.
f) Slackware:
 Está basado en 2.6 Linux kernel series y la librería GNU C versión 2.7.



g) Gentoo:




h) Kubuntu:





Contiene un programa de instalación sencilla una gran cantidad de
documentación online y un paquete de sistema de menú-driven.
La instalación completa le provee con ambiente de desarrollo en X Window
Systrem, C/C++ y Perl; así como de utilidades de networking, mail server,
news server, web server.
Puede correr en 486 sistemas incluso las más nuevas máquinas basadas en la
arquitectura x86.
Es un sistema operativo gratis basado en FreeBSD.
Puede ser optimizado y customizado de manera automática.
Es un sistema seguro y extremadamente configurable.
Se puede compilar u optimizar el sistema completamente desde cero.
Posee una interfaz gráfica muy estética.
Permite compartir cualquier archivo en una forma simple e intuitiva.
Es seguro, ya que contiene pre-instalado Konqueror
Kubuntu contiene un reproductor de música y de video, los cuales son
sencillos de usar.
Contiene un office suite completo y profesional.
i) Mandriva:
 Posee un ambiente más simple y mejor con un tema gráfico que incluye una
gran cantidad de íconos.
 Posee un smart desktop, que administra la información y recibe un motor back
end más rápido
 Posee una suite de libre office que se suministra dentro de loa paquetes de
instalación
 Contiene Firefox como motor de búsqueda incluido en los paquetes de
instalación.
 Utiliza KDE como entorno de escritorio y urpmi como gestor de paquetes
j) Mint:






Tiene un soporte completo de multimedia y es extremadamente sencillo de
utilizar.
Es gratis y de código abierto.
Se anima a los usuarios a enviar comentarios al proyecto, de forma que sus
ideas puedan ser utilizados para mejorarlo
Basado en Debian y Ubuntu.
Es seguro y confiable.
Instala por defecto diversos códecs propietarios como el plugin de Java o el
plugin de Flash.

El entorno de escritorio que se utiliza por defecto es el GNOME.
4) ¿Quién es el dueño de Linux? 8/10
Linux no lo posee nadie, ya que este es parte de la iniciativa del proyecto GNU de
producir un sistema operativo basado totalmente en software libre, de manera que nadie pueda
reclamar los derechos sobre éste. Sin embargo existen distribuciones de Linux las cuales tienen
un costo debido a que se incluye un rubro de soporte el cual debe ser cubierto por la persona
interesada en obtener el OS.
Linux no es parte de la iniciativa de GNU, son proyectos separados!
5) Investigar las siguientes aplicaciones. ¿Cuál es la función de cada una de ellas? 10/10

Firefox: Firefox es una aplicación que provee un navegador web y trabaja bajo el
paradigma de código abierto, por lo que su descarga es completamente gratuita.

k3b: Es una aplicación rica en imágenes y sencilla de utilizar para quemar CD´s. y
consta de tres partes el proyecto, las herramientas y el contexto sensitivo a acciones de
media.

Kate: es un editor multidocumento el cual es parte de KDE, debido a esto envía los
archivos con transparencia de red.

Gimp: es un programa de manipulación de imágenes, por lo que se pueden llevar a cabo
tareas como retoque de fotos, composición de imágenes y autoría de imágenes.

XawTv: es un programa que se utiliza para ver la televisión que usa el driver bttv o
video4linux, contiene utilidades para la consola que permiten grabar imágenes y
películas AVI.

Wine: es un programa que permite correr software de Windows en otros sistemas
operativos. Con éste se puede instalar y correr todas las aplicaciones tal y como lo hacen
en Windows.

VirtualBox: es una herramienta de virtualización basada en arquitectura x86. Por lo que
lo que hace es crear una máquina virtual que simule la acción de estas arquitecturas.

Kino: es un editor de DV no linear. Tiene una excelente integación con IEEE-1394 para
captura, control VTR y grabación hacia la cámara. Captura video al disco en formato
AVI y Raw DV.

VLC: es un reproductor multimedia de plataforma cruzada que es gratis y de código
abierto.

Kdenlive: es un editor de video multi-track.
6) Investigar los siguientes comandos de consola. Explicar en detalle cada uno de ellos.
Mencione y explique un ejemplo de utilización para cada uno de ellos: 20/20

cd: este comando sirve para cambiar entre directodios. Si no tiene parámetros, nos coloca
en nuestro directorio personal, otros parámetros son: 1) “/” nos lleva al directorio raíz,
2)”..” nos lleva a un directorio arriba y 3) – nos lleva al directorio en el cual nos
encontrábamos antes de hacer el anterior cd.
Ejemplo:
C:\Users\hzuniga>cd C:\Users\hzuniga\Desktop
C:\Users\hzuniga\Desktop>
A partir de este ejemplo, se puede observar que inicialmente el sistema se encontraba
trabajando dentro del directorio C:\Users\hzuniga y que al utilizar cd el sistema pasó a
trabajar dentro del directorio C:\Users\hzuniga\Desktop.

ls: es un comando que permite listar los archivos dentro de un directorio, la sintaxis es
ls [opciones] [archivo], las opciones son: 1) –a: lista todos los archivos incluyendo
aquellos que comienzan con “.”, 2) –d: Lista el nombre del directorio en vez de los
archivos contenidos en él, 3) –l: Lista los archivos con muchomás detalle, especificando
para cada archivo sus permisos, el número de enlaces rígidos, el nombre del propietario,
el grupo al que pertenece, el tamaño en bytes y la fecha de la última modificación, 4) –r:
Invierte el orden de listado de los archivos, 5) –s: Muestra el tamaño de cada archivo en
bloques de 1024 bytes a la izquierda del nombre, 6) –h: Muestra los tamaños de archivo
en términos de kilobytes, 7) –t: Lista los archivos ordenados por el tiempo de
modificación en vez de ordenarlos alfabéticamente, 8) –A lista todos los archivos excepto
el “.” y el “..”, 9) –R: Lista los contenidos de todos los directorios recursivamente y
10) –S: Ordena el listado por el tamaño de los archivos.
Ejemplo:
ls –a C:\Users\hzuniga\Desktop
Con base en este ejemplo se puede observar que el sistema despliega todos los archivos
contenidos dentro del directorio C:\Users\hzuniga\Desktop, por lo que se puede observar
que despliega correctamente los archivos.

apt-get: Este archivo se utiliza para instalar programas en Ubuntu, entre las órdenes que
soporta están: 1) update: Actualiza los repositorios, 2) upgrade: Busca aptualizaciones de
software, 3) install: Instala el paquete seleccionado, 4) remove: Elimina el paquete
seleccionado, 5) dist-upgrade: Actualiza la distribución y 6) autoclean: Elimina los
archivos descargados contiguos.
Ejemplo:
# apt-get install eclipse
Con esta línea de comando se le dice al sistea que instale el paquete de aplicación del
editor eclipse.

apt-cache: Este es un comando que se utiliza para buscar información de los paquetes
que se encuentran disponibles, algunas opciones son: 1) search: busca paquetes
relacionados con el término que se desea buscar, 2) show: permite observar información
específica de un paquete que deseamos observar
Ejemplo:
apt-cache search atari
Con base en este ejemplo, al poner este comando se despliegan los paquetes de Linux que
tienen algo que ver con atari, de forma que el usuario pueda luego decidir cuáles desea
instalar.

dpkg-reconfigure: este comando se utiliza para gestión de paquetes, de forma más
especifica para reconfigurar un paquete que haya sido previamente instalado en Ubuntu.
Ejemplo:
dpkg-reconfigure locales
En este caso al ejecutar el comando, el sistema lo que hace es abrir el paquete locales
para habilitar una reconfiguración de idioma (que es lo que trae el paquete locales), de
forma tal que se puede volver a definir el idioma deseado.

aptitude: es un comando que sirve para instalar paquetes, éste es más potente que el
comando apt-get, debido a que soluciona dependencias y recuerdas librerías descargadas
desinstalándolas si están en desuso, algunos de los diferentes usos que se le puede dar es:
1) install: instala el paquete que se indique, 2) reinstall: reinstala el paquete que se
indique, 3) remove: borra el paquete que se indique, 4) purge: borra el paquete junto con
sus archivos de configuración, 5) search: busca un determinado que contenga el nombre o
la descripción, 6) show: muestra la información disponible sobre determinado paquete, 7)
update: actualiza la lista de paquetes que estén disponibles y 8) upgrade: actualiza el
sistema sin eliminar nada.
Ejemplo:
aptitude install hugo
En este ejemplo al ejecutar este comando, la computadora procederá a instalar en el
sistema el paquete hugo.

ssh: este comando permite conectarse de forma segura y cifrada con otro sistema sobre
una red no segura.
Ejemplo:
ssh [email protected] ls
Mediante este comando, lo que hace la máquina es establecer una comunicación con el
host servidor.dominio.es y lista los archivos que se encuentran en su directorio actual.

scp: El comando scp permite copiar ficheros entre dos máquinas. Utiliza ssh para la
transmisión de la información por lo que ofrece la misma seguridad que el ssh. De la
misma manera utiliza los métodos de autenticación de ssh. El formato que se utiliza es:
scp user@host1:file user@host2:file2.
Ejemplo:
scp /tmp/file [email protected]:/tmp
En este caso la computadora lo que hace es copiar el fichero /tmp del otro servidor al
fichero /tmp/file del usuario actual.

lsmod: despliega la información referente a los mádulos que están habilitados por el
“kernel”.
Ejemplo:
# lsmod
En este caso lsmod lo que hace es mostrar todos los archivos que están habilitados por el
kernel.

ps: muestra por pantalla un listado de los procesos que se están ejecutando en el sistema,
si no se añade ningún parámetro, ps mostrará los procesos del usuario con el que estamos
logueados. Por otra parte, los parámetros más básicos a conocer son los siguientes: -aux:
Lista los procesos de todos los usuarios con información añadida, -u: lista la información
del proceso como por ejemplo el usuario que lo está corriendo, la actualización de CPU y
memoria, -x: Lista los procesos de todas las terminales y usuarios, -l: muestra la
información que incluye el UID y el valor “nice” y –forest: muestra el listado de procesos
en un formato tipo árbol que permite ver como los procesos interactúan entre sí.
Ejemplo:
ps aux
Este comando muestra todos los procesos que se están llevando a cabo en el CPU, por lo
que también se muestra cierta información sobre estos que es relevante para el usuario.

grep: permite buscar, dentro de los archivos, las líneas que concuerdan con un patrón, en
caso de que no se especifique ningún archivo, toma la entrada estándar.
Ejemplo:
grep „hscripts‟ file1.txt
Este ejemplo permite que la computadora muestre todas las líneas que contienen la
palabra hscripts dentro de ellas.

Bash: es un programa que permite introducir comandos en una consola y que ésta los
lleve a cabo.

du: se usa para informar cuánto espacio en disco ocupa un archivo o directorio. Las
opciones que se tienen son : 1) –a: muestra el espacio de cada archivo, 2) –k Escribe el
tamaño de los archivos en unidades de 1024 bytes, 3) –s: informa sólo de la suma total de
cada uno de los archivos especificados, 4) –L: Procesa los enlaces simbólicos usando el
archivo o directorio al que el enlace simbólico referencia, en vez de el enlace en sí
mismo.
Ejemplo:
#du hugo
El ejemplo anterior permite que la consola muestre el tamaño de todos los archivos
dentro del directorio hugo que se encuentra en la memoria principal.
7) Investigar los siguientes archivos de sistema. Explicar en detalle la función de cada una
de ellos: 15/15






/etc/sources.list: es un archivo hallado en las distribuciones GNU/Linux derivadas de
Debian donde se enlistan las fuentes o repositorios disponibles de los paquetes de
software candidatos a ser: actualizados, instalados, removidos, buscados, sujetos a
comparación de versiones, etc.
/etc/fstab: es un archivo de configuración que contiene información de todas las
particiones y dispositivos de almacenamiento en la computadora. También contiene
información de donde las particiones y dispositivos de almacenamiento deberían ser
montados y como.
/etc/grub/menú.lst: es un gestor de arranque, o sea es lo primero que se carga cuando se
inicia la computadora. Permite tener diferentes sistemas operativos, y diferentes versiones
de ellos, en el mismo disco duro.
/etc/passwd: el contenido de este fichero determina quien puede acceder al sistema de
manera legítima y que se puede hacer una vez dentro del sistema. Este fichero es la
primera línea de defensa del sistema contra accesos no deseados. Debe mantenerse
escrupulosamente y libre de errores y fallos de seguridad. En él se tienen registrados
todas las cuentas de usuario así como las claves de accesos y privilegios.
/etc/group: este archivo contiene una lista de los usuarios que pertenecen a los diferentes
grupos. De hecho, cada vez que un gran número de usuarios puede tener acceso al
sistema, frecuentemente se les ubica en grupos diferentes, cada uno de los cuales posee
sus propios derechos de acceso a los archivos y directorios.
/etc/network/interfaces: este archivo contiene todas las configuraciones de las interfaces
de red para Ubuntu y Debian. Dentro de estos archivos se configura la forma en la cual el
sistema se conecta a la red.




/etc/resolv.conf: este archivo es el archivo de resolución de configuración. Se utiliza para
configurar el acceso de cliente al internet domain server. Este archivo define cual nombre
de servidor usar.
/var/log/syslog: Syslog es un log del sistema y del kernel que nos puede dar importante
información de eventos que suceden en el sistema y en sus programas. Syslog provee
incluso alguna llamada para que los programas que corren en el sistema logeen en el
propio syslog.
/proc/versión: Este archivo no muestra el nombre de la versión actual del sistema
operativo sino que muestra las especificaciones de la versión del kernel del Linux usada
en la distribución y confirma la versión del compilador GCC usado para construirlo.
/proc/cpuinfo: Este archivo muestra la información del CPU que se encuentra dentro del
computador en el cual está instalado Linux.
Bibliografía
10/10
1. Linux-es. (1998). Recuperado el 12 de marzo de 2012, de http://www.linuxes.org/distribuciones
2. PillateUnLinux. (2000). Recuperado el 12 de marzo de 2012, de
http://www.pillateunlinux.com/lista-de-companias-y-entidades-que-usan-gnulinux/
3. 120% Linux. (2007). Recuperado el 12 de marzo de 2012, de
http://120linux.com/distribuciones/
4. Debian org. (s.f.). Debian. Recuperado el 12 de marzo de 2012, de
http://www.debian.org/index.es.html
5. fedora. (s.f.). Fedora Project. Recuperado el 12 de marzo de 2012, de
http://fedoraproject.org/
6. Free Software Foundation. (1996). GNU Operating System. Recuperado el 12 de marzo
de 2012, de www.gnu.org/home.es.html
7. Fuentes, R. A. (s.f.). Comandos Básicos de Consola . Recuperado el 12 de marzo de
2012, de http://ecsl2010.softwarelibre.ca/sites/ecsl2010.softwarelibre.ca/files/bash.pdf
8. Gimp Org. (s.f.). Gimp. Recuperado el 12 de marzo de 2012, de http://www.gimp.org/
9. Hscripts.com. (s.f.). Los Comandos en Linux. Recuperado el 12 de marzo de 2012, de
http://es.hscripts.com/tutoriales/linux-commands/du.html
10. K3B. (s.f.). K3B. Recuperado el 12 de marzo de 2012, de http://www.k3b.org/
11. kate org. (s.f.). kate. Recuperado el 12 de marzo de 2012, de http://kate-editor.org/
12. Kino project. (s.f.). Kino. Recuperado el 12 de marzo de 2012, de http://www.kinodv.org/
13. Kubuntu. (s.f.). Kubuntu. Recuperado el 12 de marzo de 2012, de
http://www.kubuntu.org/feature-tour
14. Linux Mint. (s.f.). Mint. Recuperado el 12 de marzo de 2012, de
http://www.linuxmint.com/index.htmlI
15. Mandriva. (s.f.). Mandriva. Recuperado el 12 de marzo de 2012, de
http://www.mandriva.com/en/linux/features/
16. Mundo Geek. (s.f.). Recuperado el 12 de marzo de 2012, de
http://mundogeek.net/archivos/2009/09/30/las-10-distros-linux-mas-populares/
17. Nix Craft. (s.f.). Ubuntu Linux Networking. Recuperado el 12 de marzo de 2012, de
http://www.cyberciti.biz/faq/setting-up-an-network-interfaces-file/
18. Osmosis Latina. (s.f.). Comandos estándares Linux. Recuperado el 12 de marzo de 2012,
de http://www.osmosislatina.com/linux/comandos.htm
19. Red Hat. (s.f.). Red Hat. Recuperado el 12 de marzo de 2012, de
http://www.redhat.com/products/enterprise-linux/desktop/
20. Slackware. (s.f.). Slackware. Recuperado el 12 de marzo de 2012, de
http://www.slackware.com/
21. Ubuntu. (s.f.). Guía Ubuntu. Recuperado el 12 de marzo de 2012, de http://www.guiaubuntu.org/index.php?title=Comandos
22. Ubuntu. (s.f.). Ubuntu. Recuperado el 12 de marzo de 2012, de http://www.ubuntu.com/
23. Virtual Box. (s.f.). Virtual Box. Recuperado el 12 de marzo de 2012, de
https://www.virtualbox.org/
24. VLC org. (s.f.). Videolan. Recuperado el 12 de marzo de 2012, de
http://www.videolan.org/vlc/
25. Wine. (s.f.). Wine. Recuperado el 12 de marzo de 2012, de http://www.winehq.org/
Descargar