Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y...

32
Sistemas Operativos y una introducci´ on a los sistemas Unix/Linux Moises E. Ram´ ırez 1 Universidad Tecnol´ ogica de la Mixteca Huajuapan de Le´ on, Oaxaca M´ exico http://mixteco.utm.mx/˜merg/ [email protected] August 20, 2007 1 tel. +34-95353 20399 ext 200

Transcript of Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y...

Page 1: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Sistemas Operativos y una introduccion a los sistemas Unix/Linux

Moises E. Ramırez 1

Universidad Tecnologica de la MixtecaHuajuapan de Leon, Oaxaca Mexico

http://mixteco.utm.mx/˜merg/[email protected]

August 20, 2007

1tel. +34-95353 20399 ext 200

Page 2: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Contents

1 Introduccion 3

2 Historia 5

3 Sistemas operativos 73.1 Clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.1 Interfaz con el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Casos especiales de sistemas operativos y sus entornos de trabajo 94.1 Interprete de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.2 Interfaz grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.3 DOS: Disk Operating System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.4 Mac OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.5 Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.6 Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.7 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.7.1 Caracterısticas de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.7.2 GNOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.7.3 KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.7.4 Xfce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.7.5 Enlightenment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5 Entorno de consola basico en Linux 215.1 Estructura de directorios y archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.2 Instrucciones basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.2.1 pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.2.2 ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.2.3 man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.2.4 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.2.5 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.2.6 cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.2.7 tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.2.8 date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.2.9 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.2.10 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.2.11 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.2.12 ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2.13 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2.14 grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2.15 more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

1

Page 3: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

5.2.16 less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.17 ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.2.18 login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.2.19 logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.2.20 passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6 Preguntas y ejercicios 35

2

Page 4: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Chapter 1

Introduccion

Una computadora sin software no presta ninguna utilidad, es solo un conjunto de metal, silicio, equipo decomunicaciones y material magnetico. Son los programas los que hacen que la computadora sea algo util asus usuarios. Aplicaciones hay muchas, desde procesadores de texto, compiladores e incluso herramientaspara crear sistemas operativos. El software puede clasificarse en dos grandes grupos:

+ Programas de sistema (software de base, software de sistema): controlan la operacion de la computa-dora.

+ Programas de aplicacion (software de aplicacion): resuelven problemas para los usuarios.

El Sistema Operativo es el programa fundamental entre los programas de sistemas; controla todos losrecursos de la computadora y proporciona la base sobre la que pueden escribirse los programas de aplicacion.Es un nivel de software por encima del hardware que controla todas las partes del sistema y presenta alusuario una interfaz o maquina virtual que es mas facil de programar que accionar en forma directa sobre elhardware subyacente. En este sentido se dice que el sistema operativo ”define un ambiente de trabajo”.

Como controlador de recursos. Permite la asignacion ordenada de procesadores, memoria y dispositivosde entrada/salida para los varios programas que compiten por el uso de estos recursos evitando que almomento de operar la computadora el usuario o programar aplicaciones tenga que considerar todas estastareas.

En un sistema de computacion se reconocen los siguientes niveles, partiendo desde el usuario hacia lamaquina fısica:

+ Programas de aplicacion: Sistema bancario, Reservaciones aereas, Juegos.

+ Compiladores, Editores, Interprete de comandos.

+ Sistema operativo.

Unix (o UNIX) es un sistema operativo portable, multitarea y multiusuario; desarrollado en principiopor un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, DennisRitchie y Douglas McIlroy.

Hoy dıa, la palabra UNIX se utiliza para denotar diferentes conceptos dependiendo del contexto en quees usada. Esto suele dar lugar a confusiones:

+ UNIX – familia: desde el punto de vista tecnico, UNIX se refiere a una familia de sistemas operativosque comparten unos criterios de diseno e interoperabilidad en comun. Esta familia incluye mas de 100sistemas operativos desarrollados a lo largo de 20 anos. No obstante, es importante senalar que estadefinicion no implica necesariamente que dichos sistemas operativos compartan codigo o cualquierpropiedad intelectual.

3

Page 5: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

+ UNIX – el sistema operativo original: desde el punto de vista historico, UNIX se refiere a lasubfamilia de sistemas operativos que descienden de la primera implementacion original de AT&T.El termino ”descendencia” ha de interpretarse como trabajos derivativos que comparten propiedadintelectual con la implementacion original.

4

Page 6: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Chapter 2

Historia

• En la epoca de los bulbos (o tuvos de vacıo) y conexiones. Se programaba en lenguaje de maquinaabsoluto, o realizando directamente las conexiones electricas. Alrededor de 1950 se introducen lastarjetas perforadas.

• En la epoca de los transistores surgieron los sistemas de procesamiento por lotes: Los programas ydatos se entregaban en tarjetas, se acumulaban y luego eran procesados todos juntos por la maquina,buscando minimizar los tiempos muertos.

• En la epoca de los circuitos integrados y multiprogramacion. El sistema 360 de IBM unifica computa-doras comerciales y cientıficas en una sola lınea de maquinas con software compatible. Se introducela multiprogramacion, que divide la memoria en partes y ejecuta un programa distinto en cada una.El spooling permite la operacion simultanea y en lınea de perifericos. El tiempo compartido es unavariante de multiprogramacion que habilita a cada usuario una terminal en lınea.

Los laboratorios Bell de AT&T, la empresa General Electric y el MIT (Instituto de Tecnologıa deMassachusetts) formaron un equipo de investigacion que desarrollo el sistema operativo denominadoMULTICS (Multiplexed Information and Comptuting System). El sistema MULTICS fue abandonadopor que era un sistema lento y requerıa mucha memoria para operar.

