20
Sistema Operativo GNU/Linux

Curso Gnu-linux Famaf Simon Bolivar

Embed Size (px)

DESCRIPTION

El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo completamente libre: el sistema GNU.1El 27 de septiembre de 1983 se anunció públicamente el proyecto por primera vez en el grupo de noticias net.unix-wizards. Al anuncio original, siguieron otros ensayos escritos por Richard Stallman como el "Manifiesto GNU", que establecieron sus motivaciones para realizar el proyecto GNU, entre las que destaca "volver al espíritu de cooperación que prevaleció en los tiempos iniciales de la comunidad de usuarios de computadoras".UNIX es un sistema operativo no libre muy popular, porque está basado en una arquitectura que ha demostrado ser técnicamente estable. El sistema GNU fue diseñado para ser totalmente compatible con UNIX. El hecho de ser compatible con la arquitectura de UNIX implica que GNU esté compuesto de pequeñas piezas individuales de software, muchas de las cuales ya estaban disponibles, como el sistema de edición de textos TeX y el sistema gráfico X Window, que pudieron ser adaptados y reutilizados; otros en cambio tuvieron que ser reescritos.Para asegurar que el software GNU permaneciera libre para que todos los usuarios pudieran "ejecutarlo, copiarlo, modificarlo y distribuirlo", el proyecto debía ser liberado bajo una licencia diseñada para garantizar esos derechos al tiempo que evitase restricciones posteriores de los mismos. La idea se conoce en Inglés como copyleft (lo cual significa que el autor permite la distribución libre del mismo, en clara oposición a copyright o "derecho de autor"), y está contenida en la Licencia General Pública de GNU (GPL).Richard Stallman, iniciador del proyecto GNUEn 1985, Stallman creó la Free Software Foundation (FSF o Fundación para el Software Libre) para proveer soportes logísticos, legales y financieros al proyecto GNU. La FSF también contrató programadores para contribuir a GNU, aunque una porción sustancial del desarrollo fue (y continúa siendo) producida por voluntarios. A medida que GNU ganaba renombre, negocios interesados comenzaron a contribuir al desarrollo o comercialización de productos GNU y el correspondiente soporte técnico. El más prominente y exitoso de ellos fue Cygnus Solutions, ahora parte de Red Hat.En 1990, el sistema GNU ya tenía un editor de texto llamado Emacs, un exitoso compilador (GCC), y la mayor parte de las bibliotecas y utilidades que componen un sistema operativo UNIX típico. Pero faltaba un componente clave llamado núcleo (kernel en inglés).En el manifiesto GNU, Stallman mencionó que "un núcleo inicial existe, pero se necesitan muchos otros programas para emular Unix". Él se refería a TRIX, que es un núcleo de llamadas remotas a procedimientos, desarrollado por el MIT y cuyos autores decidieron que fuera libremente distribuido; TRIX era totalmente compatible con UNIX versión 7. En diciembre de 1986 ya se había trabajado para modificar este núcleo. Sin embargo, los programadores decidieron que no era inicialmente utilizable, debido a que solamente funcionaba en "algunos equipos sumamente complicados y caros" razón por la cual debería ser portado a otras arquitecturas antes de que se pudiera utilizar. Finalmente, en 1988, se decidió utilizar como base el núcleo Mach desarrollado en la CMU. Inicialmente, el núcleo recibió el nombre de Alix (así se llamaba una novia de Stallman), pero por decisión del programador Michael Bushnell fue renombrado a Hurd. Desafortunadamente, debido a razones técnicas y conflictos personales entre los programadores originales, el desarrollo de Hurd acabó estancándose.Símbolo del CopyleftEn 1991, Linus Torvalds empezó a escribir el núcleo Linux y decidió distribuirlo bajo la licencia GPL. Rápidamente, múltiples programadores se unieron a Linus en el desarrollo, colaborando a través de Internet y consiguiendo paulatinamente que Linux llegase a ser un núcleo compatible con UNIX. En 1992, el núcleo Linux fue combinado con el sistema GNU, resultando en un siste

