UNIVERSIDAD DE COSTA RICA ESCUELA DE INGENIERÍA

Anuncio
UNIVERSIDAD DE COSTA RICA
ESCUELA DE INGENIERÍA ELÉCTRICA
Programación Bajo Plataformas Abiertas
IE-0117
Profesor: Francisco Siles Canales
Asistente: Félix Suarez Bonilla
Tarea 1
98/100
Grupo 1
Estudiante: Christian Chaves Bejarano A81740
1. ¿Qué es Linux? Mencione 5 corporaciones o empresas internacionales utilizando
Linux. Mencione 3 empresas en el mundo que brinden servicios de mantenimiento
instalación y desarrollo sobre software libre.
8/10
Linux es un sistema operativo, compatible Unix. Dos características muy peculiares lo
diferencian del resto de sistemas que podemos encontrar en el mercado, la primera, es que es
libre, esto significa que no tenemos que pagar ningun tipo de licencia a ninguna casa
desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene
acompañado del código fuente. La definición de software libre es más amplia ... es
que respeta la libertad de los usuarios ...
software
El sistema lo forman el núcleo del sistema (kernel) más un gran número de programas /
bibliotecas que hacen posible su utilización. Muchos de estos programas y bibliotecas han sido
posibles gracias al proyecto GNU, por esto mismo, muchos llaman a Linux, GNU/Linux, para
resaltar que el sistema lo forman tanto el núcleo como gran parte del software producido por el
proyecto GNU. El software libre suele estar disponible en forma gratuita, pero no
requisito ... puede ser de pago y ser distribuido comercialmente.
Linux se distribuye bajo la GNU General Public License por lo tanto, el código fuente tiene
que estar siempre accesible y cualquier modificación ó trabajo derivado tiene que tener esta
licencia.
es un
Linux hace su aparición a principios de la década de los noventa, era el año 1991 y por
aquel entonces un estudiante de informática de la Universidad de Helsinki, llamado Linus
Torvalds. Hoy en día el sistema continúa siendo diseñado y programado por multitud de
programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la
coordinacion de Torvalds.
Empresas utilizando Linux:
Amazon: amazon web service implementa el sistema operativo Linux
Intel: esta empresa implenta su propio sistema operativo basado en Linux.
AMD: apuesta por la incorporación de Linux en sus nuevos controladores con la finalidad de
competir con sus grandes rivales.
Hewlett-Packard: HP hizo pública una importante declaración destinada a proteger a sus
clientes y a reafirmar su liderazgo y compromiso con Linux.
Sony Entertainment: el videojuego Play Station III fabricado por esta empresa de renombre
mundial posee su propio sistema operative Linux.
Empresas en el mundo que brinden servicios de mantenimiento instalación y
desarrollo sobre software libre.
Oracle: Oracle ofrece un conjunto de sistemas de hardware y software de negocios integrados
y optimizados que ayuda a las organizaciones a superar la complejidad y empezar a innovar.
Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.
IBM: Esta empresa está comprometida a brindar a los clientes el hardware que mejor se
adapte a sus cargas de trabajo implementando un entorno operativo Linux con el fin de reducir
costos.
Xtech: XTech brinda asesoría técnica y realiza migraciones a software libre, generalmente
desde software propietario.
2. ¿Qué es GNU?
10/10
GNU es un proyecto iniciado por Richard Matthew Stallman con el fin de crear un sistema
operativo similar a UNIX pero con licencia que permitiese el acceso al código fuente, además
de la distribución y copia que pudiese ser utilizado para cualquier fin. EL GNU es el acrónimo
recursivo de “GNU is Not Unix”, una costumbre muy popular entre los hackers informáticos para
nombrar diferentes proyectos o diseños.
Stallman cuenta así su propia desición:
“La elección fácil era unirme al mundo del software propietario, firmar los acuerdos de no
revelar y prometer que no iría en ayuda de mi amigo hacker. Es muy probable que desarrollara
software que se entregaría bajo acuerdos de no revelar y de esa manera incrementara también
las presiones sobre otra gente para que traicionaran a sus compañeros. Podría haber hecho
dinero de esta manera, y talvez me hubiese divertido escribiendo código. Pero sabía que al
final de mi carrera al mirar atrás a los años construyendo paredes dividir a la gente, sentiría que
usé mi vida para empeorar el mundo” Stallman, tomado de [1]
Muy bien!
El proyecto GNU tuvo una gran acogida. Cientos de programadores de todo el mundo
se identificaron con su manifiesto fundacional y comenzaron a colaborar y producir
componentes del futuro sistema operativo libre.
3. ¿Qué es una distribución de Linux? Menciones 10 distribuciones de Linux y
comente sus principales características, además de las principales diferencias
entre ellas.
15/15
Por su propio espíritu el software libre se ramifica en una serie de comunidades de usuarios
y programadores aglutinados en torno a proyectos surgidos de necesidades concretas. Este
modo de desarrollo produce una cierta dispersión del software disponible en cada momento y
no existe una entidad autorizada o centralizada responsable de GNU/Linux. No obstante para
que un sistema operativo funcione sin problemas y sea fácil de instalar es necesario un trabajo
de coordinación de sus distintos componentes: kernel, librerías aplicaciones de usuario,
entorno gráfico, etc. Este trabajo de configuración y mantenimiento se realiza en los sistemas
operativos libres bajo el soporte de las llamadas distribuciones.
Una distribución es por tanto un sistema GNU/Linux que integra kernel, un conjunto de
aplicaciones de sistema y una colección de programas de usuario listo para instalar. Son como
los helados que están hechos con la misma materia prima y los hay de muchos sabores. Cada
sabor sería una distribución GNU/Linux. Tomado de [1]
Muy bien!
Actualmente existen más de 300 disribuciones de GNU/Linux y su número es creciente en
la medida en que cada vez resulta más fácil hacer una distribución propia a partir de las
existentes. Entre ellas destacamos:
Ubuntu
Distribución basada en Debian, con lo que esto conlleva y centrada en el usuario final y
facilidad de uso. Muy popular y con mucho soporte en la comunidad. El entorno de escritorio
por defecto es GNOME.
REDHAT ENTERPRISE
Esta es una distribución que tiene muy buena calidad, contenidos y soporte a los usuarios por
parte de la empresa que la distribuye. Es necesario el pago de una licencia de soporte.
Enfocada a empresas.
FEDORA
Esta es una distribución patrocinada por RedHat y soportada por la comunidad. Facil de instalar
y buena calidad.
DEBIAN
Otra distribución con muy buena calidad, fundada en agosto de 1993 por Ian Murdock. El
proceso de instalación es quizás un poco más complicado, pero sin mayores problemas. Gran
estabilidad antes que últimos avances.
OpenSuSE
Otra de las grandes. Facil de instalar. Version libre de la distribucion comercial SuSE.
SuSE LINUX ENTERPRISE
Otra de las grandes. Muy buena calidad, contenidos
y soporte a los usuarios por parte de la empresa que la distribuye, Novell. Es necesario el pago
de una licencia de soporte. Enfocada a empresas.
SLACKWARE
Esta distribución es de las primeras que existio. Tuvo un periodo en el cual no se actualizo muy
a menudo, pero eso es historia. Es raro encontrar usuarios de los que empezaron en el mundo
linux hace tiempo, que no hayan tenido esta distribucion instalada en su ordenador en algun
momento.
GENTOO
Esta distribución es una de las unicas que incorporaron un concepto totalmente nuevo en
Linux. Es una sistema inspirado en BSD-ports. Podeis compilar/optimizar vuestro sistema
completamente desde cero. No es recomendable adentrarse en esta distribucion sin una buena
conexion a internet, un ordenador medianamente potente (si quereis terminar de compilar en un
tiempo prudencial) y cierta experiencia en sistemas Unix.
KUBUNTU
Distribución basada en Ubuntu, con lo que esto conlleva y centrada en el usuario final y
facilidad de uso. La gran diferencia con Ubuntu es que el entorno de escritorio por defecto es
KDE.
MANDRIVA
Esta distribución fue creada en 1998 con el objetivo de acercar el uso de Linux a todos los
usuarios, en un principio se llamo Mandrake Linux. Facilidad de uso para todos los usuarios.
4. ¿Quién es el dueño de Linux?
10/10
Si bien es cierto el creador y fundador de Linux fue en ese entonces un estudiante de
nombre Linus Torvalds, en la década de los 90, este sistema operativo es un claro ejemplo del
software libre que se rige bajo los términos de la GPL (General Public License), la cual es una
licencia creada por Free Software Foundation en 1989, la cual está orientada principalmente a
proteger la libre distribución, modificación y uso de software. Su propósito es declarar que el
software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que
restrinjan esas libertades a los usuarios.
5. Investigar las siguientes aplicaciones. ¿Cuál es la función de cada uno de ellos?
 Firefox: navegador de Internet multiplataforma desarrollado por Mozilla.
 K3b: acrónimo del inglés KDE Burn Baby Burn, es el grabador de CD y DVD oficial
