[es] introduccion a gnu / linux

43
Introducción a GNU / Linux Diplomado en Software Libre Eudris Cabrera Rodríguez @eudriscabrera @eudriscabrera 15 Febrero 2014, Santiago de los Caballeros, R. D.

Upload: eudris-cabrera

Post on 04-Jul-2015

396 views

Category:

Technology


1 download

DESCRIPTION

En esta presentación se pretende introducir los principios sobre los cuales fue construído el kernel Linux y presentar técnicas básicas para el proceso de selección de una distribución GNU/Linux.

TRANSCRIPT

Introducción a GNU / Linux

Diplomado en Software Libre

Eudris Cabrera Rodríguez

@eudriscabrera @eudriscabrera

15 Febrero 2014, Santiago de los Caballeros, R. D.

Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios.

Su utilización es solamente para fines ilustrativos y no pretendo dar a entender cualquier afiliación con esas empresas.

Los conceptos y juicios de valor emitidos en esta presentación son responsabilidad personal y no se puede entender como una posición oficial de alguna empresa con la que he tenido relación laboral.

Asuntos Legales

Agenda

❏ Breve historia de GNU/Linux❏ Filosofía❏ Distribuciones GNU/Linux❏ Selección de una distribución GNU/Linux❏ Descripción del proceso de instalación❏ Componentes básicos de un sistema GNU/Linux❏ Proceso de arranque de GNU/Linux❏ Sistema de archivo

Objetivos

❖ Conocer los términos más comunes alrededor de GNU/Linux.

❖ Entender los principios sobre los cuales fue construído el kernel

Linux.

❖ Aprender técnicas básicas para el proceso de selección de una

distribución GNU/Linux.

Breve Historia

Linux es un kernel libre de sistema operativo basado en Unix. Es uno de los principales ejemplos de software libre y de código abierto.

El kernel Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés Linus Torvalds en 1991.

"Estoy haciendo un sistema operativo (gratuito, sólo un hobby, no será nada grande ni profesional como GNU) para clones AT 386(486). Llevo en ello desde abril y está empezando a estar listo. Me gustaría saber su opinión sobre las cosas que les gustan o disgustan en minix, ya que mi SO tiene algún parecido con él.[...] Actualmente he portado bash(1.08) y gcc(1.40), y parece que las cosas funcionan. Esto implica que tendré algo práctico dentro de unos meses..."

Publicado el 26 de agosto de 1991 por Linus Torvalds Torvalds en el grupo de noticias comp.os.minix

Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo.

Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribución GNU/Linux.

El kernel Linux ha recibido contribuciones de miles de programadores de todo el mundo.

http://www.linuxfoundation.org/news-media/infographics/who-writes-linux-2013.

Se encuentra bajo la supervisión de Linux Foundation, un consorcio tecnológico sin fines de lucro establecido para adoptar el crecimiento de linux. http://www.linuxfoundation.org

Filosofía

Linux está construido con cierto conjunto de principios unificadores en mente. La comprensión de estos principios es muy útil para entender cómo funciona el sistema en su conjunto.

Se les conoce como el "Linux Way", que se deriva de la filosofía detrás del sistema UNIX.

❖ Usar programas que hacen una sola tarea, pero lo hacen bien.❖ Para llevar a cabo tareas complejas, utilizar varios programas

vinculados entre sí.❖ Guarde la información en archivos de texto plano legibles siempre

que sea posible.❖ No hay un "único y verdadero camino" para hacer cualquier

cosa.❖ Preferir herramientas de línea de comandos en lugar de

herramientas gráficas.

Linux Way

La mayoría de las características de Linux son una consecuencia de estos principios.

De acuerdo con ellos, un sistema Linux está construido a partir de componentes pequeños, reemplazables.

¿Qué es una distribución Linux ?

Es una distribución de software basada en el kernel Linux, que provee un instalador, el núcleo del sistema y un paquete de aplicaciones adicionales para satisfacer las necesidades de un grupo específico de usuarios.

Características