Citation preview

  • Sistema Operativo GNU/Linux

  • 2Copyright y licencia

    Obra tomada y ADAPTADA por Enrique Corchero para este curso desde: http://cs.uns.edu.ar/~ags/linux

    Copyright 2005 Alejandro G. Stankevicius y Javier Echaiz.

    Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los trminos de la GNU Free Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera.

    Una copia de esta licencia est siempre disponible en la pgina http://www.gnu.org/copyleft/fdl.html.

  • 3Shells - IntroduccinUn shell provee una interfaz tradicional de lnea de comandos Se denomina shell = caparazn porque es la

    cubierta externa del S.O., observable por los usuarios.

    El usuario opera su computadora mediantes comandos que el shell ejecuta (texto accin).

    Es similar al command.com/cmd.exe del M$-Window$

  • 4 Para acceder a nuestra linea de comandos:Aplicaciones -> Accesorios -> Terminal

    Interpretacin del prompt:

    usuario@maquina:~$

    usuario que inici la sesin, seguido del nombre de la maquina y luego del : el directorio donde estamos actualmente (~ en este caso).

    El smbolo $ es el prompt que nos indica que la consola est lista para aceptar comandos.

  • 5Qu Shell usamos?

    Para saber los shells presentes en nuestra mquina:$> cat /etc/shells

    Para saber qu shells estamos usando:$> echo $SHELL

  • 6Ventajas del Bourne Again SHell Es software libre!!! (licencial GNU GPL) Incorpora caractersticas tiles de otros

    shells Cumple estandares internacionales. Muy potente tanto para la programacin

    como para el uso interactivo. De todas formas, el shell es personal...

    BASH

  • 7Programas y E/S estndar

    ProgramaStandard Input(STDIN)

    Standard Error(STDERR)

    Standard Output(STDOUT)

  • 8Comandos Bsicos

    Comando Funcin Significado

    man Muestra la ayuda sobre un cmd Manual

    cat Mostrar un archivo en pantalla conCATenate

    cp Copiar un archivo CoPy

    mv Renombrar o Mover un arch. MoVe

    rm Borrar archivos ReMove

    ls Listar el contenido de un dir. LiSt

    chmod Cambiar permisos Change MODe

    pwd Muestra el directorio actual Print WorkingDir

    cd Cambia el directorio actual Change Dir

  • 9Comandos Bsicos

    Comando Funcin Significado

    mkdir Crear un directorio MaKe DIR

    rmdir Borrar un directorio ReMove DIR

    ps Muestra los procesos en ejecucin Process Status

    df Muestra estatus sobre sist.arch Disk File

    du Muestra la ocupacin del disco Disk Utilization

    grep Busca patrones en archivos

    lpr Imprimir un archivo Line PRinter

    otros tantos:

    top, touch, echo, uname, wc, tar, gzip, zip, cut, paste, tee...

  • 10

    Ejercicios Prcticos

    Mostrar directorio actual.Ejecutar el comando pwd directamente sobre el usuario con el que nos hemos logueado.

    usuario@maquina:~$ pwd

    Listar directorio actual.Para realizar esta accin debemos de ejecutar el comando ls directamente sobre el usuario con el que nos hemos logueado, en este caso usuario.

    usuario@maquina:~$ ls

  • 11

    Crear estructura desde el directorio /home/usuario.

    Puesto que estamos dentro del directorio usuario debemos de crear 4 primeras ramas de las que luego colgaran subdirectorios u otros ficheros. Para crear estas ramas:

    Si son directorios deberemos utilizar el comando mkdir como por ejemplo: mkdir dir1 dir2 dir3 dir4 (sin espacios!!)

    Si son ficheros utilizaremos el comando touch. Ejemplo:

    touch f1 f2

    Una vez creados los directorios, crearemos subdirectorios y ficheros; para ello nos introduciremos en cada directorio a travs del comando cd por ejemplo:

    cd /home/usuario/dir1usuario@maquina:dir1$ mkdir dir11

    Hacemos lo mismo dentro de cada directorio:dir1/dir11 dir2/dir22 dir3/dir33 dir4/dir44

    Ejercicios Prcticos

  • 12

    Crear archivos f1, f2, f3 y f4 en los respectivos directorios dir1, dir2, dir3, dir4Cmo lo hacemos?

    $ cd dir1$ touch f1$ cd ..$ cd dir2$ touch f2

    Y as......

    Ejercicios Prcticos

  • 13

    Cmo movemos archivos? Con el comando mv Ejemplo: $ cd dir1

    $ mv f1 /home/usuario/dir2$ cd ..$ cd dir2$ ls

    Y cmo copiamos un archivo?Intentemos resolverlo entre todos...

    Ejercicios Prcticos

  • 14

    Wildcards (comodines)

    En la lnea de comandos algunos caracteres son tratados de manera especial.

    Estos caracteres especiales facilitan la especificacin de archivos/directorios.

    Reemplazan la lnea de comandos por una que incluye muchos nombres de archivos.

    Veamos a continuacin estos comodines.

  • 15

    El wildcard *

    * = concuerda con todo. * como argumento es reemplazado por

    todos los nombres de archivo del directorio actual.

    a*b concuerda con todos los archivos que empiezan con a y terminan con b.

    Ejemplos:$> ls -l *conf

    $> rm *

  • 16

    Redireccin de la entrada

    En lugar del teclado, redirigimos la entrada a otro archivo. Este archivo ser la entrada del comando tipeado.

    Alternativamente se puede emplear un pipe. La salida de otro programa ser la entrada del comando tipeado.

    Ver Ejemplos!

  • 17

    Redireccin de la salida

    En lugar de la pantalla redirigimos la salida a otro archivo. Este archivo ser la salida del comando tipeado. (no habr salida en el monitor)$> ls -l > lista_directorio.txt

    Alternativamente se puede emplear un pipe: La salida del comando tipeado ser la entrada de otro programa.$> cat lista_directorio.txt|sort

  • 18

    Comando cat Crearemos un archivo colectivo llamado pelis $ touch pelis Dentro de el archivo pelis entre todos

    escribiremos peliculas que hallamos visto $ cat > pelis

    Ejercicios Prcticos

  • 19

    Pipes (Caeras)

    Un pipe es un espacio donde se mantiene un stream de datos.

    Un pipe enva la salida de un programa como entrada de otro, i.e. comunica los streams std.

    Ejemplo:$> history | less

    prog1prog1 prog2prog2

  • 20

    Buscamos informacin sobre algunos comandos

    Busquemos en la Web informacin sobre para qu sirven y cmo se usan los comandos de bsqueda: find y locate

    Busquemos en la Web informacin sobre para qu sirve y cmo se usa el comando: grep

    #

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20