Académique Documents
Professionnel Documents
Culture Documents
G U A No. 4
Profesores: Ing. Walter Zelaya y Carlos Pocasangre Instructores: Daniel Flores y Ral Alvarenga
Gua No. 4 UES CICLO I 2011 1/15
Introduccin.
Desde ahora en adelante la computadora ser una pieza importante en nuestra formaci n acadmica, ya que no solo se usar como mquina de escribir sino que tambin como herramienta de programacin, por lo que en esta gua se proporcionar un primer contacto a los sistemas operativos y se estudiar los comandos de uso frecuente de Linux. Como se ver, Linux posee inmensurables capacidades que supera por varios a os luz a windows. Estabilidad, rendimiento, multitarea entre otras son caracter sticas que han acompaado a Linux desde su inicio, es decir que, lo mismo que se hace en windogs se puede hacer en Linux pero con el agravante que se hace m s rpido sin temor que se caiga el sistema.
Objetivos.
Que los participantes absorban el concepto de Sistema Operativo. Que los participantes se enteren de lo m s relevante de Linux. Inducir algunos comandos de uso frecuente de Linux.
Otra definicin:
Otra definicin posible y bastante aceptada define un sistema operativo como una capa compleja entre el hardware y el usuario, concebible tambi n como una mquina virtual, que facilita al usuario o al programador las herramientas e interfaces adecuadas para realizar sus tareas inform ticas, abstrayndole de los complicados procesos necesarios para llevarlas a cabo. Por ejemplo, un usuario normal simplemente abre los ficheros grabados en un disco, sin preocuparse por la disposici n de los bits en el medio fsico, los tiempos de espera del motor del disco, la posicin de un cabezal, el acceso de otros usuarios, etc.
1 http://es.wikipedia.org/wiki/Sistema_operativo UES CICLO I 2011 2/15
Gua No. 4
Aunque es un tema propenso a la discusi n, algunos expertos estn de acuerdo en que un sistema operativo debe constar de, por lo menos, un conjunto de programas similar al siguiente:
Un compilador de algn lenguaje de programacin, en Unix es de C. Un enlazador. Un ensamblador. Un intrprete de comandos. Una amplia biblioteca del lenguaje de la plataforma. Un kernel o ncleo.
Definicin coloquial:
Otra definicin, ms coloquial, denomina sistema operativo a todo el software que viene con el ordenador antes de que se instale ninguna aplicaci n. Segn esta definicin, orientada al usuario final, las herramientas de desarrollo no son necesarias y, sin embargo, se consideran elementos imprescindibles un amplio n mero de programas orientados a diferentes tareas, como editores de texto, administradores de archivos, navegadores, etc.
Caractersticas:
Administracin de tareas:
Monotarea: Si solamente puede ejecutar un programa (aparte de los procesos del propio SO)
en un momento dado. Una vez que empieza a funcionar un programa, continuar hacindolo hasta su finalizacin o interrupcin. Multitarea: Si es capaz de ejecutar varios programas al mismo tiempo. Este tipo de SO normalmente asigna los recursos disponibles (CPU, memoria, perif ricos) de forma alternativa a los programas que los solicitan, de manera que el usuario percibe que todos funcionan a la vez. Administracin de usuarios:
Monousuario: Si slo permite ejecutar los programas de un usuario al mismo tiempo. Multiusuario: Si permite que varios usuarios ejecuten simult neamente sus programas,
accediendo a la vez a los recursos del ordenador. Normalmente estos SO utilizan m todos de proteccin de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Manejo de recursos: Centralizado: Si permite utilizar los recursos de un solo ordenador. Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, perif ricos... ) de ms de un ordenador al mismo tiempo.
Gua No. 4
3/15
Organizacin interna:
Kernel monoltico (Linux, BSD, skyOS, Windows, Syllable). Microkernel (BeOS, Mach, Mac OS X, newOS). Nanokernel (AdeOS, Eros, KeyKOS, Brix-OS). VOiD (unununium, TUNES, Vapour). Sasos (Opal, Mungi, BriX). VM (Merlin, Argante). Exokernel (MIT exokernel). Cache kernel (Universidad de Stanford).
Linux Qu es Linux?2
Linux es un sistema operativo para computadoras personales basadas en Intel. El sistema lo han dise ado y construido cientos de programadores dispersos por todo el mundo. El objeto ha sido crear un clon de UNIX Libre de cualquier software con derechos de autor comercialmente registrado que cualquier persona puede usar. De hecho, Linux surgi como un entretenimiento de Linus Torvalds mientras era estudiante en la Universidad de Helsinke, en Finlandia. Su finalidad era crear un sustituto de Minix, sistema operativo tipo UNIX disponible para las Pcs basadas en Intel. Si alguno de estos t rminos no le son familiares, no se preocupe; mucho de ellos se explicaran en el desarrollado de este laboratorio. Linux es el invento de un estudiante de ciencias de la computaci n, en aquel entonces de 23 aos, cuyo nombre es Linux Torvalds cobr vida como un proyecto de entretenimiento de Linus, quien esperaba crear una versi n ms completa de UNIX para los usuarios de de Minix. El sistema Minix se escribi para mostrar varios conceptos de la ciencias de la computaci n incluidos en los sistemas operativos. Linus incorpor estos conceptos en un sistema independiente que imita a UNIX. El programa, accesible sin reserva a los estudiantes de ciencias de la computaci n de todo el mundo, pronto gener muchos adeptos, incluidos sus propios grupos de noticias de USENET. Linus Torvalds se aplic a la tarea de proporcionar a sus compaeros usuarios de Minix una mejor plataforma que pudiera correr en las ampliamente accesibles Pcs de IBM. Eligi las recin aparecidas computadoras 386 a causa de las propiedades de conmutacin de tareas de la interfaz 80386 en modo protegido. A continuacin se presentan algunas de las declaraciones 3 que hizo Linus al anunciar su programa Linux. ... Despus de eso, todo fue viento en popa: faltaba la codificaci n problemtica, pero tena algunos dispositivos, y la depuracin fue ms fcil. En esta etapa comenc a usar C, y ste realmente aceler el desarrollo. Tambin fue cuando empec a tomar en serio mis ideas megaloman as de hacer 'un mejor Minix que el propio Minix' Tena la esperanza de poder recompilar gcc balo Linux alg n da...
2 Jack Tackett Jr, David Gunter y Lance Brown Linux Edici n Especial, Prentice Hall. ISBN968-880-580-7
Matt Welsh Linux Installation and Gerring Started 1992-1994 UES CICLO I 2011 4/15
Gua No. 4
Dos meses para la configuraci n bsica, pero despus slo un poco ms de tiempo hasta que tuve una unidad de disco (plagada de errores, pero pudo trabajar en mi m quina) y un pequeo sistema de archivos. Eso ocurri cuando liber la 0.01, casi a finales de agosto de 1991: no era maravillosa, no ten a unidad de discos flexibles y no poda hacer mucho [de] nada. No creo que alguien haya compilado esa versi n. Pero para entonces ya estaba conectado, y no quer a detenerme hasta poder abatir a Minix. En una declaracin posterior, realizada en comp.os.minix el 5 de octubre de 1991, Linus lanz al mundo la versin 0.02 de Linux, que fue la primera versin oficial de este sistema. Suspira por las buenas pocas de Minix 1.1, cuando los hombre eran hombre y escrib an sus propios controladores de dispositivos? Est sin un proyecto agradable y a punto de echar los dientes sobre un sistema operativo al que pueda tratar de modificar para que se ajuste a sus necesidades? Se siente frustrado cuando todo funcin en Minix? No ms desvelos para hacer funcionar un programa excelente? Entonces este mensaje puede ser para usted. Como la mencion hace un mes, trabajo en una versi n libre de un sistema parecido a Minix para computadoras AT-386. Por fin ha llegado a la etapa en la que incluso es til (aunque no depender necesariamente de lo que usted quiera) y estoy deseoso de proporcionar las fuentes para una mayor distribucin. se trata de la versin 0.02... pero he corrido en ella con xito bash, gcc, gnu-make, gnu-sed compress, etctera. Despus4 de la versin 0.03, Linus salto en la numeracin hasta la 0.10, ms y ms programadores a lo largo y ancho de Internet empezaron a trabajar en el proyecto y despu s de sucesivas revisiones, Linus incremento el nmero de versin hasta la 0.95 (marzo 1992). Ms de un ao despus (diciembre 1993) el ncleo del sistema estaba en la versin 0.99 y la versin 1.0 no llego hasta el 14 de marzo de 1994.
Es un sistema operativo multitarea y multiusuario, similar a Unix en muchos aspectos pero completamente independiente de este. Surgi como respuesta a las necesidades personales de Linus Torvalds quien lo puso a disposici n de todos para su utilizacin y perfeccionamiento. De ah que su desarrollo actual se deba a la cooperaci n de miles de programadores en Internet que se han dedicado tanto al mejoramiento del kernel como al desarrollo y mantenimiento de numerosas aplicaciones conformando decenas de distribuciones. Se distribuye bajo la licencia GPL de GNU, lo cual le ha permitido desarrollarse y distribuirse con rapidez, adems de ser un sistema fcilmente ajustable a las necesidades personales de sus usuarios o administradores. Est portado para numerosas plataformas computacionales. Ejemplos: Intel, Macintosh, Alpha y SPARC.
4 5
Gua No. 4
Se caracteriza por tener un cdigo muy eficiente que lo convierte en un sistema robusto y estable con un futuro prometedor. Posee soporte para gran cantidad de hardware. Linux est especialmente orientado al trabajo en redes pues existen numerosas aplicaciones, nativas o portadas para l, que implementan casi todos los protocolos utilizados para la comunicaci n, tanto el lado cliente como el servidor. Ejemplo de ello son: FTP, HTTP, TCP/IP, PPP, UUCP, SMTP, SNMP, gopher, wais, news, IPX, SMB/CIFS, POP, IMAP, etc. Gracias a esto una mquina Linux puede proveer servicios de correo electr nico, resolucin de nombres, news, Web, acceso remoto, compartir recursos a trav s de la red, etc. Las versiones actuales del kernel soportan numerosos sistemas de ficheros como FAT16/32, NTFS (slo lectura) e iso9660 (para discos compactos). Posee un file system propio denominado ext2 y se desarrollan ext3 y reiserfs con mejoras considerables. Ofrece numerosas posibilidades para la programaci n en diversos lenguajes, tanto interpretados como compilados. Ejemplo de ello son: C, C++, Java, Pascal, SmallTalk, FORTRAN, LISP, Perl, Tcl/Tk y Python. Tambin en Linux se dispone de varios shells como bash, csh, ksh y otros. Todos permiten, adems de una interaccin ms o menos amigable con el sistema, la programacin de shells scripts. Sobre Linux se implementan diversos ambientes conocidos como interfaces X que son interfaces grficas cuya funcionalidad y belleza pueden compararse con las de cualquier sistema comercial. Existe una implementacin completa del servidor X Window de Unix portada para Linux conocida como XFree86. Entre los ambientes grficos se destacan KDE, GNOME y WindowMaker. El sistema operativo en s es completamente independiente de estas aplicaciones para funcionar correctamente. Las mquinas Linux se pueden interconectar y relacionar f cilmente con otras con sistemas operativos diferentes como OS/2, Apple Machintosh, Windows 9x y NT. En una misma computadora se puede instalar Linux junto a otros sistemas operativos y ejecutarlos luego, indistintamente. No requiere necesariamente de grandes recursos de hardware. Sin interfaz grfica puede ejecutarse correctamente en mquinas con 16 MB de RAM o menos contando adem s con espacio Swap1.14 en el disco duro. Los requerimientos de espacio en disco pueden hacerse despreciables pues se han logrado micro-distribuciones que caben en un disquete 1.15. Existen actualmente herramientas que permiten la ejecuci n de aplicaciones MS-DOS ( DOSEMU1.16) y Windows sobre Linux (WINE1.17). Tambin existe una poderosa herramienta conocida como VMWARE1.18 que provee la facilidad de tener varias m quinas virtuales con distintos sistemas operativos ejecutndose a la vez en una misma computadora. Vale aclarar que este ltimo es un producto comercial, por lo que para utilizarlo por tiempo indefinido hay que pagar una licencia. Multiproceso. Permite la ejecucin de varias aplicaciones simultneamente.
Gua No. 4
6/15
Multiusuario. Distintos usuarios pueden acceder a los recursos del sistema simult neamente aunque se trate de una instalacin en una sola mquina. Multiplataforma. Funciona con la mayor a de plataformas del mercado: Intel 386/486/Pentium, Motorola 680, Sun Sparc,... Shells programables que lo convierten el el sistema m s flexible que existe. Soporte para cualquier cantidad y tipo de dispositivos directamente en el n cleo. Soporte para la mayora de sistemas de ficheros.
Gua No. 4
7/15
Ejemplos:
$ $ $ $ ls ls ls ls -hl /etc -R /usr -al -ali ..
Comando mkdir
Crea directorios con los nombre especificados. De forma predeterminada, los permisos de los directorios creados son 0777 (a+rwx) menos los bits puestos a l en la umask
Tomado del manual de lnea de Linux y de http://www.linux.cu/manual/basico-html/node131.html UES CICLO I 2011 8/15
Gua No. 4
--verbose Muestra un mensaje para cada directorio creado. Esto es m s til con --parents.
Ejemplos
$ mkdir tareas $ mkdir tareas/iie115 $ mkdir ~/datos fotos
Comando rmdir
rmdir borra directorios vacos. Si un argumento directorio no se refiere a un directorio existente y vac o, es un error.
Comando cp
El comando cp permite copiar un fichero en otro, o varios ficheros en un directorio.
Sintaxis:
cp [opciones] <fuente> <destino> cp [opciones] <ficheros> <directorio>
Algunas opciones:
-p : Si es posible preserva los atributos (dueo, grupo y permisos) de los ficheros originales en las copias. -d : Preserva los enlaces simblicos en lugar de copiar los ficheros a los que estos apuntan. Actualmente es as por defecto. -L : No preserva los enlaces simblicos, o sea copia los ficheros a los que estos apuntan. -R : Copia recursivamente un directorio. -a : Es equivalente a las opciones -dpR.
Gua No. 4 UES CICLO I 2011 9/15
-i : Utiliza una forma interactiva (pregunta antes de sobrescribir el destino). -l : Hace enlaces fuertes a los ficheros fuentes en lugar de copiarlos.
Ejemplos:
$ cp /etc/passwd $ cp -a /etc/mail mailb/ $ cp -i /usr/bin/*sh /tmp $ cp -l /bin/* bin/ # # # # # # # copia un fichero en el directorio actual copia recursivamente un directorio preservando atributos y enlaces copia interactivamente los ficheros terminados en sh en un directorio hace enlaces fuertes a todos los ficheros en un directorio
Comando mv
El comando mv mueve un fichero hacia otro, o varios ficheros hacia un directorio. Este permite a su vez renombrar ficheros o directorios.
Sintaxis:
mv [opciones] <fuente> <destino> mv [opciones] <ficheros> <directorio>
Algunas opciones:
-i : Ejecuta el comando de forma interactiva, o sea, pregunta ante de sobrescribir el destino si existiera. -u : Actualiza (upgrade) el destino con el fuente solo si este es m s reciente. Ejemplos:
$ mv mail.cf mail.cf.old $ mv -i *.txt /tmp $ mv bin/ exe $ mv -u program.c src/ # # # # # # # renombra un fichero mueve ficheros terminados en .txt al directorio /tmp renombra un directorio. Si existe el destino mueve el fuente hacia este actualiza el fichero destino si es menos reciente que el fuente
Sintaxis:
mount [opciones] [dispositivo] [dir] umount [opciones] <dir>|<dispositivo>
7 http://www.linux.cu/manual/basico-html/node109.html#8204 UES CICLO I 2011 10/15
Gua No. 4
Algunas opciones:
-a : En el caso de mount monta todos los dispositivos que tienen la opci n auto en el fichero fstab, y para umount desmonta todo lo que est en el fichero /etc/mtab. -t <tipo> : Indica el tipo de file system a montar como por ejemplo: .adfs, affs, autofs, coda,
coherent, cramfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs.
-o <opciones> : Especifica las opciones de montaje (separadas por comas). Cuando se especifican en el fichero /etc/fstab8 las caractersticas del montaje de un dispositivo, para montarlo no es necesario indicarlo todo, basta con poner el nombre del dispositivo o el directorio donde se monta por defecto.
Ejemplos:
$ mount -a -t ext2 $ mount /media/floppy $ mount /media/cdrom $ mount /mnt/cdrom $ umount -a -t ntfs $ umount /media/fd0 /media/cdrom # # # # # # # # monta automticamente device con file ext2 monta el disquete en el directorio /floppy monta el cdrom. Toma las especificaciones del fichero /etc/fstab hace lo mismo que el anterior desmonta todo los dispositivos con file system ntfs especificados en /etc/mtab desmonta el cdrom y el disquete
Siempre que un dispositivo est siendo utilizado por el sistema no se podr desmontar. Este emitir un mensaje de error como en el siguiente ejemplo: $ umount /mnt/floppy umount: /mnt/floppy: device is busy Un dispositivo puede estar ocupado por el simple hecho de tener posicionado un shell en el directorio donde se mont, haber lanzado un ejecutable al background desde ese directorio, o haber montado otro dispositivo en un subdirectorio del mismo. Para lograr el objetivo ser necesario eliminar todos estos casos. Siempre que se trabaje con los disquetes en esta forma, sobre todo cuando se realizan operaciones de escritura no se debe olvidar desmontarlo antes de extraerlo de la torre. El resultado puede ser que la informaci n almacenada quede inconsistente. En el caso del CD-ROM esto no es posible pues su funcionamiento electr nico permite que el sistema pueda controlar que mientras no se desmonte el dispositivo, el usuario no pueda extraer el disco.
8 Una fraccin del archivo /etc/fstab, usbfs /proc/bus/usb sysfs /sys /dev/hda1 /windows/C /dev/fd0 /media/floppy /dev/cdrom /media/cdrom Gua No. 4 para verlo usbfs sysfs ntfs auto iso9660 completo utilizar cat /etc/fstab noauto 0 0 noauto 0 0 ro,users,gid=users,umask=0002,nls=utf8 0 0 noauto,owner 0 0 fs=ro,procuid,nosuid,nodev,exec 0 0 11/15
Comando cat
El comando cat concatena (catenate) ficheros y los imprime en la salida est ndar. Si no se le pasa ningn argumento lee de la entrada est ndar. Existe tambin zcat que hace lo mismo pero con ficheros compactados.
Ejemplo:
$ cat /etc/passwd /etc/shadow
Ejemplos:
q - permite interrumpir el proceso y salir. /p - realiza bsquedas del patrn p dentro del texto. Para repetir la b squeda del mismo patrn slo es necesario escribir /. [n]b - en more permite regresar n pginas (por defecto n es 1). [n]f - en more se adelantan n pginas y en less, n lneas. El man, para dar formato a su salida, utiliza por defecto el paginador less. Existen adems los comando zless y zmore que permiten paginar con less y more respectivamente, a los ficheros comprimidos sin necesidad de descomprimirlos previamente.
Comando tar
El comando tar (Tape Archiver) es una herramienta para agrupar varios ficheros aislados o el contenido de un directorio en otro fichero o dispositivo especial.
Sintaxis:
tar [opciones] <fuentes>
Gua No. 4
12/15
Algunas opciones:
-c : Permite crear (tarear). -x : Permite extraer (destarear). -v : Activa el modo explicativo. -f <fichero> : Agrupa o desagrupa en o hacia un fichero y no utilizando la salida o entrada est ndar como es por defecto. -z : Compacta o descompacta el fichero resultante una vez agrupado o desagrupado con gzip y gunzip respectivamente. -t : Lista el contenido de un fichero resultado de un agrupamiento. -M : Agrupa en volmenes. El comando tar conserva la estructura jerrquica original de lo agrupado excluyendo el caracter / que representa a la raz. Algunas opciones se pueden emplear sin el caracter -, siempre y cuando no haya ambigedades entre ellas o con los argumentos.
Ejemplos:
$ $ # # $ $ tar tar tar tar tar tar cvfz /tmp/etc.tg.gz /etc # El ms utilizado xvfz /tmp/etc.tg.gz # El ms utilizado cf uconf.tar passwd shadow groups xf uconf.tar cM -f /dev/fd0 /tmp/etc.tgz xM -f /dev/fd0
Gua No. 4
13/15
1. Hacer un directorio llamado lab04. 2. Dentro de lab04, crear otro directorio llamado linux. 3. Dentro de linux copiar /modules/modules.conf los archivos: /etc/hosts, /etc/fstab y
4. Desde el /home/zumpul ver el contenido del directorio linux. 5. Cambiarse al directorio linux y ver el contenido de los archivos anteriormente copiados. 6. Renombrar fstab a nuevo.nombre. 7. Hacer una copia de respaldo de hosts llamada hosts.respaldo. 8. Retornal al home y borrar el directorio lab04.
Gua No. 4
14/15
Asignaci n.
1. Qu es multitarea y multiusuario? 2. Cul son los caracteres de comodn? Cmo se usan los caracteres de comodn? 3. Hacer un listado de SO del pasado y del presente. 4. Qu es el kernel? 5. Cmo se borrar un directorio completo sin estar vaco? 6. Para cada uno de los siguientes comandos incluir: descripcin, tres banderas u opciones y dos ejemplos de su uso. 1)split 2)ssh 3)kill 4)lpr, lpq y lprm 5)fuser 6)diff 7)eject 8)su 9)whereis 10)who, whoiam 11)ssh,ftp, telnet, exit 12)find 13)ifconfig 14)grep 15)cal 16)sort 17)alias 18)chmod y chown 19)zip y unzip 20)netstat 21)traceroute, ping 22)man 23)vi 24)shutdown,reboot, halt 25)gzip y gunzip
Gua No. 4
15/15