del escritorio KDE. Es software libre, muy potente y completo. Pertenece al módulo
KDE Extragear, que le permite tener su propio ciclo de publicación diferente del
resto de KDE.
 Kate: Kate es un editor de textos para el entorno de escritorio KDE. Kate significa
KDE Advanced Text Editor, es decir Editor de textos avanzado para KDE.
10/10
 Gimp: herramienta de edición de imágenes con características similares a
Photoshop. Existe una versión portátil de GIMP que puede ser transportada y usada
directamente desde una memoria USB sin necesidad de instalarse en el ordenador.
 Xawtv: aplicación que permite mostrar canales de television mediante el manejo de
la tarjeta de televisión. Este soporta dispositivos en video4linux y la extensión
Xvideo.
 Wine: reimplementación libre de la API de Windows (Win16 y Win32), es decir, un
proyecto que permite ejecutar programas diseñados para Windows bajo sistemas
operativos de la familia Unix.
 VirtualBox: Sun xVM VirtualBox es un software de virtualización para arquitecturas
x86 que fue desarrollado originalmente por la empresa alemana Innotek GmbH, pero
que pasó a ser propiedad de la empresa Sun Microsystems en febrero de 2008
cuando ésta compró a innotek. Por medio de esta aplicación es posible instalar
sistemas operativos adicionales, conocidos como “sistemas invitados”, dentro de
otro sistema operativo “anfitrión”, cada uno con su propio ambiente virtual. Por
ejemplo, se podrían instalar diferentes distribuciones de GNU/Linux en VirtualBox
instalado en Windows XP o viceversa.
 Kino: es un editor de vídeo digital para Linux que permite capturar vídeo de una
