SlideShare una empresa de Scribd logo
Curso de
Curso de
Introducción a
Introducción a
GNU/Linux
GNU/Linux
2
Indice del Curso
Indice del Curso
•Tema 1 - Introducción
•Tema 2 - Comandos
•Tema 3 - Procesos y Entorno
•Tema 4 - Shell y Editores
•Tema 5 - Distribuciones e Instalación
•Tema 6 - Interactuando con GNU/Linux
3
Introducción
Introducción
• Que es GNU/Linux
• Unix: El comienzo
• Historia de GNU/Linux
• Situación actual
• Distribuciones
• Sistema multiusuario y multitarea
• Usuarios y permisos
• Sistema de ficheros
• Entrando en Linux
4
Que es GNU/Linux
Que es GNU/Linux
• Linux es un sistema operativo creado inicialmente como un hobby por
Linus Torvalds, un estudiante de la Universidad de Helsinki. Linus
estaba interesado en Minix, un pequeño sistema UNIX, y decidió
desarrollar un sistema que superara los estándares de Minix. Comenzó
su trabajo en 1991 cuando divulgo la versión 0.0.2 y trabajó firmemente
hasta 1994 fecha en la que se divulgó la versión 1.0 del kernel Linux. La
versión actual es la 2.4 y el desarrollo continua.
• Linux se desarrolla bajo la Licencia Publica General GNU y su código
fuente esta disponible para cualquiera. Aun así, esto no significa que
Linux y las diferentes distribuciones sean gratuitas -- las compañías y
los desarrolladores pueden cobrar por ello siempre y cuando el código
fuente este disponible. Linux puede utilizarse para un amplio rango de
propósitos incluyendo networking, desarrollo de software y como
plataforma para el usuario final. Linux se considera frecuentemente
una alternativa excelente y de bajo coste a otros Sistemas Operativos
más caros.
5
Que es GNU/Linux
Que es GNU/Linux
• GNU/Linux es un Sistema Operativo multiplataforma, multiusuario
y multitarea con compatibilidad POSIX.
• Esta compuesto por software libre. Podemos descargarlo
gratuitamente o comprarlo a una compañía junto con el soporte
técnico.
• Hoy día se puede instalar GNU/Linux en casi cualquier plataforma
existente, desde 386 hasta superordenadores Cray.
• La gran mayoría del software que puede necesitar un usuario
domestico o uno profesional están disponibles para GNU/Linux
• A pesar de que Unix ha sido tradicionalmente poco amigable,
GNU/Linux se acerca cada vez más al entorno domestico.
• Se estima que actualmente hay más de 18 millones de usuarios de
GNU/Linux en el mundo
6
UNIX: El comienzo
UNIX: El comienzo
• Años 60: en los Laboratorios Bell se comienza el desarrollo de
Multics, un SO multiusuario, multitarea, multicomplicado. Nunca
se terminó.
• Años 70: Thompson y Ritchie empiezan a escribir un sistema
operativo, deciden llamarlo Unix. Kernigan y Ritchie crean el
lenguaje C. En 1972 Unix se reescribe en C, con lo que puede
ejecutarse en cualquier maquina que tenga un compilador de C. Se
convierte en el primer SO realmente portable. AT&T pone a
disposición del público el código fuente.
• Años 80: Unix se extiende y aparecen variantes (BSD). AT&T
decide no seguir con Unix y las variantes comerciales toman el
mercado. El código fuente no se distribuye y los programas no
pueden modificarse ni compartirse.
7
GNU (I)
GNU (I)
• Esta situación desagrada a la mayoría de los usuarios, las
abusivas licencias comerciales rompían el espíritu de
colaboración.
• Richard Stallman, del MIT se decide a cambiar las cosas y
comienza a escribir un SO libre, que pudiera ser copiado y
modificado por quien quisiera. Se basa en Unix intentando
mejorarlo donde pudiera. Elige el nombre para recalcar la
diferencia entre Unix (mayoritariamente comercial) y su sistema
(que será libre): GNU (Gnu’s Not Unix).
• Para administrar los recursos disponibles del proyecto GNU crea
la Free Software Fundation y esta desarrolla la licencia GPL
8
GNU (II)
GNU (II)
• La Free Software Fundation es la
principal responsable del proyecto
GNU.
• Actualmente se encuentran disponibles
2068 paquetes de software. Los más
conocidos: Bash, gcc, Emacs, gdb,
Glibc, Gnome, GnuPG, sin olvidar
Hurd: el kernel del sistema GNU aun
en desarrollo.
FSF
FSF
“
“Free as in ‘free speech’ not ‘free beer’”
Free as in ‘free speech’ not ‘free beer’”
• Existen muchos mas programas distribuidos bajo licencia
GPL
9
GNU (III)
GNU (III)
• Licencia Pública General (http://www.gnu.org/copyleft/gpl.html)
• Garantiza al usuario del programa la libertad para copiar,
compartir, intercambiar y/o modificar el programa a su antojo.
• Si el usuario distribuye el programa a otra persona debe dar a
ésta los mismos derechos que tenía el usuario original. Es decir,
no se puede impedir que el software que es libre siga siendo libre
para siempre.
• No existe ninguna garantía sobre el programa, el usuario es el
único responsable de todas las consecuencias que el uso del
programa pudiera acarrear.
GPL
GPL
10
GNU (IV)
GNU (IV)
• No obstante, usuarios o compañías podrían optar por ofrecer
garantía sobre un programa GNU a los usuarios a cambio de un
precio.
• Libre no es lo mismo que gratuito, las empresas tienen derecho a
vender el software, y a ofrecer garantías o soporte técnico a
cambio de un precio. Naturalmente, no pueden eliminar al
usuario sus derechos a intercambiar y modificar el programa.
• La licencia establece que si se utilizan partes de un programa
GPL en otro programa, entonces el programa resultante debe
estar también protegido por la GPL (para evitar que el software
deje de ser libre).
GPL (II)
GPL (II)
11
Linux (I)
Linux (I)
• A finales de los 80 la FSF ya tenía gran cantidad de los
programas necesarios implementados pero les faltaba una parte
importante: el kernel. Su propio kernel, llamado Hurd, tardaría
bastante en estar listo (a día de hoy todavía no lo está).
• En 1990 el IEEE publico un estandar sobre Sistemas Operativos,
que especificaba como debía ser el interfaz externo de las
diversas áreas de un Sistema Operativo. Se llamó POSIX:
Portable Operating System Interface.
• En aquellos momentos uno de los núcleos más conocidos era
Minix, desarrollado como un proyecto educativo por Andrew
Tanenbaum y distribuido con su libro sobre diseño de Sistemas
Operativos.
12
Linux (II)
Linux (II)
• En 1991 en el grupo de noticias comp.os.minix, un estudiante de
la Universidad de Helsinki, Linus Benedict Torvalds, anunció
que estaba trabajando en un Sistema Operativo basado en
Minix. Decidió hacerlo libre y accesible para todos y pronto
empezó a desarrollarse rápidamente gracias a colaboradores de
todo el mundo.
“Do you pine for the nice days of minix-1.1, when men were
men and wrote their own device drivers? [...] I'm working on
a free version of a minix-lookalike for AT-386 computers. It
has finally reached the stage where it's even usable, [...] and I
am willing to put out the sources for wider distribution. It is
just version 0.02, but I've successfully run bash/gcc/gnu-
make/gnu-sed/compress etc under it.“
13
Situación actual (I)
Situación actual (I)
• Hoy día (Marzo de 2003), Linux va ya por la versión estable 2.4.
Posee todas las características que tienen los Unix modernos,
incluyendo: multitarea real, memoria virtual, librerías compartidas,
carga bajo demanda, ejecutables compartidos, administración de
memoria eficiente, y redes TCP/IP.
• GNU/Linux es usado por multitud de empresas y organismos por su
reconocida estabilidad y escalabilidad. Es el sistema operativo más
usado en servidores de Internet.
• El futuro se presenta prometedor para GNU/Linux. Cada vez más
empresas y particulares confían en él como sistema operativo. En los
últimos tiempos ha ido ganando terreno como ordenador de
sobremesa para aplicaciones personales. La orientación de Linux
hacia aplicaciones de escritorio no le ha hecho perder su estabilidad
y capacidad para aplicaciones críticas.
14
Situación actual (II)
Situación actual (II)
• Busqueda en Google:
– Windows: 63.200.,000
– Microsoft: 33.100.000
– Mac OS: 3.570.000
– Linux: 59.600.000
– Unix: 15.900.000
– BSD: 3.530.000
15
Distribuciones (I)
Distribuciones (I)
• Casi todos los programas que son necesarios en un sistema
GNU/Linux son de libre distribución y están disponibles en algún
sitio de la red para su descarga, normalmente en forma de código
fuente.
• Lo único que habría que hacer para disponer de un GNU/Linux
totalmente funcional es ir uno por uno a cada sitio, descargar el
programa, compilarlo y configurarlo. Luego habría que ajustar un
poco algunos programas para que interactúen bien entre sí.
• Este proceso es demasiado largo y complicado para la mayoría de
usuarios, que no suelen tener buenas conexionas a la red, ni tiempo
ni conocimientos para compilar y modificar programas.
• Precisamente para evitar todo esto están las distribuciones
16
Distribuciones (II)
Distribuciones (II)
• Una distribución es un conjunto de programas GNU/Linux
debidamente precompilados y configurados para funcionar juntos.
Adicionalmente, la mayoría de distribuciones incluyen otros
componentes que aportan valor al conjunto.
• Una distribución es una de las formas en que las empresas pueden
ganar dinero con software libre. Existen organizaciones
comerciales que se dedican a empaquetar juntos los programas,
incluirlos en algún medio como un CD, añadir un manual de
instrucciones y proporcionar soporte técnico. La mayoría de
fabricantes de distribuciones reinvierten una parte de sus
beneficios en iniciativas que ayuden a la comunidad de software
libre.
• También existen distribuciones realizadas por voluntarios y que no
tienen ánimo de lucro.
17
Distribuciones (III)
Distribuciones (III)
• Entre las cosas que se pueden esperar de una distribución moderna
se cuentan:
– Un programa de instalación que guíe al usuario desde el principio e
instale los paquetes básicos.
– Un gestor de paquetes que se encargue de proporcionar el interfaz
necesario para que el administrador pueda instalar y desinstalar
programas de una manera fácil.
– Un entorno gráfico (normalmente KDE o GNOME), con el que se
integren el resto de los programas.
– Manuales de instalación y uso y documentación adicional sobre los
programas.
– Un sistema de seguimiento de errores (bugs) y fallos de seguridad que
proporcione al usuario versiones corregidas de los programas lo más
rápido posible cuando se detecte un fallo.
18
Distribuciones (IV)
Distribuciones (IV)
 Redhat. Es la distribución más usada en el
mundo. Es fácil de instalar y de usar. Su
gestor de paquetes (RPM) se ha convertido
en un estándar en el mundo GNU/Linux.
Incluye multitud de herramientas gráficas
de configuración.
 Debian. Es la que mayor cantidad de
software contiene. Realizada
enteramente por voluntarios y basada
exclusivamente en software libre. Su
sistema de paquetes dispone de
características realmente potentes, lo
que hace de el uno de sus puntos
fuertes.
19
Distribuciones (V)
Distribuciones (V)
 SuSE. Es una de las distribuciones más
usada en Europa. El sistema de
paquetes está basado en el de Red Hat.
Se preocupa especialmente por la
seguridad del sistema. El proceso de
instalación es muy cómodo y potente.
 Otras distribuciones:
Mandrake, Slackware,
Caldera.
20
Sistema multiusuario y multitarea
Sistema multiusuario y multitarea
• Un sistema operativo multitarea y multiusuario permite que varias
personas puedan estar ejecutando programas al mismo tiempo en
un mismo ordenador.
• Generalmente, los sistemas corrientes tienen un único procesador.
Éste se las apaña para repartir el tiempo entre los diversos
PROCESOS (programas en ejecución) que corren en él, de manera
que parezcan ejecutarse "a la vez", como si cada uno tuviera una
CPU a su disposición.
• Por otro lado, cada proceso corresponde a un usuario,
normalmente el que lo ejecuta, y no puede acceder sino a las zonas
del sistema a las que el propio usuario tiene acceso. Así, los
procesos ejecutados por un usuario no se mezclan con los
ejecutados por otro y tampoco pueden acceder, en principio, a
datos ajenos.
21
Usuarios y permisos (I)
Usuarios y permisos (I)
• Cuando un sistema es utilizado por diferentes personas es
necesario un método para poder diferenciarlas. A cada
usuario se le asigna un nombre de usuario (login) diferente
que será el que utilice para entrar al sistema.
• Una cuenta es más que un nombre. Son todos los ficheros,
recursos e información correspondientes al usuario. El
termino se ha heredado del entorno bancario y aparece
debido a la necesidad de cobrar por los servicios prestados.
• Además de las cuentas personales, existen otros usuarios
definidos para tareas administrativas, como el root o
administrador, y también cuentas que no pertenecen a
ningún usuario ‘real’ sino que son utilizadas por los
demonios del sistema.
22
Usuarios y permisos (II)
Usuarios y permisos (II)
• La forma de definir que puede y que no puede hacer
un usuario es a través de los permisos de los ficheros.
• Cada fichero tiene asociados TRES tipos de permisos
diferentes:
– Permiso de lectura: permite ver el contenido del fichero.
– Permiso de escritura: permite alterar el contenido del
fichero.
– Permiso de ejecucion: permite ejecutar el fichero (en un
directorio permite acceder a él).
• Los permisos de un fichero solo pueden ser alterados
por su propietario y por al administrador.
23
Usuarios y permisos (III)
Usuarios y permisos (III)
• Pero solo estos permisos no son suficientes, queremos
otorgar diferentes permisos a diferentes grupos de
usuarios.
• Cada usuario estará asociado a un grupo, compuesto
por usuarios con características comunes.
• Se definen TRES conjuntos de usuarios:
– El propietario del fichero
– Los miembros del grupo del propietario del fichero
– El resto de usuarios.
• Para cada uno de estos grupos definiremos los tres
permisos diferentes.
24
Usuarios y permisos (IV)
Usuarios y permisos (IV)
• Ejemplo 1: comando ls
-rwxr-xr-x root root ls
El propietario puede leer, modificar y ejecutar el fichero. Su
grupo y el resto solo leerlo y ejecutarlo.
• Ejemplo 2: directorio personal
drwx------ jtpfevaa profesores jtpfevaa
El propietario puede ver, modificar y acceder al contenido
del directorio. Su grupo y el resto no pueden hacer nada.
• Ejemplo 3: directorio tmp
drwxrwxrwx root root tmp
Todo el mundo puede ver, modificar y acceder al directorio.
25
Sistema de ficheros (I)
Sistema de ficheros (I)
• En el sistema de ficheros de los Unix, todo, absolutamente
todo esta representado por un fichero.
• No existe el concepto de extensiones, un programa es un
fichero que tiene permisos para ser ejecutado.
• Tampoco existen diferentes unidades lógicas
correspondientes a los diferentes sistemas de archivos.
Todo lo que hay en el sistema cuelga del directorio raíz /.
Todo es un fichero
Todo es un fichero
26
Sistema de ficheros (II)
Sistema de ficheros (II)
• El árbol de directorios de UNIX tiene una estructura
bastante rígida, que hace fácil la búsqueda de ficheros de
configuración, ayuda, etc. cuando hace falta.
Arbol de directorios
Arbol de directorios
27
Sistema de ficheros (III)
Sistema de ficheros (III)
• /bin: Abreviación de la palabra binaries (del ingles
ejecutables). Aquí se guardan muchos de los programas
básicos y esenciales para el funcionamiento del sistema como
los comandos ls, cp, etc.
Directorio /bin
Directorio /bin
Directorio /boot
Directorio /boot
• /boot: En este directorio se encuentran los ficheros del núcleo
del sistema, los que ejecuta al arrancar.
28
Sistema de ficheros (IV)
Sistema de ficheros (IV)
• /dev: Viene del ingles device (dispositivo). Este directorio
contiene ficheros que representan los dispositivos del sistema.
Estos ficheros son fundamentales para que el sistema funcione
correctamente.
Directorio /dev
Directorio /dev
Directorio /etc
Directorio /etc
• /etc: Aquí se encuentran ficheros relativos a la configuración
local del sistema, y de los programas, por ejemplo:
/etc/passwd guarda información de cada uno de los usuarios
29
Sistema de ficheros (V)
Sistema de ficheros (V)
• /home: De este directorio cuelgan los los directorios de inicio
(home directory) de los usuarios “normales” (todos excepto el
root y las cuentas que no pertenecen a un usuario real).
Directorio /home
Directorio /home
Directorio /lib
Directorio /lib
• /lib: En este directorio se encuentran las bibliotecas del
sistema, ya sean bibliotecas de funciones, de imágenes,
sonidos, iconos, etc..
30
Sistema de ficheros (VI)
Sistema de ficheros (VI)
• /man: Aquí se encuentran la mayoría de las paginas del
manual de cada prograam. Para acceder a los manuales se
utiliza el comando man seguido del nombre del programa.
Otras veces están en /usr/man o /usr/local/man.
Directorio /man
Directorio /man
Directorio /mnt
Directorio /mnt
• /mnt: Generalmente de este directorio cuelgan los ficheros de
los dispositivos “montados” en el sistema, es decir, ficheros
que son accesibles desde el sistema en ese momento.
31
Sistema de ficheros (VII)
Sistema de ficheros (VII)
• /proc: En este directorio se encuentran ficheros virtuales, que
no existen realmente. Al intentar verlos obtendremos
información acerca del sistema. Cada proceso en ejecución
tiene asociado un directorio.
Directorio /proc
Directorio /proc
Directorio /root
Directorio /root
• /root: Este es el directorio home del usuario root,
tradicionalmente el administrador del sistemas. Recibe este
nombre por ser el propietario del directorio / (directorio raíz
o root directory en ingles).
32
Sistema de ficheros (VIII)
Sistema de ficheros (VIII)
• /sbin: Aquí, al igual que en /bin se guardan muchos
programas pero estos solo son usados por el administrador
del sistema, por ejemplo: el comando exit, el comando halt, el
comando reboot, etc.
Directorio /sbin
Directorio /sbin
Directorio /tmp
Directorio /tmp
• /tmp: En el directorio /tmp se guardan archivos de carácter
temporal, es decir, si un programa necesita mantener cierta
información guardada, pero que no será necesaria en otro
momento, la guardara en el directorio /tmp.
33
Sistema de ficheros (IX)
Sistema de ficheros (IX)
• /usr: En /usr están la mayoría de los programas, las bibliotecas de
funciones, las fuentes del kernel, etc.. De /usr cuelgan otros
directorios lib y bin, que tienen las bibliotecas y los ejecutables que
utilizan normalmente los usuarios, pero que no son
imprescindibles para el sistema, como awk, diff, grep,
Directorio /usr
Directorio /usr
Directorio /var
Directorio /var
• /var: Este directorio guarda los ficheros “variables”, como los
ficheros donde se guardan los errores, los logs del sistema, los
directorios del SPOOL de la impresora (el buffer de la
impresora por decirlo de algún modo).
34
Entrando en Linux
Entrando en Linux
• Lo primero que hay que hacer para entrar en el sistema es
identificarse como un usuario concreto (introducir el
nombre de usuario o login) y probar que, efectivamente, se
es dicho usuario (introducir la clave asociada o password).
Login
Login
Shell
Shell
• Una vez autenticados, el sistema cargará el interprete de
comandos (también llamado shell) asociado a nuestro usuario
en el fichero /etc/passwd. A partir de este momento y hasta
que desconectemos (logout, a través del comando exit)
podremos introducir comandos que el interprete ejecutara (si
tenemos los permisos adecuados), arrancar programas, etc..
35
Links
Links
• Linux: www.linux.org
• Linux kernel: www.kernel.org
• Proyecto GNU: www.gnu.org
• Linux Counter: counter.li.org
• Proyecto de Documentación de Linux: tldp.org
• Proyecto LuCAS: es.tldp.org
• Distribuciones: www.redhat.com, www.debian.org,
www.suse.com
• BSD: www.freebsd.org, www.openbsd.org,
www.netbsd.org
36
Preguntas
Preguntas
¿ ?

Más contenido relacionado

PPT
Parte 1.ppt
PPT
Curso introduccion a linux y sus diferentes
PPT
linux_basico1.pptsnssnmsmsmsmsmsjabsbsjb
PPT
linux_basico1 (1).ppt
PPT
PPT
Linux
PPTX
1.7 gnu linux
PDF
X1. sistema operativo gnu linux
Parte 1.ppt
Curso introduccion a linux y sus diferentes
linux_basico1.pptsnssnmsmsmsmsmsjabsbsjb
linux_basico1 (1).ppt
Linux
1.7 gnu linux
X1. sistema operativo gnu linux

Similar a introducción a gnu/linux curso basico de SO (20)

PDF
Segunda presentacion
PPTX
Colegio santa cruz
PPT
Sistema Operativo Linux
PPT
Linux 1ntroducc1on
PDF
Linux Intro
PDF
Linux Intro
PPT
Linux
PPTX
Clase 1 -introduccion a linux
PPT
Linux
PPTX
Historia del software libre
PPTX
Qué es software libre
PDF
Unidad 1. historia y cultura linux
PPTX
Administración básica de ubuntu server parte 1
PPT
Softwarelibrepowerpoint 100415063030-phpapp02
PDF
Linux Parte 1
PPT
Linux
PPT
Diapositivas
Segunda presentacion
Colegio santa cruz
Sistema Operativo Linux
Linux 1ntroducc1on
Linux Intro
Linux Intro
Linux
Clase 1 -introduccion a linux
Linux
Historia del software libre
Qué es software libre
Unidad 1. historia y cultura linux
Administración básica de ubuntu server parte 1
Softwarelibrepowerpoint 100415063030-phpapp02
Linux Parte 1
Linux
Diapositivas
Publicidad

Último (20)

PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Estrategia de apoyo tecnología miguel angel solis
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPT
Que son las redes de computadores y sus partes
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
Presentación de Redes de Datos modelo osi
PPTX
Presentación PASANTIAS AuditorioOO..pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
taller de informática - LEY DE OHM
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
REDES INFORMATICAS REDES INFORMATICAS.pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
Estrategia de apoyo tecnología grado 9-3
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Estrategia de apoyo tecnología miguel angel solis
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Que son las redes de computadores y sus partes
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
CyberOps Associate - Cisco Networking Academy
Sesion 1 de microsoft power point - Clase 1
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Presentación de Redes de Datos modelo osi
Presentación PASANTIAS AuditorioOO..pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
taller de informática - LEY DE OHM
introduccion a las_web en el 2025_mejoras.ppt
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Influencia-del-uso-de-redes-sociales.pdf
Publicidad

introducción a gnu/linux curso basico de SO

  • 1. Curso de Curso de Introducción a Introducción a GNU/Linux GNU/Linux
  • 2. 2 Indice del Curso Indice del Curso •Tema 1 - Introducción •Tema 2 - Comandos •Tema 3 - Procesos y Entorno •Tema 4 - Shell y Editores •Tema 5 - Distribuciones e Instalación •Tema 6 - Interactuando con GNU/Linux
  • 3. 3 Introducción Introducción • Que es GNU/Linux • Unix: El comienzo • Historia de GNU/Linux • Situación actual • Distribuciones • Sistema multiusuario y multitarea • Usuarios y permisos • Sistema de ficheros • Entrando en Linux
  • 4. 4 Que es GNU/Linux Que es GNU/Linux • Linux es un sistema operativo creado inicialmente como un hobby por Linus Torvalds, un estudiante de la Universidad de Helsinki. Linus estaba interesado en Minix, un pequeño sistema UNIX, y decidió desarrollar un sistema que superara los estándares de Minix. Comenzó su trabajo en 1991 cuando divulgo la versión 0.0.2 y trabajó firmemente hasta 1994 fecha en la que se divulgó la versión 1.0 del kernel Linux. La versión actual es la 2.4 y el desarrollo continua. • Linux se desarrolla bajo la Licencia Publica General GNU y su código fuente esta disponible para cualquiera. Aun así, esto no significa que Linux y las diferentes distribuciones sean gratuitas -- las compañías y los desarrolladores pueden cobrar por ello siempre y cuando el código fuente este disponible. Linux puede utilizarse para un amplio rango de propósitos incluyendo networking, desarrollo de software y como plataforma para el usuario final. Linux se considera frecuentemente una alternativa excelente y de bajo coste a otros Sistemas Operativos más caros.
  • 5. 5 Que es GNU/Linux Que es GNU/Linux • GNU/Linux es un Sistema Operativo multiplataforma, multiusuario y multitarea con compatibilidad POSIX. • Esta compuesto por software libre. Podemos descargarlo gratuitamente o comprarlo a una compañía junto con el soporte técnico. • Hoy día se puede instalar GNU/Linux en casi cualquier plataforma existente, desde 386 hasta superordenadores Cray. • La gran mayoría del software que puede necesitar un usuario domestico o uno profesional están disponibles para GNU/Linux • A pesar de que Unix ha sido tradicionalmente poco amigable, GNU/Linux se acerca cada vez más al entorno domestico. • Se estima que actualmente hay más de 18 millones de usuarios de GNU/Linux en el mundo
  • 6. 6 UNIX: El comienzo UNIX: El comienzo • Años 60: en los Laboratorios Bell se comienza el desarrollo de Multics, un SO multiusuario, multitarea, multicomplicado. Nunca se terminó. • Años 70: Thompson y Ritchie empiezan a escribir un sistema operativo, deciden llamarlo Unix. Kernigan y Ritchie crean el lenguaje C. En 1972 Unix se reescribe en C, con lo que puede ejecutarse en cualquier maquina que tenga un compilador de C. Se convierte en el primer SO realmente portable. AT&T pone a disposición del público el código fuente. • Años 80: Unix se extiende y aparecen variantes (BSD). AT&T decide no seguir con Unix y las variantes comerciales toman el mercado. El código fuente no se distribuye y los programas no pueden modificarse ni compartirse.
  • 7. 7 GNU (I) GNU (I) • Esta situación desagrada a la mayoría de los usuarios, las abusivas licencias comerciales rompían el espíritu de colaboración. • Richard Stallman, del MIT se decide a cambiar las cosas y comienza a escribir un SO libre, que pudiera ser copiado y modificado por quien quisiera. Se basa en Unix intentando mejorarlo donde pudiera. Elige el nombre para recalcar la diferencia entre Unix (mayoritariamente comercial) y su sistema (que será libre): GNU (Gnu’s Not Unix). • Para administrar los recursos disponibles del proyecto GNU crea la Free Software Fundation y esta desarrolla la licencia GPL
  • 8. 8 GNU (II) GNU (II) • La Free Software Fundation es la principal responsable del proyecto GNU. • Actualmente se encuentran disponibles 2068 paquetes de software. Los más conocidos: Bash, gcc, Emacs, gdb, Glibc, Gnome, GnuPG, sin olvidar Hurd: el kernel del sistema GNU aun en desarrollo. FSF FSF “ “Free as in ‘free speech’ not ‘free beer’” Free as in ‘free speech’ not ‘free beer’” • Existen muchos mas programas distribuidos bajo licencia GPL
  • 9. 9 GNU (III) GNU (III) • Licencia Pública General (http://www.gnu.org/copyleft/gpl.html) • Garantiza al usuario del programa la libertad para copiar, compartir, intercambiar y/o modificar el programa a su antojo. • Si el usuario distribuye el programa a otra persona debe dar a ésta los mismos derechos que tenía el usuario original. Es decir, no se puede impedir que el software que es libre siga siendo libre para siempre. • No existe ninguna garantía sobre el programa, el usuario es el único responsable de todas las consecuencias que el uso del programa pudiera acarrear. GPL GPL
  • 10. 10 GNU (IV) GNU (IV) • No obstante, usuarios o compañías podrían optar por ofrecer garantía sobre un programa GNU a los usuarios a cambio de un precio. • Libre no es lo mismo que gratuito, las empresas tienen derecho a vender el software, y a ofrecer garantías o soporte técnico a cambio de un precio. Naturalmente, no pueden eliminar al usuario sus derechos a intercambiar y modificar el programa. • La licencia establece que si se utilizan partes de un programa GPL en otro programa, entonces el programa resultante debe estar también protegido por la GPL (para evitar que el software deje de ser libre). GPL (II) GPL (II)
  • 11. 11 Linux (I) Linux (I) • A finales de los 80 la FSF ya tenía gran cantidad de los programas necesarios implementados pero les faltaba una parte importante: el kernel. Su propio kernel, llamado Hurd, tardaría bastante en estar listo (a día de hoy todavía no lo está). • En 1990 el IEEE publico un estandar sobre Sistemas Operativos, que especificaba como debía ser el interfaz externo de las diversas áreas de un Sistema Operativo. Se llamó POSIX: Portable Operating System Interface. • En aquellos momentos uno de los núcleos más conocidos era Minix, desarrollado como un proyecto educativo por Andrew Tanenbaum y distribuido con su libro sobre diseño de Sistemas Operativos.
  • 12. 12 Linux (II) Linux (II) • En 1991 en el grupo de noticias comp.os.minix, un estudiante de la Universidad de Helsinki, Linus Benedict Torvalds, anunció que estaba trabajando en un Sistema Operativo basado en Minix. Decidió hacerlo libre y accesible para todos y pronto empezó a desarrollarse rápidamente gracias a colaboradores de todo el mundo. “Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? [...] I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable, [...] and I am willing to put out the sources for wider distribution. It is just version 0.02, but I've successfully run bash/gcc/gnu- make/gnu-sed/compress etc under it.“
  • 13. 13 Situación actual (I) Situación actual (I) • Hoy día (Marzo de 2003), Linux va ya por la versión estable 2.4. Posee todas las características que tienen los Unix modernos, incluyendo: multitarea real, memoria virtual, librerías compartidas, carga bajo demanda, ejecutables compartidos, administración de memoria eficiente, y redes TCP/IP. • GNU/Linux es usado por multitud de empresas y organismos por su reconocida estabilidad y escalabilidad. Es el sistema operativo más usado en servidores de Internet. • El futuro se presenta prometedor para GNU/Linux. Cada vez más empresas y particulares confían en él como sistema operativo. En los últimos tiempos ha ido ganando terreno como ordenador de sobremesa para aplicaciones personales. La orientación de Linux hacia aplicaciones de escritorio no le ha hecho perder su estabilidad y capacidad para aplicaciones críticas.
  • 14. 14 Situación actual (II) Situación actual (II) • Busqueda en Google: – Windows: 63.200.,000 – Microsoft: 33.100.000 – Mac OS: 3.570.000 – Linux: 59.600.000 – Unix: 15.900.000 – BSD: 3.530.000
  • 15. 15 Distribuciones (I) Distribuciones (I) • Casi todos los programas que son necesarios en un sistema GNU/Linux son de libre distribución y están disponibles en algún sitio de la red para su descarga, normalmente en forma de código fuente. • Lo único que habría que hacer para disponer de un GNU/Linux totalmente funcional es ir uno por uno a cada sitio, descargar el programa, compilarlo y configurarlo. Luego habría que ajustar un poco algunos programas para que interactúen bien entre sí. • Este proceso es demasiado largo y complicado para la mayoría de usuarios, que no suelen tener buenas conexionas a la red, ni tiempo ni conocimientos para compilar y modificar programas. • Precisamente para evitar todo esto están las distribuciones
  • 16. 16 Distribuciones (II) Distribuciones (II) • Una distribución es un conjunto de programas GNU/Linux debidamente precompilados y configurados para funcionar juntos. Adicionalmente, la mayoría de distribuciones incluyen otros componentes que aportan valor al conjunto. • Una distribución es una de las formas en que las empresas pueden ganar dinero con software libre. Existen organizaciones comerciales que se dedican a empaquetar juntos los programas, incluirlos en algún medio como un CD, añadir un manual de instrucciones y proporcionar soporte técnico. La mayoría de fabricantes de distribuciones reinvierten una parte de sus beneficios en iniciativas que ayuden a la comunidad de software libre. • También existen distribuciones realizadas por voluntarios y que no tienen ánimo de lucro.
  • 17. 17 Distribuciones (III) Distribuciones (III) • Entre las cosas que se pueden esperar de una distribución moderna se cuentan: – Un programa de instalación que guíe al usuario desde el principio e instale los paquetes básicos. – Un gestor de paquetes que se encargue de proporcionar el interfaz necesario para que el administrador pueda instalar y desinstalar programas de una manera fácil. – Un entorno gráfico (normalmente KDE o GNOME), con el que se integren el resto de los programas. – Manuales de instalación y uso y documentación adicional sobre los programas. – Un sistema de seguimiento de errores (bugs) y fallos de seguridad que proporcione al usuario versiones corregidas de los programas lo más rápido posible cuando se detecte un fallo.
  • 18. 18 Distribuciones (IV) Distribuciones (IV)  Redhat. Es la distribución más usada en el mundo. Es fácil de instalar y de usar. Su gestor de paquetes (RPM) se ha convertido en un estándar en el mundo GNU/Linux. Incluye multitud de herramientas gráficas de configuración.  Debian. Es la que mayor cantidad de software contiene. Realizada enteramente por voluntarios y basada exclusivamente en software libre. Su sistema de paquetes dispone de características realmente potentes, lo que hace de el uno de sus puntos fuertes.
  • 19. 19 Distribuciones (V) Distribuciones (V)  SuSE. Es una de las distribuciones más usada en Europa. El sistema de paquetes está basado en el de Red Hat. Se preocupa especialmente por la seguridad del sistema. El proceso de instalación es muy cómodo y potente.  Otras distribuciones: Mandrake, Slackware, Caldera.
  • 20. 20 Sistema multiusuario y multitarea Sistema multiusuario y multitarea • Un sistema operativo multitarea y multiusuario permite que varias personas puedan estar ejecutando programas al mismo tiempo en un mismo ordenador. • Generalmente, los sistemas corrientes tienen un único procesador. Éste se las apaña para repartir el tiempo entre los diversos PROCESOS (programas en ejecución) que corren en él, de manera que parezcan ejecutarse "a la vez", como si cada uno tuviera una CPU a su disposición. • Por otro lado, cada proceso corresponde a un usuario, normalmente el que lo ejecuta, y no puede acceder sino a las zonas del sistema a las que el propio usuario tiene acceso. Así, los procesos ejecutados por un usuario no se mezclan con los ejecutados por otro y tampoco pueden acceder, en principio, a datos ajenos.
  • 21. 21 Usuarios y permisos (I) Usuarios y permisos (I) • Cuando un sistema es utilizado por diferentes personas es necesario un método para poder diferenciarlas. A cada usuario se le asigna un nombre de usuario (login) diferente que será el que utilice para entrar al sistema. • Una cuenta es más que un nombre. Son todos los ficheros, recursos e información correspondientes al usuario. El termino se ha heredado del entorno bancario y aparece debido a la necesidad de cobrar por los servicios prestados. • Además de las cuentas personales, existen otros usuarios definidos para tareas administrativas, como el root o administrador, y también cuentas que no pertenecen a ningún usuario ‘real’ sino que son utilizadas por los demonios del sistema.
  • 22. 22 Usuarios y permisos (II) Usuarios y permisos (II) • La forma de definir que puede y que no puede hacer un usuario es a través de los permisos de los ficheros. • Cada fichero tiene asociados TRES tipos de permisos diferentes: – Permiso de lectura: permite ver el contenido del fichero. – Permiso de escritura: permite alterar el contenido del fichero. – Permiso de ejecucion: permite ejecutar el fichero (en un directorio permite acceder a él). • Los permisos de un fichero solo pueden ser alterados por su propietario y por al administrador.
  • 23. 23 Usuarios y permisos (III) Usuarios y permisos (III) • Pero solo estos permisos no son suficientes, queremos otorgar diferentes permisos a diferentes grupos de usuarios. • Cada usuario estará asociado a un grupo, compuesto por usuarios con características comunes. • Se definen TRES conjuntos de usuarios: – El propietario del fichero – Los miembros del grupo del propietario del fichero – El resto de usuarios. • Para cada uno de estos grupos definiremos los tres permisos diferentes.
  • 24. 24 Usuarios y permisos (IV) Usuarios y permisos (IV) • Ejemplo 1: comando ls -rwxr-xr-x root root ls El propietario puede leer, modificar y ejecutar el fichero. Su grupo y el resto solo leerlo y ejecutarlo. • Ejemplo 2: directorio personal drwx------ jtpfevaa profesores jtpfevaa El propietario puede ver, modificar y acceder al contenido del directorio. Su grupo y el resto no pueden hacer nada. • Ejemplo 3: directorio tmp drwxrwxrwx root root tmp Todo el mundo puede ver, modificar y acceder al directorio.
  • 25. 25 Sistema de ficheros (I) Sistema de ficheros (I) • En el sistema de ficheros de los Unix, todo, absolutamente todo esta representado por un fichero. • No existe el concepto de extensiones, un programa es un fichero que tiene permisos para ser ejecutado. • Tampoco existen diferentes unidades lógicas correspondientes a los diferentes sistemas de archivos. Todo lo que hay en el sistema cuelga del directorio raíz /. Todo es un fichero Todo es un fichero
  • 26. 26 Sistema de ficheros (II) Sistema de ficheros (II) • El árbol de directorios de UNIX tiene una estructura bastante rígida, que hace fácil la búsqueda de ficheros de configuración, ayuda, etc. cuando hace falta. Arbol de directorios Arbol de directorios
  • 27. 27 Sistema de ficheros (III) Sistema de ficheros (III) • /bin: Abreviación de la palabra binaries (del ingles ejecutables). Aquí se guardan muchos de los programas básicos y esenciales para el funcionamiento del sistema como los comandos ls, cp, etc. Directorio /bin Directorio /bin Directorio /boot Directorio /boot • /boot: En este directorio se encuentran los ficheros del núcleo del sistema, los que ejecuta al arrancar.
  • 28. 28 Sistema de ficheros (IV) Sistema de ficheros (IV) • /dev: Viene del ingles device (dispositivo). Este directorio contiene ficheros que representan los dispositivos del sistema. Estos ficheros son fundamentales para que el sistema funcione correctamente. Directorio /dev Directorio /dev Directorio /etc Directorio /etc • /etc: Aquí se encuentran ficheros relativos a la configuración local del sistema, y de los programas, por ejemplo: /etc/passwd guarda información de cada uno de los usuarios
  • 29. 29 Sistema de ficheros (V) Sistema de ficheros (V) • /home: De este directorio cuelgan los los directorios de inicio (home directory) de los usuarios “normales” (todos excepto el root y las cuentas que no pertenecen a un usuario real). Directorio /home Directorio /home Directorio /lib Directorio /lib • /lib: En este directorio se encuentran las bibliotecas del sistema, ya sean bibliotecas de funciones, de imágenes, sonidos, iconos, etc..
  • 30. 30 Sistema de ficheros (VI) Sistema de ficheros (VI) • /man: Aquí se encuentran la mayoría de las paginas del manual de cada prograam. Para acceder a los manuales se utiliza el comando man seguido del nombre del programa. Otras veces están en /usr/man o /usr/local/man. Directorio /man Directorio /man Directorio /mnt Directorio /mnt • /mnt: Generalmente de este directorio cuelgan los ficheros de los dispositivos “montados” en el sistema, es decir, ficheros que son accesibles desde el sistema en ese momento.
  • 31. 31 Sistema de ficheros (VII) Sistema de ficheros (VII) • /proc: En este directorio se encuentran ficheros virtuales, que no existen realmente. Al intentar verlos obtendremos información acerca del sistema. Cada proceso en ejecución tiene asociado un directorio. Directorio /proc Directorio /proc Directorio /root Directorio /root • /root: Este es el directorio home del usuario root, tradicionalmente el administrador del sistemas. Recibe este nombre por ser el propietario del directorio / (directorio raíz o root directory en ingles).
  • 32. 32 Sistema de ficheros (VIII) Sistema de ficheros (VIII) • /sbin: Aquí, al igual que en /bin se guardan muchos programas pero estos solo son usados por el administrador del sistema, por ejemplo: el comando exit, el comando halt, el comando reboot, etc. Directorio /sbin Directorio /sbin Directorio /tmp Directorio /tmp • /tmp: En el directorio /tmp se guardan archivos de carácter temporal, es decir, si un programa necesita mantener cierta información guardada, pero que no será necesaria en otro momento, la guardara en el directorio /tmp.
  • 33. 33 Sistema de ficheros (IX) Sistema de ficheros (IX) • /usr: En /usr están la mayoría de los programas, las bibliotecas de funciones, las fuentes del kernel, etc.. De /usr cuelgan otros directorios lib y bin, que tienen las bibliotecas y los ejecutables que utilizan normalmente los usuarios, pero que no son imprescindibles para el sistema, como awk, diff, grep, Directorio /usr Directorio /usr Directorio /var Directorio /var • /var: Este directorio guarda los ficheros “variables”, como los ficheros donde se guardan los errores, los logs del sistema, los directorios del SPOOL de la impresora (el buffer de la impresora por decirlo de algún modo).
  • 34. 34 Entrando en Linux Entrando en Linux • Lo primero que hay que hacer para entrar en el sistema es identificarse como un usuario concreto (introducir el nombre de usuario o login) y probar que, efectivamente, se es dicho usuario (introducir la clave asociada o password). Login Login Shell Shell • Una vez autenticados, el sistema cargará el interprete de comandos (también llamado shell) asociado a nuestro usuario en el fichero /etc/passwd. A partir de este momento y hasta que desconectemos (logout, a través del comando exit) podremos introducir comandos que el interprete ejecutara (si tenemos los permisos adecuados), arrancar programas, etc..
  • 35. 35 Links Links • Linux: www.linux.org • Linux kernel: www.kernel.org • Proyecto GNU: www.gnu.org • Linux Counter: counter.li.org • Proyecto de Documentación de Linux: tldp.org • Proyecto LuCAS: es.tldp.org • Distribuciones: www.redhat.com, www.debian.org, www.suse.com • BSD: www.freebsd.org, www.openbsd.org, www.netbsd.org