Está en la página 1de 41

Diplomado en Software Libre

Introduccin a GNU / Linux

Eudris Cabrera Rodrguez


@eudriscabrera @eudriscabrera

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

Asuntos Legales
Todas las marcas registradas, as como todos los logotipos, imgenes, fotografas, audio y vdeos mostrados en esta presentacin son propiedad de sus respectivos propietarios. Su utilizacin es solamente para fines ilustrativos y no pretendo dar a entender cualquier afiliacin con esas empresas. Los conceptos y juicios de valor emitidos en esta presentacin son responsabilidad personal y no se puede entender como una posicin oficial de alguna empresa con la que he tenido relacin laboral.

Agenda
Breve historia de GNU/Linux Filosofa Distribuciones GNU/Linux Seleccin de una distribucin GNU/Linux Descripcin del proceso de instalacin Componentes bsicos de un sistema GNU/Linux Proceso de arranque de GNU/Linux Sistema de archivo

Objetivos
Conocer los trminos ms comunes alrededor de GNU/Linux. Entender los principios sobre los cuales fue construdo el kernel Linux. Aprender tcnicas bsicas para el proceso de seleccin de una distribucin 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 cdigo abierto. El kernel Linux fue concebido por el entonces estudiante de ciencias de la computacin finlands Linus Torvalds en 1991.

"Estoy haciendo un sistema operativo (gratuito, slo 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 gustara saber su opinin sobre las cosas que les gustan o disgustan en minix, ya que mi SO tiene algn parecido con l.[...] Actualmente he portado bash(1.08) y gcc(1.40), y parece que las cosas funcionan. Esto implica que tendr algo prctico 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 rpidamente desarrolladores y usuarios que adoptaron cdigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo. Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribucin 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 supervisin de Linux Foundation, un consorcio

tecnolgico sin fines de lucro establecido para adoptar el crecimiento de linux. http://www.linuxfoundation.org

Filosofa
Linux est construido con cierto conjunto de principios unificadores en mente. La comprensin de estos principios es muy til para entender cmo funciona el sistema en su conjunto. Se les conoce como el "Linux Way", que se deriva de la filosofa detrs del sistema UNIX.

Linux Way
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 informacin en archivos de texto plano legibles siempre que sea posible. No hay un "nico y verdadero camino" para hacer cualquier cosa. Preferir herramientas de lnea de comandos a travs de las herramientas grficas.

La mayora de las caractersticas de Linux son una consecuencia de estos principios. De acuerdo con ellos, un sistema Linux est construido a partir de componentes pequeos, reemplazables.

Qu es una distribucin Linux ?


Es una distribucin de software basada en el kernel Linux, que provee un instalador, el ncleo del sistema y un paquete de aplicaciones adicionales para satisfacer las necesidades de un grupo especfico de usuarios.

Caractersticas
Fcil instalacin Pueden ser actualizadas o mejoradas Algunas tienen soporte comercial

Proceso de seleccin
Cmo seleccionar una distribucin linux ? 1. 2. 3. 4. Estabilidad vs funcionalidades de ltima generacin Ambiente de Escritorio vs Ambiente de Servidores Esta tu empleador estandarizado ? Desea pagar soporte ?

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 instalacin de softwares.

http://www.debian.org

Basadas en Fedora
Promueve desarrollos de vanguardia (funcionalidades de ltima generacin). 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 generacin. Es la fuente de la distribucin Suse Linux Enterprise Server

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

Ms informacin: http://distrowatch.com

Instalacin Linux
Formas ms fciles:

Descargar un Live CD/DVD, USB Key Quemar el archivo iso a un CD/DVD o Memoria USB Cambiar el tamao de las particiones en el disco duro Tambin podra utilizar el disco completo. Reiniciar y arrancar con el Live CD Instalar

Componentes bsicos

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 le sucede que tiene mltiples sistemas operativos o varias versiones del kernel Linux instalado, se le permite elegir cul desea iniciar. Los gestores de arranque ms populares son GRUB (cargador de inicio) y LILO (cargador de Linux).

Kernel
El ncleo 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 ncleo 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 dems no se ven afectados. La mayora de los usuarios no tienen que preocuparse por el kernel en el uso del da a da, pero cierto tipo de software o hardware requieren o realizar mejor con ciertas versiones del ncleo.

Kernel

Interprete de comandos (Shell)


Es una interfaz textual que permite ejecutar programas y controlar el sistema mediante la introduccin de comandos desde el teclado. El shell es slo un programa, hay varios diferentes para Linux, cada uno de ellos ofrece diferentes caractersticas. La mayora 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 raz real.

Servidor de Ventana X (X Window Server)


El servidor de ventanas X es un reemplazo grfica de la consola de comandos. Es responsable de la elaboracin de grficos y procesamiento de entrada desde el teclado, el ratn, tabletas y otros dispositivos. El servidor X es transparente a la red, es decir, que le permite trabajar en un entorno grfico, tanto en su propio equipo, as como en un equipo remoto que se conecta a travs de una red.

El servidor X que es el ms utilizado hoy en da es X.Org. La mayora de los programas grficos slo necesitarn 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 gestin de ventanas. Es responsable de la elaboracin 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 diseados para presentar una interfaz de usuario consistente para la mayora de las tareas comunes.

Proceso de arranque

Proceso de arranque (Stage 1 boot loader)

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 raz y denota con una barra inclinada "/". Cada archivo y directorio en el sistema debe ser un descendiente del directorio raz. Los directorios se separan con "/". Los nombres de los directorios y archivos pueden contener todos los caracteres excepto "/" y el carcter nulo.

Sistema de Archivo

Sistema de Archivo
El directorio raz contiene generalmente slo un pequeo nmero de subdirectorios. Los ms importantes son: bin : Programas necesarios para realizar tareas bsicas, 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 configuracin. 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.

Referencias
http://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-linux http://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/Bsico http://codigolibre.org/ After the software wars http://keithcu.com

@eudriscabrera

@eudris @ecabrerar
Eudris Cabrera Rodrguez Ingeniero Telemtico
Desarrollador de Software / Consultor Informtico

eudris@gmail.com

@eudriscabrera