cámara DV, recortar los clips creados, añadir algunos efectos y exportar a formatos
como MPEG-1, MPEG-2, VCD, SVCD o DVD.
 Vlc: reproductor multimedia multiplataforma y de código abierto que permite
reproducir prácticamente todos los formatos de vídeo y audio más utilizados en la
actualidad (MPEG, DivX, WMV, AVI, MOV, MP4, MKV, FLV, MP3, OGG…).
 Kdenlive: Un potente editor de video no lineal para entornos de escritorio KDE.
Kdenlive tiene soporte de todos los formatos FFmpeg (tal como MOV, AVI, WMV,
MPEG,XviD, y FLV), y también soporta las razones de aspecto 4:3 y 16:9 para PAL,
NTSC y varios estándares HD, incluyendo HDV. El video puede exportarse a
dispositivos DV, o escribirse en DVD con capítulos y un menú simple.
6. Investigar los siguientes comandos de consola. Explicar en detalle cada uno de
ellos. Menciones y explique un ejemplo de utilización para cada uno de ellos.
20/20
 Cd
Change directory: cambiar directorio. Podemos usarlo con rutas absolutas o relativas. En las
absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si
escribimos en consola…
$ cd /etc/apt
…nos llevará a esa carpeta directamente. Del mismo modo si escribimos…
$ cd /
…nos mandará a la raíz del sistema de ficheros.
Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente.
Imaginad que estamos en /home y queremos ir a una carpeta que se llama temporal dentro de
vuestra carpeta personal. Con escribir…
$ cd tu_carpeta/temporal
…nos situará allí. Como hemos obviado el /home inicial ya que si no lo introducimos toma como
referencia el directorio donde estamos, que es ese.
 Ls