❖ Fácil instalación❖ Pueden ser actualizadas o mejoradas❖ Algunas tienen soporte comercial

¿Cómo seleccionar una distribución linux ?

1. Estabilidad vs funcionalidades de última generación2. Ambiente de Escritorio vs Ambiente de Servidores3. ¿Esta tu empleador estandarizado ?4. ¿Desea pagar soporte ?

Proceso de Selección

Principales Distribuciones

Existen tres grandes familias de distribuciones

Basadas en Debian

❖ Usada en servidores y escritorios.❖ Ubuntu, derivada de debian, muy popular en escritorios.❖ Utiliza los gestores de paquetes apt-get, aptitude para instalación

de softwares.

http://www.debian.org

Basadas en Fedora

❖ Promueve desarrollos de vanguardia (funcionalidades de última generación).

❖ Frecuentes actualizaciones❖ Es la fuente de distribuciones como CentOS y Oracle Linux.❖ Se utiliza como base para RHEL (Red Hat Enterprise Linux)❖ Utiliza yum como su gestor de paquetes.

http://fedoraproject.org

Open Suse

❖ Muy similar a fedora, frecuentes actualizaciones, funcionalidades de última generación.

❖ Es la fuente de la distribución Suse Linux Enterprise Server

http://www.opensuse.org/en/

Más Información: http://distrowatch.com

Instalación Linux

Formas más fáciles:

❖ Descargar un Live CD/DVD, USB Key❖ Quemar el archivo iso a un CD/DVD o Memoria USB❖ Cambiar el tamaño de las particiones en el disco duro

➢ También podrían utilizar el disco completo.❖ Reiniciar y arrancar con el Live CD❖ Instalar

Componentes Básicos

Gestor de Arranque (Boot loader)

Esta es la parte del sistema que se ejecuta primero.

❖ Cuando usted tiene un solo sistema operativo instalado, simplemente carga el kernel.

❖ Si sucede que tiene múltiples sistemas operativos o varias versiones del kernel Linux instalado, se le permite elegir cuál desea iniciar.

Los gestores de arranque más populares son GRUB (cargador de inicio) y LILO (cargador de Linux).

Kernel

El núcleo es el componente central del sistema que se comunica directamente con el hardware.

De hecho, el nombre "Linux" se refiere correctamente a un tipo particular de esta pieza de software.

El núcleo asigna los recursos del sistema, como la memoria, el tiempo de procesador, espacio en disco duro y dispositivos externos a los programas que se ejecutan en el equipo.

Kernel

Separa cada programa de los otros, de manera que cuando uno de ellos se encuentra con un error, los demás no se ven afectados.

La mayoría de los usuarios no tienen que preocuparse por el kernel en el uso del día a día, pero cierto tipo de software o hardware requieren o funcionan mejor con ciertas versiones del núcleo.

Kernel

Interprete de Comandos (Shell)

Es una interfaz textual que permite ejecutar programas y controlar el sistema mediante la introducción de comandos desde el teclado.

El shell es sólo un programa, hay varios diferentes para Linux, cada uno de ellos ofrece diferentes características.

La mayoría de los sistemas Linux usan el Bourne Again Shell (bash). Los shell Linux soporta multitareas (ejecutan varios programas a la vez).

Initramfs

Sistema de archivos RAM inicial es el sucesor del initrd.

Se trata de un archivo cpio del sistema de archivos inicial que se carga en la memoria durante el proceso de inicio de Linux.

initramfs tiene que contener todos los controladores de dispositivos y las herramientas necesarias para montar el sistema de ficheros raíz real.

Servidor de Ventana X (X Window Server)

El servidor de ventanas X es un reemplazo gráfica de la consola de comandos.

Es responsable de la elaboración de gráficos y procesamiento de entrada desde el teclado, el ratón, tabletas y otros dispositivos.

El servidor X es transparente a la red, es decir, que le permite trabajar en un entorno gráfico, tanto en su propio equipo, así como en un equipo remoto que se conecta a través de una red.

