PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II Objetivos El alumno conocerá algunos tipos de software operativo existentes que le serán útiles en su desempeño académico y profesional. Al final de esta práctica el alumno podrá: 1. Distinguir varias opciones de software operativo. 2. Utilizar algunos tipos de software operativo. Sistema operativo Unix Unix es un sistema operativo portable, multitarea y multiusuario; desarrollado en principio por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy A finales de los años sesenta, el Instituto Tecnológico de Massachusetts, los laboratorios Bell de AT&T y General Electric trabajaban en un sistema operativo experimental llamado Multics (Multiplexed Information and Computing System), desarrollado para ejecutarse en una computadora modelo GE-645. El objetivo del proyecto era desarrollar un sistema operativo interactivo que contara con muchas innovaciones, entre ellas, mejoras en las políticas de seguridad. Los laboratorios Bell de AT&T decidieron desvincularse y dedicar sus recursos a otros proyectos. Uno de los programadores del equipo de los laboratorios Bell, Ken Thompson, siguió trabajando para la computadora GE-645 y escribió un juego llamado Space Travel (Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric y resultaba realmente caro, algo así como 75 dólares por cada partida. De este modo, Thompson escribió nuevamente el programa, con ayuda de Dennis Ritchie, en lenguaje ensamblador, para que se ejecutara en un ordenador DEC PDP-7. Esta experiencia, junto al trabajo que desarrolló para el proyecto Multics, llevó a Thompson a iniciar la creación de un nuevo sistema operativo para la DEC PDP-7. Thompson y Ritchie condujeron a un grupo de programadores, entre ellos a Rudd Canaday, en los laboratorios Bell, para desarrollar tanto el sistema de archivos como el sistema operativo multitarea en sí. A lo anterior, agregaron un intérprete de comandos y un pequeño conjunto de programas. El proyecto fue bautizado UNICS, como acrónimo de Uniplexed Information and Computing System, pues sólo prestaba servicios a dos usuarios. Dada la popularidad que tuvo un juego de palabras que consideraba a UNICS un sistema MULTICS modificado, se cambió el nombre a Unix. Existen varias versiones de Unix que han sido desarrolladas por diversas compañías y que pueden obtenerse adquiriendo productos específicos que comercializan éstas. Algunas versiones son: SunOS, Ultrix, HP-UX. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 1 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II Unix posee las siguientes características: • Es un sistema operativo multiusuario, con multiprocesamiento y procesamiento no interactivo. • Está escrito en un lenguaje de alto nivel. • Dispone de una aplicación que interpreta los comandos tecleados por el usuario llamado shell. • Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software. • Emplea manejo dinámico de memoria por intercambio o paginación. • Tiene capacidad de interconexión de procesos. • Permite comunicación entre procesos. • Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos. • Hace uso de redireccionamiento de entrada salida, filtros e interconexiones. capacidad de simular Algunos comandos básicos que se utilizan en Unix son: a) cd nombre-directorio: cambia al nombre-directorio. b) cd .. : cambia a un directorio del nivel superior. c) cd ../directorio: cambia a un directorio del mismo nivel. d) pwd: muestra la ruta del directorio actual. e) cp archivo_a_copiar archivo_destino: copia un archivo f) ls : lista archivos y directorios. g) ls nombre* : lista los archivos cuyos nombres tengan un inicio similar, por ejemplo ls sec*, lista archivos cuyo nombre empiece con sec. h) ls *nombre : lista los archivos cuyos nombres tengan una terminación similares, por ejemplo ls *2 , lista archivos cuyo nombre termine con 2. i) mkdir directorio: crea un directorio. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 2 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II j) cat > archivo1: crea archivo1 si no existe y reemplaza su contenido, permite escribir hasta oprimir ctrl+d. Sistema operativo Linux Linux es un sistema operativo muy similar a Unix, por lo que utiliza comandos que también se utilizan en Unix. Dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el software viene acompañado del código fuente. El software lo forman el núcleo del software (kernel) más un gran número de programas/ librerías que hacen posible su utilización, se distribuye a través de la Licencia Pública General GNU, lo que básicamente significa que puede ser copiado libremente, cambiado y distribuido. Linux corre principalmente en PCs basados en procesadores 386/486/586/Pentium, Pentium Pro, Pentium II, Amiga y Atari, también existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC, usando las facilidades de proceso de la familia de procesadores 386 para implementar las funciones nombradas. El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Linus Torvalds, la persona de la que partió la idea de este proyecto, a principios de la década de los noventa. Linux tiene una mascota oficial, el pingüino de Linux , que fue seleccionado por Linus Torvalds para representar la imagen que él asocia al sistema operativo que creó. La distribución de Linux corre a cargo de distintas compañías , cada una de ellas con su propio paquete de programas , aunque todas faciliten un núcleo de archivos que conforman una versión de Linux, algunas distribuciones son: Mandrake, Debian, Red Hat, Fedora. Algunos comandos básicos que se utilizan en Linux son: a) date: muestra la fecha del sistema. b) logout: sale de la sesión actual. c) ctrl+d: sale de la actual sesión. d) Alt+F1: inicia una consola virtual (varias a la vez: F1,F2,F3...). e) passwd: cambia la contraseña del actual usuario. f) ctrl+c: aborta programa en ejecución. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 3 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II g) ctrl+s: paraliza la pantalla. h) ctrl+q: anula la paralización de la pantalla. i) who: lista los usuarios conectados. j) whoami: lista el nombre del usuario desde donde se teclea ese comando. k) ls: lista directorios y archivos. l) cat > archivo1: crea archivo1 si no existe y reemplaza su contenido, permite escribir hasta oprimir ctrl+d. m) cat >> archivo1: añade el nuevo contenido a lo existente en archivo1. n) cat archivo1 archivo2 > archivo3: copia los archivos 1 y 2 sobre el nuevo archivos3. o) cp archivo_a_copiar archivo_destino: copia un archivo. p) rm archivo: borra el archivo. q) mv archivo1 directorio1: mueve archivo1 al directorio1. r) pwd: muestra la ruta del directorio actual. s) cd: cambia de directorio. t) mkdir directorio1: crea el directorio1. u) comando > archivo1: la salida de un comando la redirecciona a archivo1. v) tty: muestra el nombre del dispositivo tty (terminal). w) vi archivo1: utilizar el editor vi con el archivo1. x) clear: se limpia la pantalla. k) ls nombre* : lista los archivos cuyos nombres tengan un inicio similar, por ejemplo ls sec*, lista archivos cuyo nombre empiece con sec. l) ls *nombre : lista los archivos cuyos nombres tengan una terminación similares, por ejemplo ls *2 , lista archivos cuyo nombre termine con 2. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 4 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II Ejemplo del sistema operativo Unix Objetivo: El alumno utilizará el comando cp para cambiar de un directorio a otro 1. La ubicación inicial del usuario es la siguiente ruta: /usr/alumno/documentos, para cambiar al directorio del nivel superior llamado alumno, es necesario ejecutar el comando cd .. , de esta manera la ubicación del usuario cambia a: /usr/alumno/ . 2. Para regresar al directorio documentos, debe ejecutarse el comando cd pero indicando el nombre del directorio al que se desea cambiar y que se encuentra dentro de la ruta actual, esto es: cd documentos, de esta manera la ubicación del usuario cambia a: /usr/alumno/documentos. 3. En la ubicación actual dada por la ruta /usr/alumno/documentos, existen los subdirectorios tareas, proyectos y lecturas. Para cambiar al subdirectorio tareas, se utiliza el comando cd tareas. Por lo tanto, la ubicación del usuario ahora es /usr/alumno/documentos/tareas. 4. Tomando como base la ubicación actual /usr/alumno/documentos/tareas, para cambiar al subdirectorio proyectos, el cual es un directorio que se encuentra en /usr/alumno/documentos y al mismo nivel que el subdirectorio tareas, se utiliza el comando cd ../proyectos. Así, la ruta donde se encuentra el usuario es: /usr/alumno/documentos/proyectos. Ejemplo del sistema operativo Linux Objetivo: El alumno creará un archivo de texto haciendo uso del editor vi. Para crear archivos de texto haciendo uso del editor vi, es necesario seguir los siguientes pasos: 1. Escribir el comando vi ejemplo después del prompt % y presionar enter. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 5 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II 2. Se observará una pantalla que indicará que un nuevo archivo de texto llamado ejemplo se ha creado. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 6 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II 3. Para comenzar a escribir sobre el archivo ejemplo es necesario pasar a modo de inserción a través del comando insertar, para esto, basta con pulsar la tecla i. Es necesario mencionar que todo el texto que se teclee se escribirá en el archivo. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 7 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II 4. Para borrar algún carácter, por ejemplo, la i del inicio de la tercera línea es necesario ejecutar otro comando, sin embargo esto sólo puede hacerse estando en modo comando, para lograrlo debe oprimirse la tecla Esc, después recorrer el cursor hacia la izquierda con la tecla h para colocarse sobre el carácter que se desea borrar y finalmente presionar la letra x para borrarlo. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 8 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II 5. Para grabar lo escrito en el archivo ejemplo y salir del editor se presiona la tecla Esc, se escribe :wq y a continuación enter. Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 9 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 10 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II Algunos comandos para utilizar el editor vi se muestran en la tabla 1: Comando Descripción i Permite empezar a escribir h Mueve el cursor hacia la izquierda l Mueve el cursor hacia la derecha x Borrar un carácter A Inserción al final de la línea j Bajar una línea k Subir una línea R Sobrescribe a partir de la posición del cursor :w Guardar el archivo :wq Guardar el archivo y salir del editor :q! Salir del editor sin guardar cambios al archivo Tabla 1. Comandos en el editor vi Es conveniente recordar que para poder emplearlos debe oprimirse antes la tecla Esc. Puntos a considerar en ambos sistemas operativos a) No existe el concepto de unidad de disco. Todas las unidades se montan como si fueran un subdirectorio más. b) No existe el concepto de extensión del nombre de un archivo. Los archivos pueden tener nombres de hasta 256 caracteres. Los puntos están permitidos en el nombre de un archivo. Así, un archivo se podrá llamar: Ejemplo.explicado.txt.tar.gz c) No existen convenciones para los nombres de archivos, por lo tanto se puede asignar o no una extensión a un tipo de archivo. d) Se hace distinción entre letras mayúsculas y minúsculas, por lo tanto los archivos HOLA, hola, HoLa y Hola son diferentes. Ejercicios propuestos 1. Utilizar el editor vi para crear un archivo y emplear todos los comandos mencionados en la tabla 1. 2. Teclear el comando date y anotar lo observado 3. Escribir el comando cal ¿para qué sirve? 4. Crear un nuevo directorio y llamarlo practicaSW Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 11 PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte II 5. Utilizar el editor vi para crear dos archivos, mover el primer archivo a un directorio existente, copiar el segundo archivo en otro directorio que creará y llamará seccion2. 6. Observar lo que hacen los comandos ls, ls –l, ls –la, ls –li, e indicar qué diferencias existen entre los cuatro. 7. Crear un archivo de 5 líneas utilizando el comando cat, llamarlo memorandum. 8. Utilizar el comando cat para añadirle 3 líneas de texto a un archivo existente. 9. Ejecutar ls –la > listas. Indicar lo que contiene el archivo listas tras ejecutar el comando. 10. Listar archivos cuyo nombre empiece con la letra t. 11. Crear dos directorios notas1 y notas2, crear tres archivos y guardarlos en el directorio notas1, nombrar a cada archivo de la forma siguiente: f1,f2,f3. Copiar al mismo tiempo los tres archivos en el directorio notas2. 12. Listar archivos cuyo nombre termine con la palabra exe. 13. Utilizar el editor vi para crear tres archivos diferentes con nombres que empiecen con la letra a (por ejemplo, a1.txt, algoritmo.doc, archivo2.txt). Listar archivos cuyo nombre empiece con la letra a y terminen con la palabra txt. 14. Utilizar el comando pwd e indicar lo observado. 15. Utilizar el comando ps e indicar lo observado. 16. Realizar el ejemplo de la práctica correspondiente al sistema operativo Unix, haciendo uso del sistema operativo Linux. Crear los directorios mencionados. 17. Crear un directorio llamado lista, usar el editor vi para crear cinco archivos que se guardarán en el directorio creado. Finalmente utilizar el comando rm *, explicar para qué sirve éste. 18. Crear un directorio llamado lab y otro llamado nuevolab, usar el editor vi para crear cinco archivos que se guardarán en el directorio lab. Utilizar el comando cp –r lab nuevolab. ¿Cuál es el objetivo de escribir tal comando? 19. Utilizar el comando man date e indicar lo observado. 20. Usar el comando ls –la > datos.txt y después cat datos.txt ¿Qué hacen ambos comandos? (OSURIHVRUSRGUiGLVHxDUVXVSURSLRVHMHUFLFLRVVLHPSUH\FXDQGRFXEUDSRUFRPSOHWRHOREMHWLYRGH ODSUiFWLFD Elaborada por: Ing. Alejandra Vargas E. De los M. alejandrav@correo.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx 12