Es de los comandos básicos que todo usuario de Linux debe aprender. Nos muestra el
contenido de la carpeta que le indiquemos después. Por ejemplo. Si queremos que nos
muestre lo que contiene /etc:
$ ls /etc
Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde
estamos actualmente:
$ ls
Además acepta ciertos argumentos que pueden ser interesantes. Para mostrar todos los
archivos y carpetas, incluyendo los ocultos:
$ ls -a
Para mostrar los archivos y carpetas junto con los derechos que tiene, lo que ocupa, etc:
$ ls -l
 Apt-get
Apt proviene advanced packets tool: herramienta avanzada de paquetes. Es uno de los
comandos más útiles que se han desarrollado en los sistemas GNU/Linux debian o basados en
esta distro. Nos permite comprobar actualizaciones, actualizar todo el sistema. También nos
ofrece funcionalidad para buscar, descargar e instalar paquetes con una sola orden.
 Apt-cache
El comando apt-cache nos permite realizar operaciones basados en la información de los paquetes
que tenemos en nuestros repositorios.
Este comando no realiza cambio alguna en el sistema, simplemente nos permite obtener
información de los paquetes.
ORDENES
Las opciones que pueden ser utilizadas con el comando apt-cache son:









add nombre_fichero: Añade información de paquetes a los repositorios. Este opción debe
ser seguida por uno o mas nombre de paquetes.
gencaches: Genera la caché de los paquetes fuentes y de los binarios a partir de los
repositorios listados en /etc/apt/sources.list y de /var/lib/dpkg/status.
showpkg nombre_paquete: Muestra las dependencias (normales) y dependencias inversas
del paquete listado. Las dependencias normales deben cumplirse al instalar un paquete, las
inversas no son obligatorias.
stats: Muestra diferentes tipos de estadísticas acerca de la cache de paquetes de los
repositorios.
showsrc paquete(s): Muestra todos los campos de los paquetes fuentes que coincidan con
los paquetes listados.
dumpavail: Muestra un listado de todos los paquetes que están disponibles en los
repositorios.
unmet: Muestra un resumen de todas las dependencias incumplidas entre los paquetes de
los repositorios.
show nombre_paquete: Muestra la información del paquete listado en la línea de
comandos. Útil para realizar la búsqueda de paquetes antes de instalación.
search exp-regular: Realiza una búsqueda en el nombre y descripción de los paquetes y
muestra un pequeño resumen de los que coincidan. Acepta expresiones regulares como
nombre de paquetes. Se puede utilizar con la opci'on--full para mostrar la descripción
completa (como la opción show) y la opción --names-only para mostrar sólo los nombre de
los paquetes en los resultados.
 Dpkg-reconfigure
Permite la reconfiguración de un paquete ya instalado
 Aptitude