Ken Thompson (AT&T) y Dennis Ritchie utilizando algunos de los conceptos usados para el desarrollode MULTICS se unieron para desarrollar un ambiente mas comodo y simple para desarrollar programas.El nuevo sistema operativo se escribio para la computadora DEC PDP–7 y recibio el nombre de UNICS(Multiplexed Information and Computing System que luego paso a ser UNIX.

El codigo de UNIX fue escrito en el lenguaje de programacion C, lo cual fue totalmente novedosoya que todos los sistemas operativos hasta la epoca eran escritos en lenguaje ensamblador. El lenguajeensamblador en cada maquina en esas epocas tenıa diferencias. El realizar el sistema operativo enlenguaje C permitio que fuera facilmente transportable a otras plataformas. De esta manera habia quedesarrollar el compilador C para cada plataforma (tarea mucho mas sencilla que un sistema operativocompleto), y despues compilarlo para dicha plataforma.

• En la epoca de la integracion a gran escala, surgen las estaciones de trabajo y computadoras personales.El sistema operativo DOS aparece en escena siendo este y posteriormente Windows lo que llevo aMicrosoft a ser la empresa por referencia de software. El Software ”amigable con el usuario” hace suaparicion con el concepto de ventanas intoducido por Xerox y comercializado por Apple inicialmente.

Aparecen sistemas operativos de red, con varias computadoras interconectadas que pueden ser accedidaspor un mismo usuario y sistemas operativos distribuıdos, compuestos por varios procesadores que sepresentan al usuario como un sistema unico.

5

Page 7: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

En 1991, un estudiante de ciencias de la computacion llamado Linus Torvalds desarrollo un nucleo okernel para ordenadores con arquitectura de procesador Intel x86 que contenıa muchas de las funcional-idades de UNIX y lo lanzo en forma de codigo abierto bajo el nombre de Linux. En 1992, el nucleoLinux fue combinado con los programas desarrollados por el Proyecto GNU, dando como resultado elSistema Operativo GNU/Linux.

6

Page 8: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Chapter 3

Sistemas operativos

Es el programa mas importante que se ejecuta sobre la computadora. Cualquier computadora de propositogeneral debe tener un SO para poder ejecutar programas. Los SO realizan tareas basicas como reconocimientode la entrada de datos desde el teclado, enviar datos a la pantalla, la administracion de los archivos ydirectorios almacenados en las unidades de disco duro y el control de los dispositivos perifericos comoimpresoras, scanners, unidades de almacenamiento externas, entre otros.

Para sistemas muy grandes tienen todavıa mas responsabilidades y tareas. Su labor es como la de unpolicıa de transito, se asegura que todos los programas y usuarios obtengan los recursos que necesitan einteractuen sin que unos intervengan con las actividades de otros.

El SO tambien es responsable de la seguridad, se asegura de que usuarios no autorizados no accesen alsistema.

3.1 Clasificacion

Los SO proveen una plataforma para que otros programas (llamados aplicaciones) puedan ejecutarse. Laeleccion del sistema operativo determina las aplicaciones que pueden ejecutarse en cierto momento.

• Multiusuario: Permite que dos o mas usuarios ejecuten programas al mismo tiempo. Varios SO’spermiten cientos o hasta miles de usuarios.

• Multiprocesamiento: Soporta la ejecucion de un mismo programa en mas de un procesador.

• Multitarea: Permite que mas de un programa se ejecute a la vez.

• Multihilo: Permite que diferentes partes de un mismo programa se ejecuten al mismo tiempo.

• Tiempo real: Responde a los datos de entrada instantaneamente.

3.1.1 Interfaz con el usuario

El usuario normalmente interactua con el SO a traves de un conjunto de comandos, por ejemplo en DOS,Linux y Unix se puede crear una carpeta usando el comando MKDIR o mover archivos de un lugar aotro usando MOVE. Los comandos son aceptados y ejecutados por el sistema operativo a traves de unaaplicacion llamada interprete de lınea de comandos.

Las interfaces graficas (GUI) permiten la ejecucion de los mismos comandos mas facilmente, haciendoclic y ejecutando acciones sobre algunos menus (sin necesidad de memorizar los comandos) ejemplos de estosson: las diferentes versiones de Windows (a partir de win’95), las nuevas versiones de Linux como Mandriva,Gentoo, Debian, Fedora, Ubuntu o las Mac.

7

Page 9: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Chapter 4

Casos especiales de sistemasoperativos y sus entornos de trabajo

El sistema operativo unix fue la piedra a partir de la cual surgieron muchos otros sistemas operativos. Ensus inicios en este sistema operativo se trabajaba en modo texto. Posteriormente para hacer mas facil laoperacion de estos sistemas surgieron las interfaces graficas de usuario (Graphic User Interface). En estaseccion se mostraran algunos entornos de trabajo en modo texto y grafico. Posteriormente los sistemasoperativos mas importantes, y en el caso de linux los entornos de trabajo mas comunes.

4.1 Interprete de comandos

Interprete de comandos, Terminal, Consola o Shell es un programa que actua como Interfaz de usuariopara comunicar al usuario con el sistema operativo mediante una ventana que espera comandos textualesingresados por el usuario en el teclado, los interpreta y los entrega al sistema operativo para su ejecucion.La respuesta del sistema operativo es mostrada al usuario en la misma ventana. A continuacion, la shellqueda esperando mas instrucciones. Se interactua con la informacion de la manera mas simple posible, singraficas, solo el texto crudo.

Existen para diversos sistemas operativos, diversos tipos de hardware, con diferente funcionalidad. Suelenincorporar caracterısticas tales como control de procesos, redireccion de entrada/salida, listado y lectura deficheros, proteccion, comunicaciones y un lenguaje de ordenes para escribir programas por lotes o (scripts oguiones). Es posible que un sistema operativo tenga varios interpretes de comandos. En el caso de Linuxesta el Korn shell, Basic Shell, C Shell, entre otros (ver figura 4.1).

Casi cualquier programa puede disenarse para ofrecer al usuario alguna clase de Interprete de comandos.Por ejemplo, casi todos los juegos de PC en primera persona tienen un Interprete de comandos incorporada,utilizada para diagnostico y labores administrativas.

Su contraparte es la Interfaz grafica de usuario que ofrece una estetica mejorada a costa de mayor consumode recursos computacionales, una mayor vulnerabilidad por complejidad y , en general, una reduccion en lafuncionalidad ofrecida.

4.2 Interfaz grafica

En el proceso de interaccion persona-computadora, la interfaz grafica de usuario, es el artefacto tecnologico deun sistema interactivo que posibilita, a traves del uso y la representacion del lenguaje visual, una interaccionamigable con un sistema informatico.

La interfaz grafica de usuario (en ingles Graphical User Interface, GUI) es un tipo de interfaz de usuarioque utiliza un conjunto de imagenes y objetos graficos para representar la informacion y acciones disponibles

8

Page 10: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Figure 4.1: Bash shell sobre entorno Unix/Linux

en la interfaz. Habitualmente las acciones se realizan mediante manipulacion directa para facilitar la inter-accion del usuario con la computadora.

Surge como evolucion de la lınea de comandos de los primeros sistemas operativos y es pieza fundamentalen un entorno grafico.

Ejemplos de interfaz grafica son los llamados ”Desktop” o ”escritorios” de trabajo del sistema operativoWindows y Linux.

4.3 DOS: Disk Operating System

DOS es una familia de sistemas operativos para PC. El nombre son las siglas de Disk Operating System(sistema operativo de disco). Fue creado originalmente para computadoras de la familia IBM PC, queutilizaban los procesadores Intel 8086/8088 de 16 bits, siendo el primer sistema operativo popular para estaplataforma. El interprete de ordenes se llamaba command.com.

En las versiones de Windows modernas, (vease Windows NT, 2000, 2003, XP o Vista) MS-DOS dejo dellamarse ası para convertirse en Sımbolo del Sistema, que se ejecutaba mediante cmd.exe

Existen varias versiones de DOS. El mas conocido de ellos es el MS-DOS (figura 4.2, de Microsoft (deahı las iniciales MS). Otros sistemas son el PC-DOS, DR-DOS y, mas recientemente, el FreeDOS.

Con la aparicion de los sistemas operativos graficos, del tipo Windows, el DOS ha ido quedando relegadoa un segundo plano.

El DOS carece por completo de interfaz grafica, y no utiliza el mouse. Era incapaz de detectar el hardware(no existıa el Plug-and-play), por lo que todo debıa ser configurado manualmente.

No era ni multiusuario ni multitarea. No podıa trabajar con discos duros muy grandes. Originalmente,por limitaciones del software, no podıa manejar mas de 64KB de memoria RAM.

9

Page 11: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

C:\>dirVolume in drive C has no labelVolume Serial Number is 1234-5678Directory of C:\

SETUP <DIR> 01-21-96 9:06pTMP <DIR> 01-21-96 4:01pCOMMAND COM 93,890 01-21-96 10:22pWINDOWS <DIR> 01-21-96 8:42pCONFIG SYS 122 01-31-03 11:50pPROGRA~1 <DIR> 01-21-96 6:26pMYDOCU~1 <DIR> 01-21-96 9:00p. . . . . . . . . . . .AUTOEXEC BAT 1,150 07-26-03 1:03a

10 file(s) 12,056,573 bytes12 dir(s) 1,214.84 MB free

Figure 4.2: Ejemplo de entorno MS-DOS

4.4 Mac OS

Mac OS, abreviatura de Macintosh Operating System (Sistema Operativo de Macintosh), es el nombre delprimer sistema operativo de Apple para los ordenadores Macintosh. El Mac OS original fue el primer sistemaoperativo con una interfaz grafica de usuario en tener exito, figura 4.3.

Apple quito importancia de forma deliberada a la existencia del sistema operativo en los primeros anosde Macintosh para ayudar a hacer que la maquina pareciera mas agradable al usuario y a distanciarla deotros sistemas como MS-DOS, que eran un desafıo tecnico. Apple querıa que Macintosh fuera visto como unsistema que trabajara nada mas con encenderlo (facil).

Figure 4.3: Screenshot del entorno grafico Mac OS X

Fueron introducidas al mercado en 1984, con caracterısticas como: interfaz grafica (GUI) usando ventanas,ıconos y un raton para hacerla relativamente facil para inexpertos y ası comenzar a usar la computadora

10

Page 12: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

mas rapidamente para generar productividad.La interfaz grafica es con la finalidad de evitar el aprendizaje de comandos, de esta forma solamente se

apunta sobre el ıcono y se hace un clic con el raton para ejecutar alguna accion.La interfaz grafica esta embebida en el sistema operativo, esto significa que todas las aplicaciones que cor-

ran sobre una computadora Macintosh tienen una interfaz similar. una vez que un usuario se ha familiarizadocon una aplicacion, aprendera nuevas aplicaciones mas rapidamente.

El exito de la GUI de Macintosh fue el inicio de una nueva era de aplicaciones y sistemas operativosbasados en interfaces graficas. La interfaz de Windwos copia muchas de las caracterısticas de la Mac, figura4.3. Hay muchos modelos diferentes de Macintosh, con diferentes grados de rapidez y poder. Todos losmodelos estan disponibles en diferentes configuraciones.

4.5 Microsoft Windows

Microsoft Windows (conocido simplemente como Windows) es un sistema operativo con interfaz grafica paracomputadoras personales cuyo propietario es la empresa Microsoft. Las distintas versiones de Windows,las cuales ofrecen un entorno grafico amigable y sencillo, principalmente desde la version Windows 95, haconvertido en Windows en el sistema operativo mas utilizado en el mundo. Debido a ello la mayorıa de lasempresas fabricantes de hardware y software en el mundo tienden a desarrollar sus aplicaciones basadas endicho sistema.

Es una familia de Sistemas Operativos para computadoras personales. Windows domina el mercadomundial de las computadoras personales, segun algunas estimaciones esta en un 90% de todas las computa-doras personales.

Del restante 10% la mayorıa son computadoras Apple. Igual que el entorno de las computadoras Macin-tosh, Windows provee interfaz grafica (GUI), administracion de memoria virtual, multitareas y soporte parauna gran variedad de dispositivos perifericos.

4.6 Unix

El sistema operativo Unix es ampliamente utilizado en estaciones de trabajo y serivores. El entorno Unix yel modelo cliente-servidor fueron los elementos escenciales para el desarrollo de Internet, ası las aplicacionespara computadoras comenzaron a orientarse a las redes.

UNIX fue uno de los primeros sistemas operativos que fueron escritos en un lenguaje de alto nivel (lengujeC). Esto significa que podıa ser instalado en virtualmente cualquier computadora en el que existtiera uncompilador de C. Esta portabilidad natural, combinada a su bajo costo lo convirtio en una de las eleccionesmas populares entre las universidades. En realidad no era caro porque los laboratorios Bell prohibıan sucomercio a gran escala. Debido a esta portabilidad Unix se convirtio rapidamente en el sistema operativolıder para los equipos de computo cientıfico.

El lenguaje C y Unix fueron desarrollados por AT&T y distribuidos a instituciones academicas y guberna-mentales ocasionando la portabilidad a una variedad de familias de computadoras mas grande que cualquierotro sistema operativo. Unix fue disenado para ser portable, multitareas y multiusuario en una configuracionde tiempo compartido. Unix maneja los dispositivos y ciertos procesos de comunicacion como archivos, esosignifica que para leer datos del teclado, por ejemplo, se leen datos de un archivo que lo representa.

El kernel o nucleo del sistema es un programa principal de control . Provee servicios para iniciar y detenerprogramas, administra el sistema de archivos y otras tareas de bajo nivel y controla y planifica el acceso a losrecursos de hardware para evitar conflictos cuando dos o mas programas quieren accesarlos simultaneamente.

Las Implementaciones mas importantes de Unix son:

• Solaris de Sun Microsystems. Uno de los sistemas operativos Unix mas difundido en el entorno empre-sarial y conocido por su gran estabilidad, ver figura 4.4.

• AIX de IBM.

11

Page 13: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

• HP-UX de Hewlett-Packard.

Figure 4.4: Screenshot del entorno grafico de Solaris 10

4.7 Linux

Linux es uno de los paradigmas mas prominentes del software libre y del desarrollo del codigo abierto, cuyocodigo fuente esta disponible publicamente, para que cualquier persona puede libremente usarlo, estudiarlo,redistribuirlo y, con los conocimientos informaticos adecuados, modificarlo.

Los primeros sistemas Linux se originaron en 1992, al combinar utilidades de sistema y librerıas delproyecto GNU con el nucleo Linux, completando un sistema tambien conocido como GNU/Linux. Desdefines de 1990 Linux ha obtenido el apoyo de diversas empresas multinacionales del mundo de la informatica,tales como IBM, Sun Microsystems, Hewlett-Packard y Novell.

Si bien Linux es usado como sistema operativo en computadores de escritorio (PCs x86 y x86-64 ası comoMacintosh y PowerPC), computadores de bolsillo, telefonos celulares, dispositivos empotrados y otros, sumayor desarrollo se ha llevado a cabo en el mundo de los servidores y supercomputadores.

Existen numerosas distribuciones Linux (tambien conocidas como ”distros”), ensambladas por individuos,empresas y otros organismos. Cada distribucion puede incluir cualquier numero de software adicional,incluyendo software que facilite la instalacion del sistema. La base del software incluido con cada distribucionincluye el nucleo Linux y las herramientas GNU, al que suelen adicionarse tambien varios paquetes desoftware.

Entre las distribuciones mas importantes de Linux estan:

• Red Hat, Fedora

• SuSE Linux de Novell.

• Mandrake, Mandriva

• Slackware

• Debian, Ubuntu, Xubuntu, Kubuntu

12

Page 14: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Figure 4.5: Entorno grafico X-Window de Unix

Las herramientas que suelen incluirse en la distribucion de este sistema operativo se obtienen de diversasfuentes, incluyendo de manera importante proyectos de codigo abierto o libre, como el GNU y el BSD oel KDE. Debido a que las herramientas de software libre que en primera instancia volvieron funcional alnucleo de Linux provienen del proyecto GNU que desde 1983 habıa liberado software que pudo ser usadoen el proyecto de Linux de 1991, Richard Stallman (fundador del proyecto GNU) pide a los usuarios que serefieran a dicho sistema como GNU/Linux.

Linux en la actualidad es un sistema operativo facil de instalar, tan solo basta con descargar la imageniso de una distribucion como Debian, SuSE, Ubuntu o YellowDog (la mayorıa son gratuitas) y grabarla enun CD o DVD.

Existen versiones linux para maquinas x86 (abarca desde computadoras 386, pentium I, celeron, hastapentium IV), tambien para 64 bits (los nuevos procesadores, aunque tambien trabajan con linux para x86),y para procesadores PowerPc (ppc) de las computadoras Apple Macintosh.

El resto es tan facil como instalar Windows, incluso algunas distrubiciones permiten entrar al escritoriolinux sin necesidad de instalar el sistema operativo (desde el CD), para luego usarlo o instalarlo desde elescritorio.Estas versiones son tambien llamadas Live, del ingles ”en vivo”.

Con la adopcion por numerosas empresas fabricantes de PCs, muchas computadoras son vendidas condistribuciones GNU/Linux pre-instaladas, y ”GNU/Linux” ha comenzado a tomar su lugar en el vastomercado de las computadoras de escritorio.

Con entornos de escritorio, ”GNU/Linux” ofrece una interfaz grafica alternativa a la tradicional interfazde lınea de comandos de Unix. Existen en la actualidad numerosas aplicaciones graficas, ya sean libres o no,que ofrecen funcionalidad que esta permitiendo que GNU/Linux se adapte como herramienta de escritorio.Entre los entornos mas populares estan: Gnome, KDE y en menos parte Xfce, Enlightenment, BlackBox yRatpoison.

4.7.1 Caracterısticas de Linux

• Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo

13

Page 15: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

tiempo. LINUX utiliza la llamada multitarea preeventiva, la cual asegura que todos los programas quese estan utilizando en un momento dado seran ejecutados, siendo el sistema operativo el encargado deceder tiempo de microprocesador a cada programa.

• Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.

• Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-.Pentium, Pentium Pro, Pentium II,Amiga y Atari, tambien existen versiones para su utilizacion enotras plataformas, como Alpha, ARM,MIPS, PowerPC y SPARC.

• Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible para Intel ySPARC.

• Proteccion de la memoria entre procesos , de manera que uno de ellos no pueda colgar el sistema

• Carga de ejecutables por demanda: Linux solo lee del disco aquellas partes de un programa queestan siendo usadas actualmente.

• Todo el codigo fuente esta disponible, incluyendo el nucleo completo y todos los drivers, lasherramientas de desarrollo y todos los programas de usuario; ademas todo ello se puede distribuirlibremente. Hay algunos programas comerciales que estan siendo ofrecidos para Linux actualmente sincodigo fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.

4.7.2 GNOME

GNOME (GNU Network Object Model Environment) es un esfuerzo multinacional para construir un entornode escritorio completo, amigable y facil de utilizar. Esto incluye crear entornos de desarrollo de software,programas para el manejo del escritorio, manejo de archivos y manejo de ventanas, entre otros, ver figura4.6 y 4.7.

Figure 4.6: Screenshot del entorno grafico GNOME sobre Linux

El proyecto GNOME surgio en agosto de 1997 como proyecto liderado por los mexicanos Miguel de Icazay Federico Mena para crear un entorno de escritorio completamente libre para sistemas operativos libres, enespecial para GNU/Linux.

14

Page 16: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Figure 4.7: Screenshot del entorno grafico GNOME sobre Linux

Como con la mayorıa de los programas GNU, GNOME ha sido disenado para ejecutarse en toda la gamade sistemas operativos de tipo Unix con X Window, y especialmente pensado para GNU/Linux. Desde susinicios se ha utilizado la biblioteca de controles graficos GTK, originalmente desarrollada para el programaThe GIMP.

A medida que el proyecto ha ido progresando en los ultimos anos, los objetivos del mismo se han extendidopara tratar una serie de problemas en la infraestructura Unix existente.

4.7.3 KDE

KDE (acronimo del ingles K Desktop Environment, Entorno de Escritorio K) es un entorno de escritoriografico e infraestructura de desarrollo para sistemas Unix y, en particular, Linux. KDE es distribuido juntoa muchas distribuciones Linux, ver figura 4.8.

De acuerdo con su pagina web, ”KDE es un entorno grafico contemporaneo para estaciones de trabajoUnix. KDE llena la necesidad de un escritorio amigable para estaciones de trabajo Unix, similar a losescritorios de MacOS o Windows”.

4.7.4 Xfce

Xfce (exfeis) es un entorno de escritorio ligero para sistemas tipo Unix como Linux, BSD, Solaris y deriva-dos. Se configura ıntegramente con el raton. Su creador, Olivier Fourdan, dice de el: ”Disenado para laproductividad, se carga y ejecuta aplicaciones rapido, mientras conserva recursos de sistema”, ver figura 4.9.

Xfce tambien provee el marco de trabajo para el desarrollo de aplicaciones. Ademas de Xfce mismo,hay otros programas que tambien utilizan las bibliotecas de Xfce, como el editor de texto Mousepad, elreproductor multimedia Xfmedia o el emulador de consola Terminal.

4.7.5 Enlightenment

Enlightenment, tambien conocido simplemente como E, es un ligero gestor de ventanas para UNIX yGNU/Linux. Uno de sus objetivos es llegar a ser un entorno de escritorio completo, figura 4.10. Es muy

15

Page 17: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Figure 4.8: Screenshot del entorno grafico KDE sobre Linux

configurable y visualmente es muy atractivo. Durante un tiempo fue el gestor de ventanas de GNOME.Puede ser usado solo o en conjuncion con otros entornos de escritorio como GNOME o KDE. Tiene una

variedad muy grande de temas y graficos desarrollados pensando en el rendimiento del sistema.

16

Page 18: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Figure 4.9: Screenshot del entorno grafico Xfce sobre Linux

Figure 4.10: Screenshot del entorno grafico KDE sobre Linux

17

Page 19: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Chapter 5

Entorno de consola basico en Linux

Estos ejemplos han sido ejecutados bajo el entorno Gnome/Ubuntu, pero en general se aplican al resto dela familia Linux/Unix.

5.1 Estructura de directorios y archivos

Los directorios mas importantes donde hay datos y programas para la configuracion, administracion y usogeneral del sistema son:

• / Directorio Raız (root)

Es el punto de inicio de la estructura de directorios. Aqui es donde el sistema inicia. Cualquierdirectorio dentro del sistema, estara siempre dentro del directorio root. En general no se recomiendaalmacenar archivos en este directorio. Tambien es importante notar que existe un usuario denominadoroot, este es el usuario con mayores privilegios dentro del sistema.

• /boot Directorio de arranque

Aquı se almacena la informacion necesaria para iniciar o arrancar ( bootear) el sistema. Dentro de estedirectorio esta almacenado el Kernel y el gestor de arranque (en caso de equipos con mas de un sistemaoperativo instalado).

• /etc Directorio de configuracion

Aquı se almacenan los archivos de configuracion del sistema. La mayor parte son archivos que puedenser editados a mano, entre ellos estan:

– /etc/inittab o /etc/init.d: contiene los procesos que seran lanzados al momento de arrancar elsistema durante la operacion normal. Por ejemplo, se puede configurar si se arrancara en modotexto o modo grafico, o si arrancara el servidor de correos, ftp, etc. de forma automatica o manual.

– /etc/fsstab: describe la informacion sobre los diferentes sistemas de archivos en el sistema, suspuntos de montaje y si se haran de forma automatica o manual. Entre los dispositivos a montarestan los discos duros o particiones de ellos, floppies, cdroms, dispositivos usb, etc.

– /etc/passwd: contiene informacion para cada cuenta de usuario

• /bin, /usr/bin

Contienen la mayor parte de los comandos y programas para el uso del sistema. /bin contiene losprogramas mas basicos pero importantes del sistema tales como shells, ls, grep, entre otros. /usr/bincontiene aplicaciones generales para el sistema.

18

Page 20: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

• /sbin, /usr/sbin

Estan almacenados la mayor parte de los programas de administracion, la mayor parte de ellos solopueden ser ejecutados por usuarios con privilegios como root.

• /usr Contiene aplicaciones de usuario, codigos fuente, imagenes, documentacion de ayuda, o archivosde configuracion genericos. Entre los directorios mas interesantes estan:

– /usr/doc

– /usr/share

– /usr/src

– /usr/include

– /usr/X11R6

– /usr/local

• /lib Almacena las librerias compartidas para que los programas puedan ser ejecutados de maneradinamica.

• /home Contiene los archivos personales de cada usuario del sistema. Cada usuario tiene su directoriopersonal dentro de /home y es el sitio donde normalmente todos los usuarios pueden escribir infor-macion dentro del sistema. Es posible configurar el sistema de tal forma que los usuarios no puedanver los archivos de otros usuarios. Tambien se pueden crear grupos de trabajo donde sı se puedancompartir informacion.

• /root Es el directorio home del super usuario root.

• /var Contiene informacion variable que cambia constantemente mientras el sistema esta en fun-cionamiento. Entre las principales cosas contiene los directorios:

– /var/log Contiene los archivos de reportes (log files), mismos que son actualizados mientras elsistema se ejecuta, contiene informacion sobre el status del sistema. En caso de que algo vayamal, se generan archivos de reporte para conocer las causas del problema.

– /var/mail El correo que va saliendo o entrando para cada usuario del sistema se almacena aquı.

– /var/spool contiene los archivos que son encolados para algunos procesos, el mas comun lasimpresiones.

• /tmp Se usa como almacenamiento temporal de los programas que necesitan escribir datos.

• /dev Los dispositivos del sistema son tratados como archivos (ejm, discos duros, floppies, etc) alescribir/leer sobre los archivos en realidad se estan enviando o recibiendo datos de dichos dispositivos.Por ejemplo /dev/cdrom es el archivo que representa la unidad de CD-ROM.

• /mnt Para poder utilizar cada dispositivo, deben ser ”montados” en algun directorio antes de podertener acceso a ellos. En general este directorio contiene los puntos de montaje para cada dispositivo.

5.2 Instrucciones basicas

Nota: en los siguientes ejemplos el sımbolo $ indica el sımbolo del sistema (prompt).

19

Page 21: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

5.2.1 pwd

pwd muestra la ruta absoluta con respecto al directorio raız en que se encuentra actualmente o directorio detrabajo actual.

$ pwd/home/moy$ pwd/home/moy/public\_html

5.2.2 ls

El comando ls muestra los archivos y directorios dentro de una ruta especificada, al no especificar una rutapor default es el direcorio en donde se encuentra.

$ lsacm configuracion Firefox_wallpaper.png wkSpaceadress.html Desktop poem.txt~ workamsn_received download Projects workspacebasura eclipse public_html

El comando ls -l muestra los archivos y directorios en formato largo. En el formato largo aparecen indicadoresde si es un directorio, los permisos (r=read, w=write, x= execute), el dueno del archivo, el grupo al quepertenece, el tamano del archivo en bytes, fecha de ultima modificacion y el nombre del archivo.

$ ls -ltotal 1088drwxr-xr-x 3 moy moy 4096 2007-08-05 09:07 acm-rw-r--r-- 1 moy moy 188674 2007-01-29 12:25 adress.htmldrwx------ 14 moy moy 4096 2007-08-08 18:10 amsn_receiveddrwxr-xr-x 4 moy moy 4096 2007-08-06 10:21 basuradrwxr-xr-x 4 moy moy 4096 2007-06-05 11:28 configuraciondrwxr-xr-x 7 moy moy 4096 2007-08-15 11:40 Desktop

El comando ls -al genera la lista en formato largo -l pero ademas muestra los archivos que empiezan conel caracter .

Los directorios . y .. significan “el directorio de trabajo actual” y el “directorio de trabajo inmediatamenteun nivel inferior”, y la utilidad es para saber entre otras cosas quien los creo y los permisos de los mismos.

$ ls -altotal 3052drwxr-xr-x 98 moy moy 8192 2007-08-17 17:09 .drwxr-xr-x 7 root root 4096 2007-02-01 17:24 ..drwx------ 2 moy moy 4096 2006-02-20 17:13 .3ddesktopdrwxr-xr-x 3 moy moy 4096 2007-08-05 09:07 acmdrwxr-xr-x 3 moy moy 4096 2006-01-27 16:24 .adobe-rw-r--r-- 1 moy moy 188674 2007-01-29 12:25 adress.htmldrwx------ 2 moy moy 4096 2006-01-26 11:58 .alsaplayerdrwxr-xr-x 2 moy moy 4096 2007-07-02 22:31 .anjuta

Otras posibles opciones son: -t y -s, ordenamiento por fecha y tamano respectivamente. -h muestralos tamanos en K (Kilobytes), M (Megabytes) y G (Gigabytes) respectivamente. La opcion -R muestra losdirectorios y archivos de forma recursiva.

20

Page 22: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

$ ls -lhtotal 3,0M-rwxrwxrwx 1 root root 22K 2007-08-16 12:11 Bash_screenshot.png-rwxrwxrwx 1 root root 653K 2007-08-17 11:29 enlightenment.png-rwxrwxrwx 1 root root 40K 2007-08-16 12:11 GNOME-escritorio.png-rwxrwxrwx 1 root root 99K 2007-08-16 17:23 gnome.png-rwxrwxrwx 1 root root 105K 2007-08-16 12:01 KDE_logo.png-rwxrwxrwx 1 root root 106K 2007-08-16 11:55 KDE.png-rwxrwxrwx 1 root root 812K 2007-08-16 18:56 OSX-01.png-rwxrwxrwx 1 root root 163K 2007-08-16 18:56 Solaris10.png-rwxrwxrwx 1 root root 71K 2007-08-16 18:55 tux.png-rwxrwxrwx 1 root root 679K 2007-08-16 12:00 xfce.png-rwxrwxrwx 1 root root 208K 2007-08-16 12:41 Xwindow.png

5.2.3 man

La opcion man muestra ayuda sobre una orden especificada. Por ejemplo:

man ls

muestra el manual de la instruccion ls. Para buscar palabras se usa el comando /palabra donde palabra esla expresion o palabra a buscar. Para salir de la ayuda escribir q

5.2.4 mkdir

mkdir permite crear carpetas (directorios) dentro de la ruta especificada, si solo escribe el nombre deldirectorio, la ruta especificada por default es la ruta actual. Ejemplo:

mkdir computadora

el comando mkdir no arroja ningun mensaje en caso de exito, para comprobar la creacion de la carpetause el comando ls u otro equivalente. Para crear una carpeta dentro de computadora, se puede especificarla ruta usando el separador de directorios /

Supongamos que se quiere crear la siguiente estructura de carpetas:

computadora/|-- entrada|-- memoria|-- procesador|-- salida

la secuencia de creacion de dichas carpetas serıa:

$ mkdir computadora$ mkdir computadora/entrada$ mkdir computadora/memoria$ mkdir computadora/procesador$ mkdir computadora/salida

5.2.5 rmdir

rmdir permite eliminar carpetas vacıas dentro de la ruta especificada. Ejemplo:

rmdir computadora

21

Page 23: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

5.2.6 cd

cd cambia de la carpeta actual a una especificada, si no se especifica ninguna, la ruta destino sera el directoriohome.

$ pwd % para saber donde se est\’a/media/datos/prope/

$ cd computadora$ cd salida$ pwd/media/datos/computadora/salida

algunos casos especiales son:cd .. baja un nivel en la estructura de directorios.cd . se cambia al directorio actual (no hace nada)cd / se cambia al directorio raız del sistemacd /home/alumnos/ se cambia al directorio /home/alumnoscd se cambia al directorio HOMEcd ~/ se cambia al directorio HOMEcd ~/computadora se cambia al directorio computadora que esta dentro de HOME

5.2.7 tree

tree es un programa que lista recursivamente los directorios y archivos de forma indentada.

$ tree.‘-- computadora

|-- entrada| |-- raton.txt| ‘-- teclado.txt|-- memoria|-- procesador‘-- salida

|-- impresora.txt‘-- pantalla.txt

Figure 5.1: uso del comando tree

-d solo muestra directorios-a imprime todos los archivos-r orden alfabetico inverso-h muestra el tamano en formato humano-s orden por tamano-t orden de tiempo-L num muestra hasta el nivel num de profundidad del arbol

5.2.8 date

date muestra o establece la fecha y hora actual del sistema.

$ datelun ago 20 10:04:12 CEST 2007

22

Page 24: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

5.2.9 rm

rm permite eliminar archivos y/o directorios dentro de la ruta especificada. El comando rm -r debe serusado con precaucion ya que permite eliminar de manera recursiva un directorio y sus correspondientessubdirectorios. Los ejemplos seran usando la estructura de la figura 5.1 como referencia.

Para eliminar el archivo raton.txt

$ rm computadora/entrada/raton.txt

Otra forma de hacer lo mismo, es entrar al directorio computadora/entrada y de ahı eliminar el archivo.

$ cd computadora/entrada$ rm raton.txt

el comando rm permite eliminar tambien mas de un archivo en una sola lınea, solo hay q especificar

$ cd computadora/entrada$ rm raton.txt teclado.txt

Usar rmdir para eliminar el directorio entrada ocasionarıa un error porque al menos hay un archivo dentrodel directorio. Una forma de eliminar dicho directorio con todo su contenido es usar el modo recursivo.

$ cd computadora$ rm -r entrada

5.2.10 mv

mv permite mover un archivo o directorio de una carpeta a otra o renombrar carpetas y archivos. Nueva-mente basados en la estructura de la figura 5.1. Si se quiere cambiar el nombre del directorio procesador aprocesamiento, la orden serıa:

$ cd computadora %entra al directorio computadora$ mv procesador procesamiento

si en vez de pantalla.txt se quiere lcd.txt, serıa:

$ cd salida %entra al directorio salida$ mv pantalla.txt lcd.txt

en caso de que se quiera mover la carpeta salida y ponerla dentro del directorio memoria:

$ cd .. %retorno un nivel$ mv salida memoria

5.2.11 top

top proporciona una vision continua de la actividad del procesador en tiempo real. Muestra un listadode las tareas que hacen un uso mas intensivo de la CPU en el sistema, y puede proporcionar una interfazinteractiva para manipular procesos. Puede clasificar las tareas por empleo de CPU, uso de memoria ytiempo de ejecucion.

La mayorıa de las caracterısticas pueden seleccionarse mediante una orden interactiva o especificandolaen el fichero de configuracion personal o general.

La pantalla se actualiza cada 5 segundos de forma predeterminada, pero esto se puede cambiar con laopcion de la lınea de ordenes d o la orden interactiva s. Una pantalla de salida del comando esta en la figura:

Algunos de los datos mas importantes son:

23

Page 25: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Tasks: 106 total, 1 running, 105 sleeping, 0 stopped, 0 zombieCpu(s): 7.6%us, 1.2%sy, 0.0%ni, 90.9%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%stMem: 1262436k total, 1140556k used, 121880k free, 224608k buffersSwap: 0k total, 0k used, 0k free, 580092k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND5000 root 16 0 238m 39m 10m S 2.9 3.2 2:04.06 Xorg5554 moy 15 0 46940 8972 5800 S 2.9 0.7 1:49.69 xmms5537 moy 15 0 18500 11m 8148 S 0.7 0.9 0:19.96 metacity6255 moy 15 0 66732 17m 10m S 0.5 1.4 0:02.57 gnome-terminal6378 moy 15 0 134m 99m 13m S 0.5 8.0 0:34.64 evince2124 root 10 -5 0 0 0 S 0.2 0.0 0:02.04 ata/05381 root 31 15 3212 1816 812 S 0.2 0.1 0:09.60 preload5540 moy 16 0 65804 25m 16m S 0.2 2.0 0:13.37 gnome-panel5670 moy 15 0 34880 10m 7824 S 0.2 0.9 0:01.54 notification-da6539 moy 18 0 2316 1172 888 R 0.2 0.1 0:01.00 top

1 root 15 0 2776 1668 524 S 0.0 0.1 0:01.39 init2 root 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/03 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/04 root 10 -5 0 0 0 S 0.0 0.0 0:00.09 events/05 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread

Figure 5.2: uso del comando top

• uptime Esta lınea muestra el tiempo que el sistema ha estado activo, y las tres medias de carga parael sistema. Las medias de carga son el numero medio de procesos listos para ejecutarse durante losultimos 1, 5 y 15 minutos. La lınea de uptime puede quitarse o ponerse con la orden interactiva l (eleminuscula).

• processes El numero total de procesos ejecutandose cuando la ultima actualizacion. Este numerotambien se divide en el numero de tareas que estan ejecutandose, durmiendo, paradas o no-muertas.Las lıneas de procesos y estados pueden quitarse o ponerse con la orden interactiva t.

• CPU states Muestra el porcentaje de tiempo de CPU en modo de usuario, en modo de sistema ,en tareas con la prioridad alterada por nice, y el tiempo de inactividad. (Las tareas con la prioridadalterada por nice son solamente aquellas cuyo valor nice es negativo.) El tiempo transcurrido en lastareas con la prioridad alterada por nice tambien se contara en el tiempo de sistema y de usuario, asıque el total sera superior al 100%. Las lıneas de procesos y estados y tiempos de CPU pueden quitarseo ponerse con la orden interactiva t.

• Mem Datos sobre el empleo de memoria, incluyendo la memoria disponible en total, la memoria libre,la usada, la compartida, y la utilizada para buferes. La lınea de la informacion de memoria puedeponerse o quitarse con la orden interactiva m.

• Swap Datos sobre el espacio de intercambio, incluyendo el total, el disponible y el empleado. Swapy Mem son sencillamente como la salida de free.

• PID El identificador (ID) de proceso (PID) de cada tarea.

• PPID El ID del proceso padre de cada tarea.

• UID El ID de usuario del propietario de la tarea.

24

Page 26: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

• USER El nombre de usuario del propietario de la tarea.

• PRI La prioridad de la tarea.

• NI El valor de nice de la tarea. Valores negativos indican menor prioridad.

• SIZE Se muestra aquı el tamano del codigo de la tarea mas datos mas espacio de pila, en kB.

• TSIZE El tamano del texto o codigo de la tarea.

• DSIZE Tamano de Datos + Pila.

• SWAP Tamano de la parte de la tarea que esta en el espacio de intercambio.

• RSS Se muestra aquı la cantidad total de memoria fısica utilizada por la tarea, en kilobytes.

• SHARE Se muestra en esta columna la cantidad de memoria compartida empleada por la tarea.

• STAT Aquı se ve el estado de la tarea. El estado puede ser S para durmiente, D para sueno nointerrumpible, R para ejecucion, Z para zombies, o T para parados o trazados. Estos estados semodifican por un ¡ al final para procesos con valor de nice negativo, N para un proceso con valor denice positivo, o W para un proceso en espacio de intercambio (esto no funciona correctamente paraprocesos del nucleo).

• TIME El tiempo total de CPU que la tarea ha usado desde que empezo. Si el modo acumulativoesta activado, tambien incluye el tiempo de CPU empleado por los hijos del proceso que hayan muerto.Uno puede establecer el modo acumulativo con la opcion de la lınea de ordenes S o cambiarlo con laorden interactiva S. La lınea de cabecera se cambiara entonces a CTIME.

• %CPU La porcion del tiempo de CPU consumido por la tarea desde la ultima actualizacion de lapantalla, expresada como un porcentaje del tiempo de CPU total.

• %MEM La porcion de la memoria fısica ocupada por la tarea.

• COMMAND El nombre de la orden de la tarea, que se truncara si es demasiado largo como paramostrarse en una lınea. Las tareas en memoria tendran una lınea de ordenes completa, pero las queesten en espacio de intercambio solamente tendran el nombre del programa entre parentesis

5.2.12 ps

ps muestra una instantanea de los procesos actuales. Para actualizacion continua se debe usar el comandotop. algunas opciones interesantes son:

-u usuario muestra los procesos que esta ejecutando “usuario“-l imprime los datos en formato largo-m muestra informacion de memoria-x muestra procesos que no estan controlados por ninguna terminal-a muestra tambien los procesos de otros usuarios-r solo procesos que se estan ejecutando

la figura 5.3 muestra una salida en formato largo para el usuario “usario”.

5.2.13 kill

kill envia senales a procesos. La senal por default es TERM (terminar). La aplicacion que mas comunmentese le da es para terminar procesos, la forma de hacerlo es escribir el comando kill -9 NUM PROCESO.

Algunos ejemplos son:

$ kill -9 -1 %mata todos los procesos que puede matar el usuario

$ kill -9 5215 5317 % mata los procesos 5215 y 5217

25

Page 27: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

$ ps -l -u usuario

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD4 S 1001 5215 4997 0 76 0 - 7750 - ? 00:00:00 gnome-session1 S 1001 5511 5215 0 75 0 - 1063 - ? 00:00:00 ssh-agent1 S 1001 5512 5215 0 75 0 - 1064 - ? 00:00:00 ssh-agent1 S 1001 5515 1 0 78 0 - 666 - ? 00:00:00 dbus-launch1 S 1001 5516 1 0 75 0 - 711 - ? 00:00:00 dbus-daemon0 S 1001 5518 1 0 75 0 - 1874 - ? 00:00:01 gconfd-21 S 1001 5521 1 0 78 0 - 689 - ? 00:00:00 gnome-keyring-d0 S 1001 5523 1 0 75 0 - 7572 - ? 00:00:02 gnome-settings-0 S 1001 5532 1 0 77 0 - 428 wait ? 00:00:00 sh0 S 1001 5533 5532 0 75 0 - 1253 - ? 00:00:00 esd0 S 1001 5537 5215 0 75 0 - 4625 - ? 00:00:23 metacity0 S 1001 5539 5215 0 75 0 - 22044 - ? 00:00:08 nautilus

Figure 5.3: uso del comando ps

5.2.14 grep

grep busca en la entrada, bien en la que se le especifica con nombres de ficheros o bien en la entrada estandarlas lıneas que concuerden o coincidan con el patron dado.

Suponiendo el archivo que aparece en la figura 5.4, algunos ejemplos son:

Command Descriptioncd d Change to directory dmkdir d Create new directory drmdir d Remove directory dmv f1 [f2...] d Move file f to directory dmv d1 d2 Rename directory d1 as d2passwd Change passwordalias name1 name2 Create command alias (csh/tcsh)alias name1="name2" Create command alias (ksh/bash)unalias name1[na2...] Remove command alias nassh nd Login securely to remote nodeexit End terminal sessionsetenv name v Set env var to value v (csh/tcsh)export name="v" set environment variable to value v (ksh/bash)

Figure 5.4: archivo a procesar usando grep

Buscando todas las apariciones del texto “command” dentro del archivo serıa:

$ grep command comandos.txtalias name1 name2 Create command alias (csh/tcsh)alias name1="name2" Create command alias (ksh/bash)unalias name1[na2...] Remove command alias na

Tambien se puede usar en combinacion del comando cat usando el operador redireccionamiento pipe,— . Si por ejemplo se buscan todas las lıneas donde exista la palabra “directory”, ademas imprimiendo elnumero de lınea donde aparece el patron, serıa:

26

Page 28: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

$ cat comandos.txt | grep -n directory2:cd d Change to directory d3:mkdir d Create new directory d4:rmdir d Remove directory d5:mv f1 [f2...] d Move file f to directory d6:mv d1 d2 Rename directory d1 as d2

Si se desea buscar la palabra “directory” en los archivos de texto que estan dentro del directorio “com-mand” y sus respectivos subdirectorios, ademas mostrar el numero de lınea donde esta dicha palabra, laorden a usar es:

$ grep -n -r directory command/command/comandos.txt:2:cd d Change to directory dcommand/comandos.txt:3:mkdir d Create new directory dcommand/comandos.txt:4:rmdir d Remove directory dcommand/comunes/edicion.txt:10:mv f1 [f2...] d Move file f to directory dcommand/otros/datos.txt:16:mv d1 d2 Rename directory d1 as d2

5.2.15 more

more es un filtro para paginar texto, mostrando una pantalla cada vez. Los usarios deben tener en cuentaque less provee muchas mejoras.

Para mostrar la siguiente lınea usar la tecla “enter”, para pasar a la siguiente pagina usar “espacio”.Para realizar busquedas dentro del texto mostrado, es posible usar los comandos de busqueda de patrones

de vi.

/patron

dado un patron de busqueda, usar n para la siguiente aparicion del patron.

5.2.16 less

less es similar a more, la diferencia es que permite mover hacia atras y hacia adelante. No requiere teneren memoria la entrada completa antes de empezar ası que es mas rapido que usar otros editores como vi.

Para realizar busquedas puede usar los mismos comandos que en el editor vi o more .

5.2.17 ssh

ssh es un programa para conectarse a una maquina remota y ejecutar comandos en ella. Provee comunica-ciones seguras y encriptadas sobre la red. Conexiones X11 y puertos TCP arbitrarios tambien pueden serconectados sobre un canal seguro. En caso de no especificar el nombre del usuario (login, username) se usael username actual por default. En caso de no existir, se debe ingresar el username, y posteriormente elpassword en ambos casos.

Para conectarse a un servidor con soporte X, usar la siguiente secuencia:

$ ssh -X [email protected] uses only. All activity may be monitored and [email protected]’s password:Last login: Mon Aug 20 13:35:14 2007 from red09.utm.mxAuthorized uses only. All activity may be monitored and reported.You have mail.bash-2.05$ _

27

Page 29: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

5.2.18 login

login permite cambiar de usuario dentro de un sistema.

5.2.19 logout

logout permite terminar la sesion del usuario.

5.2.20 passwd

passwd al ser utilizada sin parametros cambia la contrasena para el usuario que lo invoca. Primero le exigirala contrasena vigente, y a continuacion pedira dos veces la nueva para prevenir errores de escritura.

El superusuario puede invocar el programa para cambiar la contrasena de un usuario existente. En estecaso no se exige al superusuario la contrasena vigente para el usuario. El uso de los dos parametros asignaal usuario la contrasena indicada en el segundo parametro. Puede ser util cuando se debe dar a muchosusuarios una contrasena inicial predefinida. Pero tambien puede ser extremadamente peligroso. Un simplefallo en un programa podrıa cambiar la contrasena del superusuario (root) a cualquier cosa desconocida.

$ passwdChanging password for alguien(current) UNIX password:Enter new UNIX password:Retype new UNIX password:passwd: contrase\~na actualizada correctamente

28

Page 30: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Chapter 6

Preguntas y ejercicios

1. Que es un sistema operativo? Por que usar un sistema operativo?

2. Que ventajas tiene un sistema con interfaz grafica a uno que funciona en modo texto (consola), (men-cione 3)?

3. Historicamente, que importancia tiene Unix o Por que cree que es y ha sido tan importante?

4. Mencione 4 gestores o entornos de escritorio de Linux, y 4 diferentes distribuciones. Que diferenciahay entre una distribucion y un entorno de escritorio?

5. Que ventaja tiene Windows (en sus diferentes versiones) sobre otros sistemas operativos?

6. Que utilidad tiene el directorio ’HOME’ dentro de Linux?

7. En que directorios se encuentran la mayor parde de los programas y comandos mas usados?

8. Directorio donde se encuentra los programas que inician al momento de arrancar la maquina.

9. Instruccion para listar los usuarios que estan conectados actualmente al sistema y guardarlo dentro deldirectorio ’HOME’ directamente en el archivo ’usuarios.txt’

10. Escriba la secuencia de comandos para crear la siguiente estructura de archivos y directorios -losarchivos por notacion aparecen con extension, los directorios no la tienen.

computadora/|-- almacenamiento| |-- cd.txt| |-- discosduros.txt| ‘-- dvd.txt|-- entrada| |-- raton.txt| ‘-- teclado.txt|-- memoria| |-- ram.txt| ‘-- rom.txt|-- procesador| |-- amd.txt| ‘-- powerPC.txt‘-- salida

|-- impresora.txt‘-- pantalla.txt

29

Page 31: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

11. Suponga que esta dentro del directorio computadora, redireccione la salida del comando date hacia elarchivo fecha.txt.

12. Renombre el archivo “fecha.txt“ y pongale “coreduo.txt”. Muevalo al directorio procesador.

13. Mueva el directorio memoria con todo su contenido y coloquelo dentro del directorio procesador.(especifique desde donde se encuentra cuando ejecute el comando).

14. Investigue como usar el comando chmod y cambie los permisos del archivo amd.txt para que tengapermisos rwxr-xr–

15. Elimine el directorio salida usando el comando rmdir en combinacion con el comando rm.

16. Suponga que el archivo dvd es muy grande, y solo se quieren mostrar las lıneas del archivo donde aparecela palabra pista y guardarlas en un archivo de nombre pistasdvd.txt dentro del mismo directorio. Quecombinacion de instrucciones se usarıan? Recuerde el redireccionamiento.

17. Se quiere guardar la lista de usuarios que estan en lınea en el sistema en un archivo dentro de la carpetacomputadora, el archivo debe llamarse “usuarios.txt”.

18. Que diferencia existe entre los comandos cat, more y less?

19. Elimine el directorio procesador, junto a todo su contenido, usando solo una instruccion

20. Dibuje de manera jerarquica (como en la fig del problema 5) que archivos deben quedar. Posteriormenteelimine toda la estructura sin usar la opcion recursiva del comando rm.

21. A partir de la siguiente secuencia de instrucciones:

$ mkdir paises$ cd paises$ mkdir america$ mkdir asia$ mkdir europa$ cd asia$ ls > mexico.txt$ ls > vietnam.txt$ cd ..$ who > america/japon.txt$ who > america/brasil.txt$ ls -R > europa/congo.txt$ ls -R > europa/usa.txt

(a) Como queda la estructura de archivos y directorios? (dibujela)

(b) Usando el comando move, escriba la secuencia para que los archivos de los paises queden dondecorresponden, si falta alguna carpeta de algun continente, creela.

(c) Cree una carpeta de nombre euroAsiaAfri (Euro-asiatico-africano) y mueva las carpetas que cor-respondan dentro de este directorio.

(d) Cree las carpetas sudamerica y norteamerica dentro de america, y coloque los archivos correspon-dientes segun su localizacion geografica.

(e) De forma jerarquica, dibuje como quedarıa la estructura.

(f) Escriba las instrucciones para mostrar el contenido de la carpeta america y sus subcarpetas.

30

Page 32: Sistemas Operativos y una introducci´on a los sistemas ...mixteco.utm.mx/~merg/prope/unix.pdfclic y ejecutando acciones sobre algunos menus´ (sin necesidad de memorizar los comandos)

Bibliography

[1] Kernighan, Brian W. El entorno de programacion Unix, 1992

[2] manual de referencia electronico de linux, man comando,

[3] Mohr, James Linux: recursos para el usuario, 1999.

[4] Morgan Rachel, McGilton Henry, Introduccion al UNIX Sistema V, McGraw Hill

[5] Petersen, Richard, Linux: manual de referencia, 1999.

[6] Webopedia, www.webopedia.com

[7] Wikipedia, www.wikipedia.com

31