El servidor X que es el más utilizado hoy en día es X.Org.

La mayoría de los programas gráficos sólo necesitarán el servidor X para funcionar, por lo que se pueden utilizar bajo cualquier administrador de ventanas y el entorno de escritorio.

Manejador de Ventana (Window Manager)

El gestor de ventanas es un programa que se comunica con el servidor X.

Su tarea es la gestión de ventanas. Es responsable de la elaboración de los bordes de las ventanas, con lo que una ventana al frente cuando hace clic en él, se mueve en la pantalla y ocultarlas cuando minimiza el programa.

Ejemplos de gestores de ventanas populares son: Metacity, KWin,Xfwm, Compiz Fusion

El entorno de escritorio (Desktop Environment)

Los entornos de escritorio, como el entorno de escritorio GNOME, KDE y Xfce, son conjuntos de programas diseñados para presentar una interfaz de usuario consistente para la mayoría de las tareas comunes.

Proceso de Arranque

En Linux, el flujo de control durante el arranque es desde el BIOS, al gestor de arranque y al núcleo (kernel).

El núcleo inicia el planificador de tareas (para permitir la multitarea) y ejecuta el primer espacio de usuario (es decir, fuera del espacio del núcleo) y el programa de inicialización (que establece el entorno de usuario y permite la interacción del usuario y el inicio de sesión), momento en el que el núcleo se inactiva hasta que sea llamado externamente.

Proceso de Arranque

Proceso de Arranque

La etapa del cargador de arranque no es totalmente necesaria.

Determinados BIOS pueden cargar y pasar el control a Linux sin hacer uso del cargador. Cada proceso de arranque será diferente dependiendo de la arquitectura del procesador y el BIOS.

Sistema de Archivo

Hay varios sistemas de archivos que las distribuciones basadas en Linux utilizan. Son BTRFS, EXT3 / 4, VFS, NILFS y SquashFS.

En Linux, el directorio de nivel superior se denomina directorio raíz y denota con una barra inclinada "/".

Cada archivo y directorio en el sistema debe ser un descendiente del directorio raíz.

Los directorios se separan con "/". Los nombres de los directorios y archivos pueden contener todos los caracteres excepto "/" y el carácter nulo.

Sistema de Archivo

Sistema de Archivo

El directorio raíz contiene generalmente sólo un pequeño número de subdirectorios.

Los más importantes son:bin :Programas necesarios para realizar tareas básicas, es decir, cambian de un directorio o copiar un archivo.

dev :Archivos especiales que representan los dispositivos de hardware.

Sistema de Archivo

etc:Los archivos de configuración.

home : Contiene los directorios privados de los usuarios.

media or mnt : Punto de montaje para unidades externas conectadas a este equipo, es decir, CDs o memorias USB.

Sistema de Archivo

tmp : archivos temporales.

usr : programas instalados en el ordenador.

var : datos variables producidos por programas, como los registros de errores.

opt: programas de terceros.

¡Gracias por acompañarnos!

Referenciashttp://training.linuxfoundation.org/free-linux-training/linux-training-videos/how-to-get-started-using-linux

http://training.linuxfoundation.org/free-linux-training/linux-training-videos/how-to-install-linuxhttp://en.wikibooks.org/wiki/Linux_Guide/How_Linux_Works

http://www.thegeekstuff.com/2011/02/linux-boot-process/

https://www.ibm.com/developerworks/library/l-linuxboot/

http://en.wikipedia.org/wiki/Linux_startup_process

http://doc.opensuse.org/products/draft/SLES/SLES-admin_sd_draft/cha.boot.html

http://www.pathbreak.com/blog/ubuntu-startup-init-scripts-runlevels-upstart-jobs-explained

Referencias

Libros:GNU/Básico http://codigolibre.org/

After the software wars http://keithcu.com

@eudriscabrera

@eudris

@ecabrerar

@eudriscabrera

Eudris Cabrera Rodríguez Ingeniero Telemático

Desarrollador de Software / Consultor Informático

[email protected]