aptitude: aptitud, habilidad. En el fondo juega con las siglas de apt para crear aptitude.
Es una versión mejorada de apt. Si os habéis fijado en todos los manuales y entradas donde
había un proceso de instalación he usado aptitude en lugar de apt. El segundo es quizá el más
extendido al ser el que vio la luz primero.
apt cuando instala algo te puede realizar una sugerencia para que instales algo más que te
podría venir bien, pero no lo hace. Hay programas que a la vez usan otros para algunas de sus
funciones u opciones. apt no instalaría los segundos, como mucho te avisaría. Sin embargo
aptitude sí que lo instalará porque sabe que de alguna forma es indispensable para el que has
pedido.
 Ssh
SSH es un programa que permite acceder a otro ordenador a través de la red, ejecutar
comandos en la máquina remota y mover ficheros entre dos máquinas. Provee autenticación y
comunicaciones seguras sobre canales inseguros. Es un reemplazo de rlogin, rsh y rcp.
El comando ssh ofrece comunicación encriptada y segura entre dos sistemas sobre una red no
segura. Este comando reemplaza al telnet, rlogin, rsh.
Ejemplo para iniciar una sesión en otra máquina usando ssh:
[usuario1@localhost usuario1]$ ssh [email protected]
The authenticity of host 'servidor.dominio.es (192.168.0.2)' can't be
established.
RSA key fingerprint is 97:4f:66:f5:96:ba:6d:b2:ef:65:35:45:18:0d:cc:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'servidor.dominio.es' (RSA) to the list of known
hosts.
[email protected]'s password:
[[email protected] usuario1]$
 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 dessh. Este comando reemplaza al rcp, ftp.
Este es un ejemplo de uso del scp para copiar desde la máquina local a una remota:
[usuario1@localhost]scp /tmp/file [email protected]:/tmp
También podemos copiar ficheros entre dos máquinas remotas:
Ejemplo
[usuario1@localhost]scp usuario1@anotherhost:/tmp/file \
[email protected]:/tmp
 Lsmod
Despliega la información referente a los módulos que están habilitados por el "kernel".
 Ps
El comando ps muestra por pantalla un listado de los procesos que se están ejecutando en el
sistema.
Si no añadimos 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 (destacamos
más abajo).
-a Lista los procesos de todos los usuarios.
-u Lista información del proceso como por ejemplo el usuario que lo está corriendo, la
utilización de Cpu y memoria, etc.
-x Lista procesos de todas las terminales y usuarios
-l Muestra información que incluye el UID y el valor “nice“.
–forest – Muestra el listado procesos en un formato tipo árbol que permite ver como los
procesos interactuan entre si, podría ser algo similar al comando pstree.
 Grep
Este comando realiza una búsqueda en los ARCHIVOs (o en la entrada estándar, si no se
especifica ninguno) para encontrar líneas que concuerden con PATRÓN. Por
defecto grep imprime en pantalla dichas líneas. Sus opciones más interesantes son:





-c
Modificar la salida normal del programa, en lugar de imprimir por salida estándar las
líneas coincidentes, imprime la cantidad de líneas que coincidieron en cada archivo.
-e PATRÓN
Usar PATRÓN como el patrón de búsqueda, muy útil para proteger aquellos patrones
de búsqueda que comienzan con el signo «-».
-f ARCHIVO
Obtenee los patrones del archivo ARCHIVO
-H
Imprimir el nombre del archivo con cada coincidencia.
-r
Buscar recursivamente dentro de todos los subdirectorios del directorio actual.
El patrón de búsqueda normalmente es una palabra o una parte de una palabra. También se
pueden utilizar expresiones regulares, para realizar búsquedas más flexibles.
 Du
Este comando informa al usuario de la cantidad de almacenamiento utilizado por los archivos
especificados, posee varias opciones:
Sus opciones más significativas son:
-s
Muestra únicamente los tamaños de los archivos especificados en la línea de comandos.
-h
Muestra los tamaños de archivo en un formato más legible.
-c
Muestra en pantalla el espacio total ocupado por los archivos especificados.
-x
Omite en el conteo aquellos directorios que pertenezcan a otro sistema de archivos.
7. Investigar los siguientes archivos de sistema. Explicar en detalle la función de
cada uno de ellos.
15/15
La mayoría de los sistemas Unix tienen una distribución estándar de archivos, de esta
forma los recursos que el sistema posee y los archivos, serán fácilmente localizados.
Esta distribución forma el árbol de directorios el cual comienza con /, también conocido
como directorio raíz. Luego de este directorio continúan algunos subdirectorios de
carácter muy importante como: /bin, /etc, /dev, /usr.
 /etc/sources.list
Dado que inicialmente se encuentra el subdirectorio /etc. Vamos a contener una serie
de archivos de configuración del sistema. Dentro del subdirectorio /etc/sources.list
podremos encontrar la lista de los repositorios.
 /etc/fstab
De nuevo debido a que inicialmente se encuentra el subdirectorio /etc. Vamos a
contener una serie de archivos de configuración del sistema. Luego en específico el
subdirectorio /etc/fstab contiene información sobre los dispositivos que se montaran
automáticamente durante el arranque del sistema.
 /etc/grub/menu.Ist
Dado que inicialmente se encuentra el subdirectorio /etc. Vamos a contener una serie
de archivos de configuración del sistema
 /etc/passwd
En el subdirectorio o archivo /etc vamos a contener una serie de archivos de
configuración del sistema. Luego el archive en específico controla el uso de usuarios, en
contraseñas, con permisos y grupos que pertenecen a cada usuario, archivo muy
importante si uno quiere tener un superusuario además que el ya conocido root.
 /etc/group
El archivo /etc/group 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 los ubica en grupos diferentes, cada uno de los cuales
posee sus propios derechos de acceso a los archivos y directorios.
 /etc/network/interfaces
Dado que inicialmente se encuentra el subdirectorio /etc. Vamos a contener una serie
de archivos de configuración del sistema que nos permite tener las interfaces de la red.
 /etc/resolv.conf
Vamos a contener una serie de archivos de configuración del sistema, en este caso
poseemos la configuración necesaria para poder resolver los nombres de los servidores
en Internet.
 /var/log/syslog
El subdirectorio /var, contiene directorios que a menudo cambian su tamaño o tienden a
crecer. Muchos de estos directorios solían residir en /usr, pero desde que estamos tratando
de dejarlo relativamente inalterable, los directorios que cambian a menudo han sido
llevados a /var. El subdirectio en específico /var/log/syslog, contiene varios archivos de
interés para el administrador del sistema, específicamente históricos del sistema, los cuales
recogen errores o problemas con el sistema. Otros archivos guardan las sesiones de
presentación en el sistema, así como los intentos fallidos.
 /proc/versión
El subdirectorio en general /proc representa a las procesos en ejecución. Aquí se
encuentra archivos que reciben o envían información al núcleo. En este sistema de
archivo en específico /proc/versión, se brinda y almacena la información de la versión
del kernel.
 /proc/cpuinfo
Su contenido representa a las procesos en ejecución. Aquí se encuentra archivos que
reciben o envían información al núcleo.
Referencias:
10/10
[1] Maynor Fco. Gómez Torres (Marzo 2009). Introducción a Linux. Ubuntu en live CD. Madrid.
[2] http://www.linux-es.org/sobre_linux
[3] http://www.xtech.com.ar/servicios.html
[4] http://www.oracle.com/us/corporate/history/index.html
[5] http://www-03.ibm.com/linux/
[6] http://www.muylinux.com/2011/07/08/amd-apostara-por-linux/
[7] http://www.hp.com/latam/gr/linux.html
[8] http://www.gnu.org/
[9] http://techtastico.com/post/100-aplicaciones-imprescindibles-para-ubuntu-linux/
[10] http://www.guia-ubuntu.org/index.php?title=K3b
[11] http://virtualbox.es/
[12] http://doc.ubuntu-es.org/Sistema_de_archivos
[13] http://rm-rf.es/el-comando-ps-listar-y-manejar-procesos/
Descargar