Operating Systems User Interfaces M.C. Juan Carlos Olivares Rojas Operating Systems...

422
Operating Systems User Interfaces M.C. Juan Carlos Olivares Rojas Operating Systems [email protected] February, 2009

Transcript of Operating Systems User Interfaces M.C. Juan Carlos Olivares Rojas Operating Systems...

  • M.C. Juan Carlos Olivares RojasOperating [email protected], 2009

  • OutlineCLI (Command Line Interface)DOS Basic CommandsWindows NT Basic Commands*X Systems

    Graphical User InterfacesBasic Operation of Wndows Systems at Windows, *X and MAC-OS

    New Trends in User Interface of Operating Systems

  • ObjectiveThe student will know and apply basic commands in diferent OS.

    The student will know the Basic Concepts about Graphical User Interfaces and the trends in user interfaces.

  • DOSDOS (Disk Operating System, Sistema Operativo de Disco) fue el primer sistema operativo para las IBM-PC.

    Desarrollado por la compaa Microsoft en 1981 se venda junto con la computadora personal de IBM, recibiendo IBM las regalas.

    Es un sistema operativo compacto con muchas limitaciones actualmente, pero funcional.

  • DOSEs un sistema operativo monotarea, multiusuario capaz de ejecutarse a travs de un disco flexible (recordar que las primeras PCs no tenan disco duro)

    Es un sistema operativo basado en lnea de comandos, por lo que el usuario para poder trabajar con la mquina ocupa saber comandos.

  • DOSEl sistema operativo cuenta con comandos que son reconocidos como vlidos los cuales se pueden encontrar en el proceso principal o en utileras.

    Cualquier programa tiene que acceder al sistema operativo para el manejo de los recursos, pero DOS es muy tolerante en el acceso al hardware

  • DOSLa administracin de procesos es simple, dado que slo existe una tarea activa.

    El sistema puede manejar interrupciones y ejecutar otra tarea.

    Los procesos pueden ser .com o .exe, donde los primeros slo ocupan un segmento.

  • DOSLa memoria est administrada a travs de un esquema de segmentacin. Cada segmento tiene un tamao de 64 KB. El sistema operativo slo puede acceder a 640 KB.

    El microprocesador 8086 puede direccionar hata un MB de memoria RAM por lo que queda una zona de memoria alta entre 640 KB y 1 MB llamada memoria alta.

  • DOSEl sistema no puede acceder a ms de 1 MB de RAM, por lo que se encuentra limitado en el nmero de programas que se mantiene en memoria.

    A la memoria entre un 640 KB y 1 MB se le llama memoria expandida, despus del 1 MB y superior se le llama memoria extendida. Esta limitante motivo el surgimiento de Windows.

  • DOSLa administracin de Entrada/Salida (Perifricos) es sencilla ya que no hay comparticin de los mismos. Cada programa necesita instalar el controlador del dispositivo para que pueda trabajar de forma eficiente.

    La administracin de archivos se basa en un esquema jerrquico tipo rbol, en donde la raz corresponda cada letra de una unidad de almacenamiento.

  • DOSLos archivos deben tener un nombre mximo de 8 caracteres seguidos de una extensin de mximo tres caracteres.

    Las nuevas versiones de DOS permiten nombres de archivos ms grande.

    Los directorios permiten administrar de forma eficiente los archivos. Los directorios son contenedores de archivos.

  • DOSAl encender la computadora, el DOS carga dos archivos fundamentales: autoexec.bat y config.sys

    Autoexec.bat es un archivo por lotes que contiene algunos comandos para inicializar el sistema. Config.sys es un archivo que permite cargar dispositivos al sistema y otras configuraciones.

    Los archivos con extensin .sys son esenciales para el sistema operativo.

  • DOSEl sistema de archivos que se maneja es FAT

    El sistema operativo es muy pequeo, ya casi no se utiliza y su uso ha estado limitado por el crecimiento de Windows, pero la esencia bsica no ha muerto.

    La computacin ha cambiado radicalmente en los ltimos aos que DOS ya no es funcional para las necesidades actuales de los usuarios.

  • Comandos internosSon aquellos que se cargan en memoria por lo que no se necesita el disco para poder ejecutarlo.

    Se encuentran en el programa command. Com o en nuevas versiones de Windows en cmd.exe

    Los comandos internos estn presentes en cualquier versin de DOS aunque pueden tener diferencias como en PC-DOS, DR-DOS, FreeDOS, etc.

  • Comandos internosLos comandos internos proveen la funcionalidad bsica del sistema.

    Los comandos externos son aquellos que se encuentran fuera del proceso command.com, necesitan del programa especificado para poder funcionar. En muchas ocasiones se les considera como utileras.

  • Comandos internosEjemplos de comandos internos son:

    DATE: cambia la fecha del sistema operativo, muy til en sistemas antiguos que no tenan un reloj fsico.

    El comando HELP muestra la ayuda del sistema, en general permite ver la sintaxis detallada y ejemplo de uso del sistema.

  • Comandos internosSi se escribe mal el nombre de un comando, el sistema operativo marca error indicando que no existe el archivo o comando especificado.

    Otra forma de obtener ayuda de los coamndos del sistema es a travs del parmetro /?

    Los parmetros de los comandos se introducen con el carcter / seguido de una letra que indica la opcin y opcionalmente el valor asociado.

  • Comandos internosTYPE: permite visualizar un archivo en pantalla.

    CHDIR: Muestra la ruta del directorio actual de trabajo.

    CLS: limpia pantalla.

    Time: permite cambiar la hora del sistema

  • Comandos internosVOL: muestra informacin sobre una unidad de almacenamiento del sistema.

    Los archivos .bat son archivos de texto que contienen instrucciones ejecutables (comandos del sistema) que pueden ejecutarse de manera no interactiva. Permiten realizar muchas actividades tediosas del sistema.

  • Comandos internosOtros ejemplos de comandos internos: copy, atrib, prompt, set, echo

    Ejemplos de comandos externos son: append, asign, backup, chkdsk, comp, diskcomp, discopy, fdisk, find.

  • Diferencia entre archivos y directorios

    La diferencia fundanmental entre un archivo y un directorio es en cuestin semntica. Los directorios no pueden ser procesados para almacenamiento de datos de programa slo contienen archivos.

    En la estructura jerrquica del sistema de archivos, los directorios son todos aquellos que no se encuentran hasta el final.

  • Diferencia entre archivos y directoriosEl comando tree permite visualizar en forma jerrquica los directorios y los archivos que contiene cierta ruta.

    Aunque bsicamente se realizan las mismas operaciones, los comandos son distintos para archivos como directorios.

  • Presentacin de contenido de directorio

    Para visualizar el contenido de un directorio se utiliza el comando DIR

    DIR permite visualizar el contenido de diversas formas, por ejemplo el parmetro /p hace una pausa al visualizar el archivo. La opcin /w los muestra en columnas. La opcin /a muestra todos los archivos

  • Presentacin de contenidos de un directorio

    En general los directorios aunque estn vacos presentan dos archivos: el ., y el .., los cuales hacen referencia al directorio actual y al padre respectivamente.

    Se puede distinguir un directorio de un archivo por que los directorios tienen la palabra y los archivos muestran su tamao en bytes al desplegar su contenido.

  • Cambio de directorioPara cambiar de directorio se ocupa el comando CD. El cual si es un nombre vlido podemos visualizar su contenido.

    Mientras se este en un directorio, dicho directorio no puede borrase se necesita retroceder una posicin actual, esto puede hacerse a travs del comando cd ..

  • Creacin de directorioEl comando MD o MKDIR permite crear nuevos directorios.

    Al crear un directorio sencillamente se crea un contenedor de archivos, muchos programas utilizan directorios para organizar eficiente la informacin.

    Hasta que se crea un directorio, se pueden subir archivos a l.

  • Eliminacin de directorioPara borrar un directorio se utiliza la instruccin RMDIR o RD.

    El directorio debe estar vaco de lo contrario no se podr borrar (se pueden utilizar la opcin /s para borrar todo el rbol).

    Con la combinacin de teclas F3 y arriba/abajo se pueden obtener los comandos anteriores o con F1 se obtienen letra por letra el comando anterior

  • Cambio de unidadesLas unidades son el punto raz del sistema de archivo. Una unidad representa generalmente un dispositivo de almacenamiento como una unidad flexible (A: B:), disco duro (C:, D: y otras letras si existen particione su otros discos duros), discos pticomos como CD, DVD (D:, E:) y otras unidades como Discos ZIP, memorias USB, etc.

    Para cambiar de directorio simplemente se pone la unidad seguido de dos puntos.

  • Manejo de rutas para archivosEl manejo de rutas es muy importante ya que determinan la ubicacin de todos los recursos de la mquina.

    Las rutas pueden ser relativas en base a donde se encuentra actualmente el usuario, o absolutas la cual indica la forma de acceder a X recurso desde cualquier parte.

    Las rutas absolutas se escriben completas, por ejemplo: c:\datos\archivo.txt

  • Uso de extensionesLas extensiones permiten indicarle a las aplicaciones de que archivos se trata, en la mayora de los casos son ms tiles al usuario que a el sistema operativo

    Los comandos se pueden abortar con la combinacin de teclas Ctrl+C. La mquina se puede reiniciar con Ctrl+Alt+Supr

  • Uso de comodinesLos comodines sirven para simplificar el proceso de manejo de archivos y rutas de directorio en el sistema.

    Los comodines son expresiones regulares que permiten acotar cadenas de texto

    El comodn * puede ser utilizado para sustituir de 0 a n caracteres en el nombre de un archivo.

  • Uso de comodinesEl comodn ? Sustituye un carcter.

    Por ejemplo:

    DIR f*.doc, muestra todos los archivos cuyo nombre comience con f seguido de cualquier carcter.

  • Creacin de archivosLos archivos se crean a travs de cualquier aplicacin. Por ejemplo, se pueden crear archivos de texto plano con la utilera edit del sistema, crear un programa en C con un compilador como Turbo C, un dibujo en CorelDraw, etc.

    Como el manejo de archivos puede ser dficil a travs de comandos existen interfaces ms agradables como el dosshell o el Peter Norton commander.

  • Comando formatEs un comando externo que nos permite darle formato a una unidad o volumen.

    Dar formato consiste en preparar un disco para que acepte el sistema de archivos del sistema operativo.

    Si no se le da formato a un disco simplemente no se puede guardar la informacin.

  • Comando formatUna vez que un disco tiene formato ya no se tiene que volverle a dar formato.

    Se pueden asignar diferentes capacidades de formatos as como si se quiere tener un disco de arranque del sistema con el comando sys a:

    Se puede utilizar el ratn en sistemas modo texto ocupando un controlador especial.

  • Copia de archivosLa copia de archivos se hace a travs de copy, se tiene que indicar el archivo o ruta origen y la ruta destino. Se pueden utilizar comodines para simplificar el proceso.

    Existen utileras que simplifican el proceso de copiado como diskcopy, que copia informacin de un disco a otro.

  • WindowsWindows es un sistema operativo con interfaz grfica de usuario. Se basa en una metfora con los escritorios de la oficina.

    Las primeras versiones eran realmente una interfaz grfica para D.O.S.

    Trae muchas mejoras en relacin con su antecesor.

  • CaractersticasLas primeras versiones fueron de 16 bits, actualmente es un sistema operativo de 32 bits llegando a las nuevas versiones de 64 bits.

    Es un sistema fcil de usar y aprender, multitarea, sin lmites tan marcados de memoria (rompe la barrera de los 640 KB), multiusuario.

  • CaractersticasSe ha portado a infinidad de dispositivos como los mviles y empotrados (Windows Mobile y Windows CE)

    Es un sistema operativo modular que tiene un microkernel (kernel.exe, kernel.dll). Posee una capa de abstraccin con el hardware (HAL). Tiene otros servicios como la interfaz de usuario (user.exe, user.dll), el manejo de grficos (gdi.exe), implementa el manejo de archivos (Explorer.exe) entre otros.

  • Historia

    Microsoft anuncia "Windows (1983), una interface grfica para la IBM PC, aunque fue lanzada hasta 1985. Tiene ventanas que puede superponerse y cambiar de tamao

  • Historia

    En agosto Microsoft lanza finalmente la primera versin de Windows, aunque en esta versin las ventanas no se pueden traslapar, y las ventanas no pueden superponerse encima de la barra de mens superior.

  • Microsoft lanza la segunda versin de Windows (2.03) en 1987, la cual ya se pueden cambiar de tamao las ventanas, sobreponer ventanas y se agregaron algunos controles nuevos sobre las ventanas.Historia1987

  • Microsoft lanza en mayo de 1990 Windows 3.0 al cual se le agreg un manejador de programas.Windows 3.01990

  • Microsoft lanza en mayo de 1994 la primera versin de Windows NT, su sistema operativo de 32 bits. Este sistema fu nombrado como Windows 3.51 y estaba disponible para arquitecturas Intel, Power PC, Alpha y MIPS.Windows NT1993

  • Microsoft saca Windows 95 el 24 de agosto de 1995.Windows 951995

  • Microsoft saca en 1996 Windows NT 4.0 con la misma interface que Windows 95.Windows NT 4.01996

  • El 25 de junio de 1998 Microsoft saca al mercado Windows 98, el cual incluye el Internet Explorer.Windows 981998

  • El 17 de febrero de 2000, Microsoft lanza Windows 2000.Windows 20002000

  • El 25 de octubre de 1991 Microsoft saca al mercado Windows XP.Windows XP2001

  • El 24 de abril de 2003, Microsoft libera Windows Server 2003.Windows Server 20032003

  • Windows VistaAparece el 30 noviembre de 2006. Es un sistema con seguridad mejorada, soporte nativo a otras arquitecturas, elementos grficos sorprendentes.

  • Windows Server 2008

  • FuturoWindows Seven.

    Windows CE 6.0 (Windows Mobile Photon)

    No hay nada seguro de las futuras versiones de Windows aunque probablemente saquen jugo a los procesadores de mltiples ncleo, las memorias FlashROM, la virtualizacin, entre otras interesantes tecnologas.

  • El escritorioEs la parte fundamental de la interfaz, sirve de punto de encuentro entre la computadora y el usuario.

    Todas las actividades de Windows se desarrollan sobre el escritorio. En l se encuentran las aplicaciones, archivos y dems recursos de las computadoras. A nivel de implementacin es una carpeta que contiene diversos elementos (C:\Documents and settings\usuario\Escritorio)

  • El concepto de escritorio (desktop) viene de la analoga con un escritorio. Por default viene vaco, pero poco a poco se le van colocando objetos, y se pueden agregar miles de objetos y con miles de configuraciones. Algunos escritorios tienen un vidrio transparentes, en el cual se pueden colocar imgenes de fondo. Un escritorio tpico tiene: Telfono, reloj, papel, lpiz, bandeja de entrada y salida de documentos.Escritorio Tpico

  • Posteriormente se le pueden agregar marcadores, hojas para recados, papel para graficar, formatos, etc.Herramientas

  • Con estas herramientas se puede empezar a trabajar en varios documentos a la vezDocumentos

  • En este escritorio se pueden poner revistas y mapas disponibles para que el usuario pueda consultarlos.Accesorios

  • Si tiene suscripcin a algn medio de informacin, como el peridico, ser parte del escritorio. Tambin se pueden agregar objetos decorativos, como un peluche, que personalizan mi rea de trabajo.Suscripciones y Personalizacin

  • El escritorio tambin puede servir como base para poder jugar en l, como por ejemplo un juego de cartas (Solitario).Juegos

  • Temporalmente, el escritorio puede servir como un medio de almacenamiento.Almacenamiento

  • Si se agregan accesorios, se pueden hacer copias de documentos.Copias

  • Se agrega otro accesorio (cajn) para almacenar y ordenar informacin que no necesitamos en el escritorio.Almacenar y Ordenar

  • Por ltimo se agrega un bote de basura donde tiramos las cosas que no nos sirven, con la opcin de que mientras no pase el carro de la basura, podemos extraer lo que tiramos al bote de la basura.Bote de Basura

  • Todos los elementos anteriores nos dan como resultado la interface grfica basada en el escritorio que conocemos hoy en da.Escritorio2005

  • Las ventanasEs el elemento principal de la interfaz de usuario. Son componentes en la mayora de los casos rectangulares en los cuales se generan todas las actividades del sistema.

    Las ventanas sirven de interfaz de E/S entre los usuarios y las aplicaciones. Las ventanas comparten las mismas caractersticas. Los servicios del sistema no poseen ventanas asociadas a ellos.

  • Las ventanas

  • Los iconos y sus tiposSon elementos visuales que representan una accin para el usuario.

    Suelen encontrarse por toda la interfaz del sistema operativo, desde e Escritorio hasta las ventanas de aplicaciones.

    Generalmente se tiene dos tipos de conos: los de acceso directo (asocian un cono a una aplicacin o archivo de manera rpida) y los conos de accin.

  • Barra de tareasAparecida con Windows 95, la barra de mens se ha convertido en todo un estndar en el diseo de interfaces grficas de usuario, a tla punto que sistemas como Linux, Unix y hasta Mac OS la han imitado.

    Se encuentra generalmente en la parte inferior de la pantalla, aunque se puede encontrar en otras partes (izquierda, derecha, arriba)

  • Barra de tareasDicha barra contiene las aplicaciones que se estn ejecutando en ese momento por lo que la conmutacin de tareas es muy rpida.

    Tambien contiene del lado izquierdo el botn inicio y del lado derecho cuenta con algunos conos de acceso a recursos de hardware que se estn monitorizando.

  • Barra de tareasBotn de inicioBotones de aplicacionesOpciones de TecladoTrayReloj

  • Men inicioEl men inicio permite centralizar las aplicaciones para encontrarlas de manera ms fcil e intuitiva.

    Este men se compone de accesos rpidos a las principales aplicaciones y a las aplicaciones utilizadas recientemente.

    Permite simplificar la mayora de las tareas de manera rpida y sencilla.

  • Manejo de ventanas

    6.3.1 reas de una ventana

    6.3.2 Como mover una ventana

    6.3.3 Como cambiar el tamao de una ventana

    6.3.4 Maximizar, Minimizar y restaurar

  • reas de una ventanaLos componentes de un ventana son:

    El rea de contenido, la cual es la ms grande y es en donde se realizan las diversas acciones.

    El rea de ttulo, donde se tiene el ttulo de la aplicacin, los botones de maximizar, minimizar y restaurar.

  • reas de una ventanaEl rea de mens donde se tienen las opciones del sistema.

    El rea de barra de herramientas con opciones rpidas.

    El rea de la barra de estado, en donde se muestra informacin relevante al rea de estudio.

  • reas de una ventanaExisten dos tipos de ventanas aquellas que pueden tener anidadas dentro de ellas otras ventanas (MDI, Multiple Document Interface) y aquellas que slo pueden tener una ventana anidada.

    Cuando se tienen varias ventanas, cada una de ellas puede manejar cierta funcionalidad y se pueden manipular de manera individual, aunque si se cierra la ventana padre, las hijas tambin se cierran.

  • reas de una ventanaBotn minimizar:

    Enva la ventana a la barra de tareas en forma de botn liberando as espacio en el escritorioBotn maximizar:

    Aumenta de tamao la ventana activa hasta ocupar la totalidad del escritorioBotn cerrar:

    Cierra la ventana, como en Windows cada programa es una ventana, al cerrar sta, tambin se cierra la aplicacin

  • Como mover una ventanaPara mover una ventana, esta no debe de estar maximizada, si se utiliza el ratn, se debe posicionar el puntero en la barra del ttulo y hacer drag & drop (arrastrar y soltar, se explica ms adelante).

    Al mover las ventanas se redibujan. Las ventanas pueden traslaparse (modo cascada) o bien pueden organizarse de tal forma de que se puedan ver todas las ventanas en pantalla (modo mosaico).

  • Como cambiar el tamao de una ventana

    La ventana no debe de estar maximizada para poderle cambiar el tamao. Se posiciona el puntero del ratn sobre los bordes de la ventana (esquinas de la ventana). La forma del puntero debe cambiar a flechas dobles de tal forma que se pueda mover hacia los lados y aumentar o disminuir su tamao.

  • Maximizar, Minimizar y restaurar

    Maximizar consiste en poner una ventana en tamao completo, que generalmente ocupa toda el rea visible de trabajo.

    Minimizar consiste en poner la ventana en modo no visible, es decir, pasa a formar parte de la barra de tareas. Al minimizar una ventana la ventana anterior pasa a formar parte del rea de trabajo.

  • Maximizar, Minimizar y restaurarRestaurar consiste en regresar una ventana a su tamao anterior o tamao original. En ocasiones es una versin intermedia entre una ventana maximizada y una ventana minimizada.

    Las ventanas pueden clasificarse en activas y pasivas. Slo existe una ventana activa y es aquella que la barra de ttulos est marcada en color activo. Las ventanas activas tienen el foco de la aplicacin y tienen prioridad de ejecucin sobre las otras ventanas.

  • Manejo del mouseWindows es un sistema operativo manejado por eventos.

    Un eventos es cualquier accin que ocurre en el sistema como presionar una tecla, hacer clic con el ratn, la instalacin de una aplicacin, etc.

    Estos eventos son manejados por el sistema de manera transparente tanto para usuarios como para programadores.

  • Manejo del mouseLas interfaces grficas de usuario requieren de mecanismos para sealizar los recursos.

    El ratn posee muchos eventos como:

    Clic, doble clic, onmove, drag and drop, entre otros.

    Las Tablet PC y algunos PDA utilizan un stylus pero mantiene el sistema los mismos eventos.

  • Manejo del mouseEl evento OnMove, posiciona el apuntador en cierta ubicacin en el escritorio.

    El evento clic se puede dar para seleccionar un elemento, ocurre cuando se presiona el boton izquierdo del mouse.

    El evento doble clic consiste en dar dos clic seguidos, se utiliza para ejecutar alguna accin

  • Manejo del mouseEl evento Drag (arrastrar) consiste en seleccionar un elemento con un clic, dejar presionado el boton y mover el elemento alrededor de la pantalla. La variante de Drag con Drop (soltar) consiste en soltar el botn izquierdo del mouse una vez arrastrado algn elemento. Es til en muchas actividades en Windows.

    El botn derecho del mouse generalmente se utiliza para los mens contextuales

  • Manejo del mouseAlgunos ratones no cuentan con clic derecho pero pueden emularse con ctrl + clic izquierdo.

    Otro elemento importante consiste en el botn de scroll o botones inteligentes, que mueve la pantalla de arriba abajo.

    Todas las acciones del mouse se puedeen realizar a travs del teclado.

  • Uso del tecladoEl teclado es de vital importancia en el manejo de Windows.

    Se puede manejar Windows sin ningn dispositivo sealizador slo con el uso exclusivo de un teclado.

    Los teclados pueden diferir en el nmero de teclas pero generalmente se maneja una combinacin de 101 teclas.

  • Uso del tecladoEl tecleado puede diferir en su conjunto de caracteres, por lo que un mismo teclado puede tener asociado varios idiomas y presentar distintos caracteres.

    Las teclas principales para el manejo de Windows son el tabulador, la teclas shift, ctrl, alt en sus diferentes combinaciones.

    Con la tecla Alt se acceden a los mens.

  • Uso del tecladoCon la tecla shift se permiten realizar acciones sin confirmacin del usuario (shift+supr) para borrar definitivamente las opciones. Tambien se utiliza para seleccionar mltiples elementos adyacentes.

    La tecla Tab permite desplazarnos de elemento grfico por elemento. Una vez ubicado en una zona con las teclas de desplazamiento tanto izquierdas como derechas, arriba o abajo nos desplazamos por esa zona de memoria.

  • Uso del tecladoLa tecla ctrl permite seleccionar un rango no adyacente de elementos. Tambien se puede utilizar para algunos atajos de Windows

    Ctrl+Alt+Supr permite reiniciar la mquina en casi todos los sistemas operativos, en Windows permite abrir el administrador de tarea para administrar recursos como los procesos y la memoria.

  • Uso del tecladoLa tecla del logotipo de Windows presente en algunos teclados permite mostrar el men inici de manera rpida (se puede utilizar ctrl+esc), adicionalmente se cuenta con un botn lista que abre el men contextual.

    Alt+Esc Conmuta de tareas sin necesidad de pasar por el comnutador, Alt + Barra espaciadora abre el men control de la ventana donde se puede maximizar, minimizar, restaurar, mover, cambiar de tamao a una ventana entre otras.

  • Uso del tecladoLas teclas de funcin ya tienen asociado cierto significado, por ejemplo F1 para la ayuda, F3 para buscar, F5 para actualizar. Esta configuracin cambiar dependiendo de los programas.

    La combinacin Alt+F4 cierra una ventana. Alt + Guin permite ver el menu contextual de cada ventana padre.

  • Como elegir comandos del men

    Para elegir comandos del men se puede utilizar el teclado o el dispositivo sealizador. Simple se selecciona una opcin y si el men tiene una opcin ejecutable se realiza.

    Algunos mens se sustituyen por las barras de herramientas y en algunas ocasiones por botones de accin.

  • Como elegir comandos del men

  • Uso del men controlEl men control es aquel que se encuentra situado en la parte superior izquierda.

    Este men contiene opciones para manipular la ventana, pero tambin puede contener opciones personalizables, por ejemplo si se abre una terminal de DOS se puede tener acceso a la configuracin de la ventana y a aspectos como copiar y pegar datos entre esas ventanas.

  • Mens contextualesLos mens contextuales dependen de lo que se est utilizando. Generalmente se obtienen al hacer clic derecho.

    El men contextual puede tener opciones de edicin de un archivo, de enlaces rpidos como enviar a y una gran variedad de aplicaciones.

  • Mens contextuales

  • Explorador de Windows

    Es el sistema que permite visualizar los archivos y recursos de la computadora se llama Explorador de Windows.

    Interacta con el administrador de archivos para realizar todas las opciones de manipulacin de recursos en Windows. Estas opciones generalmente se hacan a travs de los comandos de DOS.

  • Explorador de Windows

  • Ver el contenido de unidades de disco

    Para ver el contenido de una unidad de disco se tiene que seleccionar esa unidad y abrirla.

    Se muestran generalmente todos los archivos, recordar que en Windows se manejan el concepto de unidades las cuales estn siempre presente una vez conectada la unidad fsica. Esa unida de disco es independiente de las dems. Se manejan letras como A:, C: para hacer referencia a las unidades.

  • Copiar, mover archivos y carpetasLas operaciones ms comunes sobre el sistema de archivos se pueden hacer de manera visual.

    Copiar es tan sencillo como seleccionar la opcin correspondiente y pegar en la nueva ubicacin. Si se selecciona un archivo y este se arrastra a otra carpeta generalmente se copia si estn en unidades distintas, y se mueve si estn en la misma unidad (para evitar este problema se puede dejar presionada la tecla ctrl o shift)

  • Copiar, mover archivos y carpetasTanto los archivos como las carpetas se manejan de la misma forma, por lo que se tiene la misma semntica y no es necesario aprenderse comandos distintos.

    Para renombrar archivos se presiona la tecla F2 u opcin renombrar. Generalmente las extensiones de archivos estn ocultas pero pueden habilitarse a travs de las opciones de carpeta del explorador. Se puede cambiar el fondo.

  • Copiar, mover archivos y carpetas

  • Inicio de aplicacionesPara ejecutar aplicaciones se debe de encontrar el cono adecuado.

    Las aplicaciones que se requieran ejecutar al iniciar Windows van el men inicio en la carpeta inicio.

    Las aplicaciones pueden ser DOS, Win16, Win32 y recientemente Win64 para micros x64.

  • Uso de mi PCMi PC o Equipo en Windows Vista se utiliza como punto de encuentro de los dems procesos del sistema.

    En Mi PC se ubican generalmente las unidades y acceso directos a las principales funciones del sistema como el Panel de control, carpetas remotas, etc.

    El uso de PC facilita la utilizacin de Windows.

  • Uso de la papelera de reciclajeLa papelera de reciclaje es un directorio temporal donde se guardan elementos que han sido borrados.

    Cuando se borra un archivo a travs de la papelera de reciclaje, se puede recuperar este archivo, si se borr un archivo y no est en la papelera de reciclaje es muy difcil recuperarlo.

  • Panel de controlEl panel de control es la herramienta del sistema que permite configurar las opciones del sistema, contiene elementos como manejo de impresorar, instalar nuevo hardware, instalar programas, administracin de perifricos y algunas opciones de software.

    El panel de control necesita tener derechos de administrador para poder funcionar.

  • Tipos de aplicacionesLos tipos de aplicaciones dependen de las acciones a realizar, generalmente existen aplicaciones de gestin (ofimtica, nmina, contabilidad, etc.), software de ingeniera, software de sistemas, software empotrado, software de tiempo real, software para Web y software de sistemas (utileras) entre otros.

    Las aplicaciones las debe de conocer el usuario para poderlas ejecutar.

  • Tipos de aplicacionesLas aplicaciones tienen privilegios y opciones de comportamiento, esas opciones son personalizables en las ltimas versiones de Windows.

    Existen generalmente aplicaciones para ejecutarse slo por el administrador o por un usuario en especfico.

    Windows maneja un esquema de seguridad basado en listas de control de acceso (ACL).

  • Tipos de aplicacionesLas ACL permiten determinar por cada usuario que derechos se tiene sobre un recurso en particular, dichos recursos pueden ser archivos, aplicaciones, perifricos. Las versiones de servidor de Windows tienen un control ms robusto sobre estas cuestiones.

    En general se tiene una lista de atributos con los derechos de acceso por usuario por cada recurso. Se tiene una configuracin bsica de seguridad.

  • Conmutacin entre aplicaciones

    Para conmutar entre aplicaciones se puede utilizar la barra de herramientas, generalmente agrupa tareas similares en una sola entrada. Simplemente se presiona sobre la tarea que se desea tener activa. En el caso de servicios de sistemas, estos siempre se ejecutan y no es necesario conmutar entre ellos.

    Se pueden utilizar los atajos del teclado para mayor comodidad.

  • Compartir datos entre aplicaciones

    Para compartir datos se utiliza el portapapeles (Clipboard) que es un rea de memoria temporal de tamao variable que slo puede contener un dato a la vez.

    Tambin se pueden utilizar las Libreras de Enlace Dinmico (DLL), el registro (regedit), las variables de retorno y del sistema, entre otras muchas tcnicas para compartir datos.

  • Compartir datos entre aplicaciones

    Generalmente se puede ver el contenido del portapapeles a travs del visor de portapapeles. Algunos programas como office gestionan mejor el portapapeles, por lo que se pueden utilizar diversas versiones del portapapeles.

    Otra forma bsica de compartir informacin es a travs de archivos como tuberas o sockets en el caso de procesos remotos.

  • AccesoriosLos accesorios son todas aquellas aplicaciones con las que cuenta Windows de manera predetermina y que sirven para realizar funciones bsicas.

    Los accesorios tienen que ver con la metfora del escritorio descrita al inicio de esta presentacin.

    Se tiene una aplicacin para escribir texto sencillo (bloc de notas), una calculadora, un programa de dibujo (paint), una agenda (lista de contacto).

  • AccesoriosOtras aplicaciones son los juegos de mesa, un editor de texto con formato, en versiones ms recientes un cliente de correo electrnico, etc.

    Se encuentran ubicadas en la carpeta accesorios del men de inicio. Otras aplicaciones importantes son la lnea de comandos, el explorador de archivos, etc.

  • Accesorios

  • Herramientas del sistemaEstas herramientas requieren de mayor conocimiento por parte de los usuarios debido a que su uso ocupa de un conocimiento ms avanzado sobre el sistema operativo.

    En algunas ocasiones cuando no se sabe algn smbolo del teclado se puede consultar el mapa de caracteres.

    Otra aplicacin interesante es hyperterminal para comunicaciones remotas.

  • Herramientas del sistema

    Se cuenta con herramientas para la copias de seguridad de archivos, liberar el espacio en disco duro, restaurar sistemas, defragmentador de disco, etc.

    Existen herramientas ms avanzadas como la monitorizacin de procesos, memoria, uso de la red, entre otros.

  • WindowsLas versiones de Windows cuentan con clientes y en algunos casos servicios de red.

    Se pueden manejar de modo grfico y en modo consola.

    Algunos comandos tiles son:

    Ver (muestra la versin del SO)

  • WindowsEl comnado winver permite ver la versin del SO en formato grfico.

    Systeminfo permite ver informacin sobre el sistema.

    El comando help muestra ayuda sobre los comandos bsicos de la consola. Se puede utilizar el parmetro /? Para conocer el funcionamiento de un comando en especfico

  • WindowsDriverquery permite ver todos los controladores cargados en el sistema

    Hostname visualiza el nombre de la maquina, tambin permite cambiarlo siempre y cuando se sea Administrador del Sistema.

    Openfiles permite ver archivos locales que son accedidos por clientes remotos

  • Windowssc query (sc es un comando que permite manipular servicios del sistema, la opcin query se utiliza para mostrar los servicios activos en el sistema)

    schtask muestra informacin de procesos que se encuentran calendarizados en el sistema.

  • Windowstasklist muestra todos los procesos en ejecucin.

    Taskkill permite eliminar procesos por PID o por nombre con la opcin /IM

    La variable de entorno %username% tiene el nombre del usuario activo. Se puede utilizar el comando echo para imprimirlo.

  • Windowsnet accounts da informacin sobre la mquina actual

    Net config server (muestra informacin sobre el mdulo del servidor del SO)

    Net config workstation (muestra informacin sobre el mdulo del cliente)

  • WindowsMsconfig permite administrar las opciones bsicas del sistema operativo

    Mmc abre una consola administrativa para gestionar recursos

    La consola se ejecuta con el proceso cmd.exe, el comando start puede abrir diversas aplicaciones en distintas consolas.

  • WindowsNet file (sin argumentos permite observar los archivos compartidos abiertos)

    Net localgroup, muestra los grupos de usuarios de la mquina analizada.

    Net print muestra la cola de impresin de la impresora compartida

  • WindowsNet session muestra las sesiones remotas activas en el sistema.

    Net share muestra los recursos compartidos por el host actual. El carcter $ indica que el recurso esta oculto. Los nombres de las mquinas en Windows sigue el formato UNC: \\nombremaquina\ruta\de\acceso.

  • WindowsNet start, stop, pause y continue se utilizan para inicializar, parar, pausar y reanudar la ejecucin de un servicio de red.

    Net statistics [server|workstation] muestra informacin estadsticas del proceso servidor y estacin de trabajo.

    Net use sin argumentos muestra las conexiones activas, con argumentos se conecta a un recurso compartido.

  • WindowsNet view muestra una lista de los equipos conectados a la red o puede visualizar los recursos compartidos de un host remoto.

    Ipconfig permite modificar y ver los parmetros actuales de los adaptadores de red.

    Para algunos comandos se necesita ser controlador del dominio.

  • UNIX HistoryFirst developed in 1969 by Ken Thompson and Dennis Ritchie of the Research Group at Bell Laboratories; incorporated features of other operating systems, especially MULTICSThe third version was written in C, which was developed at Bell Labs specifically to support UNIXThe most influential of the non-Bell Labs and non-AT&T UNIX development groups University of California at Berkeley (Berkeley Software Distributions - BSD)4BSD UNIX resulted from DARPA funding to develop a standard UNIX system for government useDeveloped for the VAX, 4.3BSD is one of the most influential versions, and has been ported to many other platformsSeveral standardization projects seek to consolidate the variant flavors of UNIX leading to one programming interface to UNIX

  • History of UNIX Versions

  • Early Advantages of UNIXWritten in a high-level languageDistributed in source formProvided powerful operating-system primitives on an inexpensive platformSmall size, modular, clean design

  • UNIX Design PrinciplesDesigned to be a time-sharing systemHas a simple standard user interface (shell) that can be replacedFile system with multilevel tree-structured directoriesFiles are supported by the kernel as unstructured sequences of bytesSupports multiple processes; a process can easily create new processesHigh priority given to making system interactive, and providing facilities for program development

  • Programmer InterfaceKernel: everything below the system-call interface and above the physical hardwareProvides file system, CPU scheduling, memory management, and other OS functions through system callsSystems programs: use the kernel-supported system calls to provide useful functions, such as compilation and file manipulationLike most systems, UNIX consists of two separable parts:

  • 4.4BSD Layer Structure

  • System CallsSystem calls define the programmer interface to UNIX The set of systems programs commonly available defines the user interfaceThe programmer and user interface define the context that the kernel must supportRoughly three categories of system calls in UNIXFile manipulation (same system calls also support device manipulation)Process controlInformation manipulation

  • File ManipulationA file is a sequence of bytes; the kernel does not impose a structure on filesFiles are organized in tree-structured directoriesDirectories are files that contain information on how to find other filesPath name: identifies a file by specifying a path through the directory structure to the fileAbsolute path names start at root of file systemRelative path names start at the current directorySystem calls for basic file manipulation: create, open, read, write, close, unlink, trunc

  • Typical UNIX Directory Structure

  • Process ControlA process is a program in executionProcesses are identified by their process identifier, an integerProcess control system callsfork creates a new processexecve is used after a fork to replace on of the two processess virtual memory space with a new program exit terminates a processA parent may wait for a child process to terminate; wait provides the process id of a terminated child so that the parent can tell which child terminatedwait3 allows the parent to collect performance statistics about the childA zombie process results when the parent of a defunct child process exits before the terminated child

  • Illustration of Process Control Calls

  • Process Control (Cont.)Processes communicate via pipes; queues of bytes between two processes that are accessed by a file descriptorAll user processes are descendants of one original process, initinit forks a getty process: initializes terminal line parameters and passes the users login name to loginlogin sets the numeric user identifier of the process to that of the userexecutes a shell which forks subprocesses for user commands

  • Process Control (Cont.)setuid bit sets the effective user identifier of the process to the user identifier of the owner of the file, and leaves the real user identifier as it wassetuid scheme allows certain processes to have more than ordinary privileges while still being executable by ordinary users

  • SignalsFacility for handling exceptional conditions similar to software interruptsThe interrupt signal, SIGINT, is used to stop a command before that command completes (usually produced by ^C)Signal use has expanded beyond dealing with exceptional events Start and stop subprocesses on demandSIGWINCH informs a process that the window in which output is being displayed has changed sizeDeliver urgent data from network connections

  • Process GroupsSet of related processes that cooperate to accomplish a common taskOnly one process group may use a terminal device for I/O at any timeThe foreground job has the attention of the user on the terminalBackground jobs nonattached jobs that perform their function without user interactionAccess to the terminal is controlled by process group signals

  • Process Groups (Cont.)Each job inherits a controlling terminal from its parentIf the process group of the controlling terminal matches the group of a process, that process is in the foregroundSIGTTIN or SIGTTOU freezes a background process that attempts to perform I/O; if the user foregrounds that process, SIGCONT indicates that the process can now perform I/OSIGSTOP freezes a foreground process

  • Information ManipulationSystem calls to set and return an interval timer: getitmer/setitmerCalls to set and return the current time: gettimeofday/settimeofdayProcesses can ask fortheir process identifier: getpidtheir group identifier: getgidthe name of the machine on which they are executing: gethostname

  • Library RoutinesThe system-call interface to UNIX is supported and augmented by a large collection of library routinesHeader files provide the definition of complex data structures used in system callsAdditional library support is provided for mathematical functions, network access, data conversion, etc

  • User InterfaceProgrammers and users mainly deal with already existing systems programs: the needed system calls are embedded within the program and do not need to be obvious to the userThe most common systems programs are file or directory orientedDirectory: mkdir, rmdir, cd, pwdFile: ls, cp, mv, rmOther programs relate to editors (e.g., emacs, vi) text formatters (e.g., troff, TEX), and other activities

  • Shells and CommandsShell the user process which executes programs (also called command interpreter)Called a shell, because it surrounds the kernelThe shell indicates its readiness to accept another command by typing a prompt, and the user types a command on a single lineA typical command is an executable binary object fileThe shell travels through the search path to find the command file, which is then loaded and executedThe directories /bin and /usr/bin are almost always in the search path

  • Shells and Commands (Cont.)Typical search path on a BSD system: ./home/prof/avi/bin /usr/local/bin /usr/ucb/bin /usr/bin The shell usually suspends its own execution until the command completes

  • Standard I/OMost processes expect three file descriptors to be open when they start:standard input program can read what the user typesstandard output program can send output to users screen standard error error outputMost programs can also accept a file (rather than a terminal) for standard input and standard outputThe common shells have a simple syntax for changing what files are open for the standard I/O streams of a process I/O redirection

  • Standard I/O Redirection

  • Pipelines, Filters, and Shell ScriptsCan coalesce individual commands via a vertical bar that tells the shell to pass the previous commands output as input to the following command % ls | pr | lprFilter a command such as pr that passes its standard input to its standard output, performing some processing on itWriting a new shell with a different syntax and semantics would change the user view, but not change the kernel or programmer interfaceX Window System is a widely accepted iconic interface for UNIX

  • Process ManagementRepresentation of processes is a major design problem for operating systemUNIX is distinct from other systems in that multiple processes can be created and manipulated with easeThese processes are represented in UNIX by various control blocksControl blocks associated with a process are stored in the kernelInformation in these control blocks is used by the kernel for process control and CPU scheduling

  • Process Control BlocksThe most basic data structure associated with processes is the process structureunique process identifierscheduling information (e.g., priority)pointers to other control blocks The virtual address space of a user process is divided into text (program code), data, and stack segmentsEvery process with sharable text has a pointer form its process structure to a text structurealways resident in main memoryrecords how many processes are using the text segment records were the page table for the text segment can be found on disk when it is swapped

  • System Data SegmentMost ordinary work is done in user mode; system calls are performed in system modeThe system and user phases of a process never execute simultaneouslya kernel stack (rather than the user stack) is used for a process executing in system modeThe kernel stack and the user structure together compose the system data segment for the process

  • Finding parts of a process using process structure

  • Allocating a New Process Structurefork allocates a new process structure for the child process, and copies the user structurenew page table is constructednew main memory is allocated for the data and stack segments of the child processcopying the user structure preserves open file descriptors, user and group identifiers, signal handling, etc

  • Allocating a New Process Structure (Cont.)vfork does not copy the data and stack to t he new process; the new process simply shares the page table of the old onenew user structure and a new process structure are still createdcommonly used by a shell to execute a command and to wait for its completionA parent process uses vfork to produce a child process; the child uses execve to change its virtual address space, so there is no need for a copy of the parentUsing vfork with a large parent process saves CPU time, but can be dangerous since any memory change occurs in both processes until execve occursexecve creates no new process or user structure; rather the text and data of the process are replaced

  • CPU SchedulingEvery process has a scheduling priority associated with it; larger numbers indicate lower priorityNegative feedback in CPU scheduling makes it difficult for a single process to take all the CPU timeProcess aging is employed to prevent starvationWhen a process chooses to relinquish the CPU, it goes to sleep on an eventWhen that event occurs, the system process that knows about it calls wakeup with the address corresponding to the event, and all processes that had done a sleep on the same address are put in the ready queue to be run

  • Memory ManagementThe initial memory management schemes were constrained in size by the relatively small memory resources of the PDP machines on which UNIX was developedPre 3BSD system use swapping exclusively to handle memory contention among processes: If there is too much contention, processes are swapped out until enough memory is availableAllocation of both main memory and swap space is done first-fit

  • Memory Management (Cont.)Sharable text segments do not need to be swapped; results in less swap traffic and reduces the amount of main memory required for multiple processes using the same text segmentThe scheduler process (or swapper) decides which processes to swap in or out, considering such factors as time idle, time in or out of main memory, size, etc

  • Paging Berkeley UNIX systems depend primarily on paging for memory-contention management, and depend only secondarily on swappingDemand paging When a process needs a page and the page is not there, a page fault tot he kernel occurs, a frame of main memory is allocated, and the proper disk page is read into the frame A pagedaemon process uses a modified second-chance page-replacement algorithm to keep enough free frames to support the executing processesIf the scheduler decides that the paging system is overloaded, processes will be swapped out whole until the overload is relieved

  • File SystemThe UNIX file system supports two main objects: files and directories Directories are just files with a special format, so the representation of a file is the basic UNIX concept

  • Blocks and FragmentsMost of the file system is taken up by data blocks4.2BSD uses two block sized for files which have no indirect blocks:All the blocks of a file are of a large block size (such as 8K), except the lastThe last block is an appropriate multiple of a smaller fragment size (i.e., 1024) to fill out the fileThus, a file of size 18,000 bytes would have two 8K blocks and one 2K fragment (which would not be filled completely)

  • Blocks and Fragments (Cont.)The block and fragment sizes are set during file-system creation according to the intended use of the file system:If many small files are expected, the fragment size should be smallIf repeated transfers of large files are expected, the basic block size should be largeThe maximum block-to-fragment ratio is 8 : 1; the minimum block size is 4K (typical choices are 4096 : 512 and 8192 : 1024)

  • InodesA file is represented by an inode a record that stores information about a specific file on the diskThe inode also contains 15 pointer to the disk blocks containing the files data contentsFirst 12 point to direct blocksNext three point to indirect blocksFirst indirect block pointer is the address of a single indirect block an index block containing the addresses of blocks that do contain dataSecond is a double-indirect-block pointer, the address of a block that contains the addresses of blocks that contain pointer to the actual data blocks.A triple indirect pointer is not needed; files with as many as 232 bytes will use only double indirection

  • DirectoriesThe inode type field distinguishes between plain files and directoriesDirectory entries are of variable length; each entry contains first the length of the entry, then the file name and the inode numberThe user refers to a file by a path name,whereas the file system uses the inode as its definition of a fileThe kernel has to map the supplied user path name to an inodeDirectories are used for this mapping

  • Directories (Cont.)First determine the starting directory:If the first character is /, the starting directory is the root directoryFor any other starting character, the starting directory is the current directoryThe search process continues until the end of the path name is reached and the desired inode is returnedOnce the inode is found, a file structure is allocated to point to the inode4.3BSD improved file system performance by adding a directory name cache to hold recent directory-to-inode translations

  • Mapping of a File Descriptor to an InodeSystem calls that refer to open files indicate the file is passing a file descriptor as an argumentThe file descriptor is used by the kernel to index a table of open files for the current processEach entry of the table contains a pointer to a file structureThis file structure in turn points to the inodeSince the open file table has a fixed length which is only setable at boot time, there is a fixed limit on the number of concurrently open files in a system

  • File-System Control Blocks

  • Disk StructuresThe one file system that a user ordinarily sees may actually consist of several physical file systems, each on a different devicePartitioning a physical device into multiple file systems has several benefitsDifferent file systems can support different usesReliability is improvedCan improve efficiency by varying file-system parametersPrevents one program form using all available space for a large fileSpeeds up searches on backup tapes and restoring partitions from tape

  • Disk Structures (Cont.)The root file system is always available on a driveOther file systems may be mounted i.e., integrated into the directory hierarchy of the root file systemThe following figure illustrates how a directory structure is partitioned into file systems, which are mapped onto logical devices, which are partitions of physical devices

  • Mapping File System to Physical Devices

  • ImplementationsThe user interface to the file system is simple and well defined, allowing the implementation of the file system itself to be changed without significant effect on the userFor Version 7, the size of inodes doubled, the maximum file and file system sized increased, and the details of free-list handling and superblock information changedIn 4.0BSD, the size of blocks used in the file system was increased form 512 bytes to 1024 bytes increased internal fragmentation, but doubled throughput4.2BSD added the Berkeley Fast File System, which increased speed, and included new featuresNew directory system callstruncate callsFast File System found in most implementations of UNIX

  • Layout and Allocation PolicyThe kernel uses a pair to identify a fileThe logical device number defines the file system involvedThe inodes in the file system are numbered in sequence4.3BSD introduced the cylinder group allows localization of the blocks in a fileEach cylinder group occupies one or more consecutive cylinders of the disk, so that disk accesses within the cylinder group require minimal disk head movementEvery cylinder group has a superblock, a cylinder block, an array of inodes, and some data blocks

  • 4.3BSD Cylinder Group

  • I/O SystemThe I/O system hides the peculiarities of I/O devices from the bulk of the kernelConsists of a buffer caching system, general device driver code, and drivers for specific hardware devicesOnly the device driver knows the peculiarities of a specific device

  • 4.3 BSD Kernel I/O Structure

  • Block Buffer CacheConsist of buffer headers, each of which can point to a piece of physical memory, as well as to a device number and a block number on the deviceThe buffer headers for blocks not currently in use are kept in several linked lists: Buffers recently used, linked in LRU order (LRU list)Buffers not recently used, or without valid contents (AGE list)EMPTY buffers with no associated physical memoryWhen a block is wanted from a device, the cache is searchedIf the block is found it is used, and no I/O transfer is necessaryIf it is not found, a buffer is chosen from the AGE list, or the LRU list if AGE is empty

  • Block Buffer Cache (Cont.)Buffer cache size effects system performance; if it is large enough, the percentage of cache hits can be high and the number of actual I/O transfers lowData written to a disk file are buffered in the cache, and the disk driver sorts its output queue according to disk address these actions allow the disk driver to minimize disk head seeks and to write data at times optimized for disk rotation

  • Raw Device InterfacesAlmost every block device has a character interface, or raw device interface unlike the block interface, it bypasses the block buffer cacheEach disk driver maintains a queue of pending transfersEach record in the queue specifies: whether it is a read or a write a main memory address for the transfera device address for the transfera transfer sizeIt is simple to map the information from a block buffer to what is required for this queue

  • C-ListsTerminal drivers use a character buffering system which involves keeping small blocks of characters in linked listsA write system call to a terminal enqueues characters on a list for the device. An initial transfer is started, and interrupts cause dequeueing of characters and further transfersInput is similarly interrupt drivenIt is also possible to have the device driver bypass the canonical queue and return characters directly form the raw queue raw mode (used by full-screen editors and other programs that need to react to every keystroke)

  • Interprocess CommunicationThe pipe is the IPC mechanism most characteristic of UNIXPermits a reliable unidirectional byte stream between two processesA benefit of pipes small size is that pipe data are seldom written to disk; they usually are kept in memory by the normal block buffer cacheIn 4.3BSD, pipes are implemented as a special case of the socket mechanism which provides a general interface not only to facilities such as pipes, which are local to one machine, but also to networking facilitiesThe socket mechanism can be used by unrelated processes

  • SocketsA socket is an endpont of communicationAn in-use socket it usually bound with an address; the nature of the address depends on the communication domain of the socketA characteristic property of a domain is that processes communication in the same domain use the same address formatA single socket can communicate in only one domain the three domains currently implemented in 4.3BSD are:the UNIX domain (AF_UNIX)the Internet domain (AF_INET)the XEROX Network Service (NS) domain (AF_NS)

  • Socket TypesStream sockets provide reliable, duplex, sequenced data streams. Supported in Internet domain by the TCP protocol. In UNIX domain, pipes are implemented as a pair of communicating stream socketsSequenced packet sockets provide similar data streams, except that record boundaries are provided Used in XEROX AF_NS protocolDatagram sockets transfer messages of variable size in either direction. Supported in Internet domain by UDP protocolReliably delivered message sockets transfer messages that are guaranteed to arrive (Currently unsupported)Raw sockets allow direct access by processes to the protocols that support the other socket types; e.g., in the Internet domain, it is possible to reach TCP, IP beneath that, or a deeper Ethernet protocol Useful for developing new protocols

  • Socket System CallsThe socket call creates a socket; takes as arguments specifications of the communication domain, socket type, and protocol to be used and returns a small integer called a socket descriptorA name is bound to a socket by the bind system callThe connect system call is used to initiate a connectionA server process uses socket to create a socket and bind to bind the well-known address of its service to that socketUses listen to tell the kernel that it is ready to accept connections from clientsUses accept to accept individual connectionsUses fork to produce a new process after the accept to service the client while the original server process continues to listen for more connections

  • Socket System Calls (Cont.)The simplest way to terminate a connection and to destroy the associated socket is to use the close system call on its socket descriptorThe select system call can be used to multiplex data transfers on several file descriptors and /or socket descriptors

  • Network SupportNetworking support is one of the most important features in 4.3BSDThe socket concept provides the programming mechanism to access other processes, even across a networkSockets provide an interface to several sets of protocolsAlmost all current UNIX systems support UUCP4.3BSD supports the DARPA Internet protocols UDP, TCP, IP, and ICMP on a wide range of Ethernet, token-ring, and ARPANET interfacesThe 4.3BSD networking implementation, and to a certain extent the socket facility, is more oriented toward the ARPANET Reference Model (ARM)

  • Network Reference models and Layering

  • *The History of LinuxThe real history of Linux starts in 1969, when Ken Thompson developed the first version of UNIX at Bell Labs After Dennis Ritchie, designer of the C programming language, joined the project it debuted to the research community in an academic paper in 1974Bell Labs released the first commercial version in 1976 as UNIX Version 6 (V6)UNIX spread throughout universities and in 1978 Bell Labs released UNIX Time-Sharing System, a version with portability in mind

  • *Linux History ContinuedBecause Bell Labs distributed UNIX with source code, the early 1980s saw three major branches grow on the UNIX tree:UNIX System III from Bell Labs UNIX Support Group (USG)UNIX Berkeley Source Distribution (BSD) from the University of California at BerkeleyMicrosofts XENIXThe UNIX market fragmented further in the 1980s, despite the IEEEs POSIX standard and the X/Open Groups Portability Guide

  • *Linus and LinuxIn 1991 Linus Torvalds took a college computer science course that used the Minix operating systemMinix is a toy UNIX-like OS written by Andrew Tanenbaum as a learning workbenchLinus wanted to make MINIX more usable, but Tanenbaum wanted to keep it ultra-simpleLinus went in his own direction and began working on LinuxIn October 1991 he announced Linux v0.02In March 1994 he released Linux v1.0

  • *The History of Windows (NT)The history of Windows really begins in the mid-1970s, when Dick Hustvedt, Peter Lipman and David Cutler designed the VMS operating system for Digitals 32-bit VAX processorDigital shipped VMS v1.0 in 1978Cutler moved to Seattle to open DECWest and worked on the Digital Mica OS for a new CPU codenamed Prism12 engineers went with him and the facility grew to 200In 1988 Digital cancelled the project

  • *The History of Windows ContinuedBill Gates wanted a UNIX rivalHe hired Cutler and 20 Digital engineers in 1989The new project was called NT OS/2 because it focused on OS/2 backward compatibilityWith the success of Windows 3.0s 1990 release Gates refocused the project on Windows compatibilityThe project renamed to Windows NTMicrosoft released Windows NT 3.1 in August 1993

  • *Windows and LinuxBoth Linux and Windows are based on foundations developed in the mid-1970s1970198019902000UNIX bornUNIX publicUNIX V6Linux v1.0v2.0v2.1v2.2v2.3v2.4v2.61970198019902000VMS v1.0Windows NT 3.1 NT 4.0Windows 2000Windows XPServer 2003

  • [Linux@panorama]# Linus Torvalds, estudiante de la Universidad de Helsinki, cre Linux por hobby. l estaba interesado en Minix, un sistema UNIX pequeo, y decidi desarrollar un sistema operativo que excediera los estndares de Minix. Comenz su trabajo en 1991 con la versin 0.02 y continu hasta que en 1994 liber el kernel de Linux, versin 1.0

  • [Linux@panorama]#Los desarrollos continan a cargo de numerosas organizaciones y programadores independientes, porque Torvalds registro a Linux bajo Licencia Pblica General (GNU). cualquier persona puede usar, modificar y distribuir Linux, pero no restringir su posterior distribucin. El desarrollador est obligado a poner a disposicin de los dems el cdigo fuente.

  • [LINUX@panorama]#Linux introdujo los conceptos de velocidad, eficiencia y flexibilidad de UNIX, a las microcomputadoras.Primera versin comercial distribuida en marzo de 1994 (kernel 1.0)Linux no es un UNIX.Linux mejor notablemente las curses de Unix.

  • [UNIX@panorama]#Deriva de un SO llamado MULTICS (Multiplexed Information & Computing System).Desarrollado en los laboratorios Bell, por Kernigham en 1973.Un SO de programadores para programadores.La columna vertebral del Internet.

  • [Caractersticas@panorama]#Multitarea realConectividad TCP/IPManejo de memoria virtual usando paginacinLibreras compartidasMultiusuarioManejo uniforme de recursos de E/S

  • [Caractersticas@panorama]#Tiempo RealMultiplataformaProteccin de memoria entre procesosSe realizan volcados de estadoTodo el cdigo fuente est disponible.Consolas virtuales mltiplesSoporte para varios sistemas de archivosSistema de cuotas para los recursosConstruccin de sistemas ciegos

  • [Caractersticas@panorama]#Se basa en las especificaciones de POSIX del IEEE:UniformidadAplicaciones pueden pasar de Linux a System V y al BSD.Soporte de funciones de UNIX.

  • [Caractersticas@panorama]#Linux fue creado en base a la filosofa muchos usuarios, una computadora.

    Windows fue creado bajo el paradigma un usuario, una computadora en cada escritorio y hogar.

    Windows integra la GUI en el Kernel. Linux no, por eso es ms estable.

  • [Hardware@panorama]#ARM Intel X86NeXTAmigaMotorola 68x00MIPS AlphaSilicon Graphics, etc.

  • [Embedded@panorama]#

  • [uso@panorama]#

  • [Gratis?@panorama]#Gratis != Libre

    Algunas excepciones:

    Caldera DR-DOSOracle para LinuxRed Hat, MandrakeInformix-SE para Linux

  • [Desventajas@panorama]#No existen todos los controladores para algunos perifricos como el escner en paralelo, o el reproductor de DVD.

    Los controladores no soportan bien cualquier dispositivo.

    Se necesita mayor capacitacin

  • [Desventajas@panorama]#No hay versiones estandarizadas.Comandos demasiado breves.

    ComandoMS-DOSUNIXVMSListar archivosDirlsDIRECTORYCambiar de directorioCD o CHDIRcdSET DEFAULTCopiar archivoCOPYcpCOPYRenombrar un archivoRENAMEmvRENAME

  • [FUD@panorama]Fear, Uncertainty, Doubt; es una tcnica de mercadeo cuando un competidor lanza un producto nuevo que es mucho mejor y que reduce costos.

    Linux es inseguroNo existe personal capacitadoNo es compatible con WindowsEs muy difcil

  • [Preocupaciones por usar Windows@panorama]#80% Calidad del software o vulnerabilidad64% Costo de propiedad muy alto55% Monopolio de Microsoft31% Manejo de problemas cuando surgen31% Mejores herramientas de administracin28% Escalabilidad17% Falta de un completo e integrado ambiente de cmputo17% Falta de un mapa claro de desarrollo del producto16% Aspectos de licenciamiento5% Otros9% Ninguno

  • [Razones para usar Linux@panorama]#90% Costo de licenciamiento gratuito o muy bajo88% Confiabilidad81% Desempeo70% Necesita alternativa a Windows48% Herramientas de desarrollo disponibles en Internet

  • [Razones para no utilizar Linux@panorama]#61% Aplicaciones Clave del negocio no corren en Linux49% Personal de TI no est entrenado en Linux42% Proveedores independientes de Software no lo respaldan41% Prefieren otro sistema operativo34% Preocupacin por desempeo31% No quiere manejar mltiples sistemas operativos30% No confa en software open-source22% Preocupacin por escalabilidad18% Proveedores de equipos no lo respaldan16% Otras razones

  • [Razones para usar Windows@panorama]#70% Adecuada integracin con otros productos de Microsoft68% Amplia disponibilidad de software aplicativo27% Buen desempeo y disponibilidad24% Buenas herramientas administrativas23% Buen servicio y soporte20% Expectativa en innovacin futura19% Confianza en el modelo econmico de Microsoft18% Bajo costo17% Buena integracin con plataformas no Microsoft10% Ambiente seguro14% Otros

  • [Razones de empresas para seleccionar Linux@panorama]#60% Bajo costo50% Buen desempeo y disponibilidad41% Ambiente seguro40% Expectativa por innovacin futura39% Confianza en el modelo open source21% Buenas herramientas de administracin12% Buena integracin con otro software de servidor12% Alta disponibidlidad de software aplicativo11% Soporte y servicio4% Otra

  • [Temores para usar Linux@panorama]#40% Falta de un ambiente completo e integrado de cmputo37% Falta de responsable si salen problemas35% Falta de un mapa claro de desarrollo de producto27% Posibles problemas de propiedad intelectual27% Mejores herramientas administrativas23% Calidad del software y vulnerabilidades7% Escalabilidad2% Alto costo de propiedad4% Otro27% No tiene preocupaciones

  • [Usos comunes para Linux@panorama]#80% Servidores Web o Intranet60% Administracin Bases de Datos58% Correo Electrnico o mensajera57% Desarrollo de Aplicaciones54% PC's de Escritorio50% Servidor de Archivos e impresoras40% Administracin de sistemas32% Aplicaciones Corporativas21% Servidores comercio electrnico10% Servidores delgados y cuchichas6% Clusters de supercomputadores24% Otros usos

  • [Requisitos@panorama]#

    ESTACIN DE TRABAJO SERVIDOR PROCESADOR Desde 386 Pentium a 133 MEMORIA Desde 8 MB 32 MB (como mnimo) DISCO DURO Desde 300 MB Desde 600 MB

  • [Mapa@panorama]#

  • [Sabores@panorama]#Qu refresco de cola es mejor?

    CocaPepsiGallitoBigcola

  • [Sabores@panorama]#Caldera Open-Linux, Debian GNU/Linux, DLX Linux, DOS Linux, hal91, LinuxPPC, Linux Pro, Linux Ware, MkLinux, RedHat Linux, Slackware Linux, StempedeLinux, S.u.S.E, Linux, TurboLinux, Yggdrasil Linux, Dexil DLD Linux, Eagle Linux, Eurielec Linux, Kheops Linux, MNIS Linux.

  • [Variantes@panorama]#IRIXAIXFreeBSDUnix System VHPUXSolarisUltrixUnix BSDFreeBSDOpenBSDNetBSD

  • [Gartner 2007@panorama]#Cdigo abiertoVirtualizacin Registro de servicios y repositoriosSuites para la gestin de procesos de negociosEnterprise Information ManagementCmputo ubicuoAcceso a la informacin Web 2.0 AJAX Rich Clients Web 2.0 - Mashup Composite ModelInteligencia colectiva y comunidades

  • [IDC 2007@panorama]#VirtualizacinGrid ComputingArquitectura orientada a servicios (SOA)Enterprise Information Management (EIM)Cdigo abiertoAcceso a la informacinAjaxMashup Composite ModelComputacin Distribuida en el Ambiente (Pervasive Computing)Recoleccin inteligente de datos

  • [GPL@panorama]#GNU Public License, se puede vender el software pero con cdigo libre. Otras licencias: Copyleft y Creative Commons.

    Desde la versin 2.2.0 la contibucin de Linus es menos del 5% del total

    El dinero no est en el producto, sino en los servicios que estn con l IBM

  • [Catedral y el bazar@panorama]#Eric RandomFecthmailCathedral ComercialBazar Linux

    Dado un nmero suficiente de ojos, todos los errores son irrelevantes.

  • [Bazar@panorama]#Todo buen trabajo de software comienza rasguando una inquietud personal del desarrollador.Los buenos programadores saben que escribir. Los grandes saben que re-escribir (y reusar).Cuando se pierde inters en un programa, el ltimo deber es ponerlo en manos de un sucesor competente.

  • [Bazar@panorama]#Tratar a tus usuarios como colaboradores es el camino menos complicado para mejorar con rapidez, y depurar eficazmente un programa.

    Libera pronto. Libera frecuentemente. Y escucha a tus usuarios.

  • [Bazar@panorama]#Dada una base lo suficientemente grande de probadores y colaboradores, casi cualquier problema se identificar con rapidez y el arreglo ser obvio para alguien.

    Estructuras de datos inteligentes asociadas a un cdigo torpe funcionan mucho mejor que la alternativa opuesta.

  • [Bazar@panorama]#Ensame tu cdigo y mantn ocultas tus estructuras de datos, y me seguirs engaando. Mustrame tus estructuras de datos y normalmente no necesitar que me ensees tu cdigo: resultar evidente.

    Si se tratan a la gente que te ayuda a depurar como si fueran el recurso ms valioso, respondern convirtindose en eso precisamente.

  • [Bazar@panorama]#Algo mejor que tener buenas ideas es reconocer las buenas ideas de los usuarios. Y en ocasiones esta ltima es la mejor en trminos absolutos.

    Con frecuencia, las soluciones ms impactantes e innovadoras vienen de darse cuenta que el concepto del problema est equivocado.

  • [Bazar@panorama]#Antoine de Saint-Exupory dijo: La perfeccin (en diseo) no se obtiene cuando no hay nada mas que agregar, sino cuando no hay nada mas que desechar..

    Eplogo de Netscape: es extrao sentir que realizas algo para hacer historia.

  • [Instalacin@Unidad I]$Realizar respaldo de archivos y configuraciones.

    Si se desea tener un sistema de arranque mltiple instalar primero los sistemas operativos y hasta el final Linux.

    Realizar particionado de preferencia manual antes de la instalacin

  • [Instalacin@Unidad I]$Se deber elegir el tipo de instalacin: modo grfico, modo texto o modo experto.

    Se deber tener conocimiento sobre el hardware del equipo.

    Se deber saber que uso se le dar a la mquina para as seleccionar el tipo de instalacin y conocer los paquetes a instalar.

  • [Instalacin@Unidad I]$La mayora de las distribuciones de Linux cuentan con instaladores para:Clientes Estaciones de TrabajoServidores

    Se recomienda en servidor no instalar interfaz grfica y paquetes que no se usan

    El problema no es instalar Linux sino configurarlo

  • [Cliente/Servidor@Unidad I]$ClienteServidorPeticinRespuesta

  • [Computadoras@Unidad I]$El trmino cliente/servidor se refiere a procesos pero se asocia con mquinas

    SupercomputadorasMainframes (macrocomputadoras)Estaciones de trabajos (minicomputadoras)Computadoras personales (microcomputadoras).

  • [Cliente/Servidor@Unidad I]$Servidor: a computadoras de gran tamao, brindan servicios a otras mquinas.

    Cliente: computadoras de menor tamao, limitadas en recursos, reciben servicios de los servidores. Terminales tontas.

    Estaciones de trabajo: computadoras de mayores prestaciones que los clientes pero menores que los servidores.

  • [Actualizacin@Unidad I]$La actualizacin es ms lenta. Es mejor realizar un respaldo y luego instalar.

    Particiones: /, /usr, /var, /home, /tmp, /boot y Swap.

    Disk druid es un asistente para particionado.NTFS es ms estricto a la hora de realizar modificaciones en las particiones.

  • [Instalacin de paquetes@Unidad I]$tar xzvf paquete.tar.gzcd paquete

    ./configure

    make

    make install

  • [Instalacin de sw@Unidad I]$rpm i paqueterpm U actualiza paquete

    rpm qarpm -qirpm qf

    rpm e desinstala paquete

  • [Configuracin SW@Unidad I]$Linux no cuenta con un registro pero si con archivos de configuracin. Las primeras versiones de Windows no tenan Registro (archivos .INI)

    La configuracin depende de cada servicio.

    La localizacin de los archivos de configuracin puede variar en cada distribucin

  • [apt@Unidad I]$Advanced Packaging Tool.

    /etc/apt/sources.listapt-get install paqueteapt-get remove paqueteapt-get reinstall install paqueteapt-cdrom ruta addapt-get -u install lilo

  • [GUI@Unidad I]$XFree86

    EnlightenmentWindowMakerBlackboxFluxBox

    GNOMEKDE

  • [GUI@Unidad I]$Startx.xinitrc

    #!/bin/shgnome-sesion

  • [KDE@Unidad I]$KDE (K Desktop Environment) es un entorno de escritorio grfico e infraestructura de desarrollo para sistemas Unix y, en particular, Linux.

    KDE imit a CDE (Common Desktop Environment) en sus inicios. CDE es un entorno de escritorio utilizado por varios Unix.

    De acuerdo con su pgina Web, "KDE es un entorno grfico contemporneo para estaciones de trabajo Unix. KDE llena la necesidad de un escritorio amigable para estaciones de trabajo Unix, similar a los escritorios de MacOS o Windows".

  • [GNOME@Unidad I]$GNOME o Gnome es un entorno de escritorio para sistemas operativos de tipo Unix bajo tecnologa X Window, se encuentra disponible actualmente en ms de 35 idiomas. Forma parte oficial del proyecto GNU.

    Creado por el mexicano Miguel de Icaza.

  • [Ofimtica@Unidad I]$Ofimtica: Suite con Procesador de texto, hojas electrnicas, presentacines, grficas y bases de datos.StarOffice 6.0, Sun Microsystems Inc.(Windows, Linux, Solaris)OpenOffice.org (Windows, Linux, Solaris)Koffice

  • [Navegadores@Unidad I]$Netscape (www.netscape.com) Mozilla (www.mozilla.org)FireFox (www.firefox.com)

    Opera (www.opera.com)Konqueror (KDE) (www.kde.org)

    Lynx

  • [Antivirus@Unidad I]$OpenAntiVirus Project www.openantivirus.org

    CLAM Antivirus http://clamav.elektrapro.com

    AMaViS A Mail Virus Scanner www.amavis.org

    Sophos www.sophos.com

  • [mtools@Unidad I]$Comandos de MS-DOSmcopy

    /etc/mtools.conf. drive a: file="/dev/fd0" exclusive drive b: file="/dev/fd1" exclusive # 1er disco Duro drive c: file="/dev/hda1" # 2nd disco Duro drive d: file="/dev/sda1" mtools_lower_case=1

  • [Emuladores@Unidad I]$DOSemu para MS-DOSWine para Windows

    Virtualizacin:VMwareZenBosch

  • [Otras apliacaciones@Unidad I]$Existen muchas aplicaciones de software libre y propietario para Linux que abarcan prcticamente todas las reas del quehacer humano.

    La ventaja del software libre es que muchas de las versiones de programas para Linux existen tambin para otros SOs.

  • [Lenguajes@]$C Compilador gccC++ Compilador g++GNU Fortran 77

    TclButton .b text Hola mundo! comand exitPack .b

  • [Lenguajes@Unidad I]$Perl

    Python

    Ruby

    AWK

  • [Servidor Stream]@Unidad I]$#include #include #include #include #include #include #include #include #include #include #include #define MYPORT 3490 // Puerto al que conectarn los usuarios #define BACKLOG 10 // Cuntas conexiones pendientes se mantienen en cola void sigchld_handler(int s) { while(wait(NULL) > 0); } int main(void) { int sockfd, new_fd; // Escuchar sobre sock_fd, nuevas conexiones sobre new_fd struct sockaddr_in my_addr; // informacin sobre mi direccin struct sockaddr_in their_addr; // informacin sobre la direccin del cliente int sin_size; struct sigaction sa; int yes=1;

  • [Servidor Stream]@Unidad I]$if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(int)) == -1) { perror("setsockopt"); exit(1); } my_addr.sin_family = AF_INET; // Ordenacin de bytes de la mquina my_addr.sin_port = htons(MYPORT); // short, Ordenacin de bytes de la red my_addr.sin_addr.s_addr = INADDR_ANY; // Rellenar con mi direccin IP memset(&(my_addr.sin_zero), '\0', 8); // Poner a cero el resto de la estructura }

  • [Servidor Stream]@Unidad I]$if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); } if (listen(sockfd, BACKLOG) == -1) { perror("listen"); exit(1); } sa.sa_handler = sigchld_handler; // Eliminar procesos muertos sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART; if (sigaction(SIGCHLD, &sa, NULL) == -1) { perror("sigaction"); exit(1); } return 0;

  • [Servidor Stream]@Unidad I]$while(1) { // main accept() loop sin_size = sizeof(struct sockaddr_in); if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) { perror("accept"); continue; } printf("server: got connection from %s\n", inet_ntoa(their_addr.sin_addr)); if (!fork()) { // Este es el proceso hijo close(sockfd); // El hijo no necesita este descriptor if (send(new_fd, "Hello, world!\n", 14, 0) == -1) perror("send"); close(new_fd); exit(0); } close(new_fd); // El proceso padre no lo necesita }

  • [Cliente Stream@Unidad I]$#include #include #include #include #include #include #include #include #include #define PORT 3490 // puerto al que vamos a conectar #define MAXDATASIZE 100 // mximo nmero de bytes que se pueden leer de una vez int main(int argc, char *argv[]) { int sockfd, numbytes; char buf[MAXDATASIZE]; struct hostent *he; struct sockaddr_in their_addr; // informacin de la direccin de destino memset(&(their_addr.sin_zero), 8); // poner a cero el resto de la estructura

  • [Cliente Stream@Unidad I]$if (argc != 2) { fprintf(stderr,"usage: client hostname\n"); exit(1); } if ((he=gethostbyname(argv[1])) == NULL) { // obtener informacin de mquina perror("gethostbyname"); exit(1); } if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } their_addr.sin_family = AF_INET; // Ordenacin de bytes de la mquina their_addr.sin_port = htons(PORT); // short, Ordenacin de bytes de la red their_addr.sin_addr = *((struct in_addr *)he->h_addr);

  • [Cliente Stream@Unidad I]$if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1) { perror("connect"); exit(1); } if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) { perror("recv"); exit(1); } buf[numbytes] = '\0'; printf("Received: %s",buf); close(sockfd); return 0; }

  • [Servidor Datagrama@Unidad I]$#include #include #include #include #include #include #include #include #include #define MYPORT 4950 // puerto al que conectarn los clientes #define MAXBUFLEN 100 int main(void) { int sockfd; struct sockaddr_in my_addr; // informacin sobre mi direccin struct sockaddr_in their_addr; // informacin sobre la direccin del cliente int addr_len, numbytes; char buf[MAXBUFLEN]; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); }

  • [Servidor Datagrama@Unidad I]$my_addr.sin_family = AF_INET; // Ordenacin de bytes de mquina my_addr.sin_port = htons(MYPORT); // short, Ordenacin de bytes de la red my_addr.sin_addr.s_addr = INADDR_ANY; // rellenar con mi direccin IP memset(&(my_addr.sin_zero), '\0', 8); // poner a cero el resto de la estructura if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); } addr_len = sizeof(struct sockaddr); if ((numbytes=recvfrom(sockfd,buf, MAXBUFLEN-1, 0, (struct sockaddr *)&their_addr, &addr_len)) == -1) { perror("recvfrom"); exit(1); } printf("got packet from %s\n",inet_ntoa(their_addr.sin_addr)); printf("packet is %d bytes long\n",numbytes); buf[numbytes] = '\0'; printf("packet contains \"%s\"\n",buf); close(sockfd); return 0; }

  • [Cliente Datagrama@Unidad I]$#include #include #include #include #include #include #include #include #include #include #define MYPORT 4950 // puerto donde vamos a conectarnos int main(int argc, char *argv[]) { int sockfd; struct sockaddr_in their_addr; // informacin sobre la direccin del servidor struct hostent *he; int numbytes; if (argc != 3) { fprintf(stderr,"usage: talker hostname message\n"); exit(1); } if ((he=gethostbyname(argv[1])) == NULL) { // obtener informacin de mquina perror("gethostbyname"); exit(1); }

  • [Cliente Datagrama@Unidad I]$if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); } their_addr.sin_family = AF_INET; // Ordenacin de bytes de mquina their_addr.sin_port = htons(MYPORT); // short, Ordenacin de bytes de la red their_addr.sin_addr = *((struct in_addr *)he->h_addr); memset(&(their_addr.sin_zero), '\0', 8); // poner a cero el resto de la estructura if ((numbytes=sendto(sockfd, argv[2], strlen(argv[2]), 0, (struct sockaddr *)&their_addr, sizeof(struct sockaddr))) == -1) { perror("sendto"); exit(1); } printf("sent %d bytes to %s\n", numbytes, inet_ntoa(their_addr.sin_addr)); close(sockfd); return 0; }

  • [Servidor Stream@Unidad I]$import java.net.*;import java.io.*;

    public class SocketServidor{ public static void main (String [] args) {new SocketServidor(); } public SocketServidor() { try {ServerSocket socket = new ServerSocket (35557); System.out.println ("Esperando cliente"); Socket cliente = socket.accept(); System.out.println ("Conectado con cliente de " + cliente.getInetAddress()); cliente.setSoLinger (true, 10);

    DataOutputStream buffer = new DataOutputStream (cliente.getOutputStream());

  • [Servidor Stream@Unidad I]$ buffer.writeInt (22); System.out.println ("Enviado 22"); buffer.writeUTF ("Hola"); System.out.println ("Enviado Hola"); DatoSocket dato = new DatoSocket(); ObjectOutputStream bufferObjetos = new ObjectOutputStream (cliente.getOutputStream()); bufferObjetos.writeObject(dato); System.out.println ("Enviado " + dato.toString()); cliente.close(); socket.close(); } catch (Exception e) { e.printStackTrace(); } }}

  • [Cliente Stream@Unidad I]$import java.net.*;import java.io.*;

    public class SocketCliente { public static void main (String [] args) { new SocketCliente(); } public SocketCliente() { try {Socket socket = new Socket ("localhost", 35557); System.out.println ("conectado");

  • [Cliente Stream@Unidad I]$DataInputStream buffer = new DataInputStream (socket.getInputStream()); System.out.println("Recibido " + buffer.readInt()); System.out.println ("Recibido " + buffer.readUTF()); ObjectInputStream bufferObjetos = new ObjectInputStream (socket.getInputStream()); DatoSocket dato = (DatoSocket)bufferObjetos.readObject(); System.out.println ("Recibido " + dato.toString()); } catch (Exception e) { e.printStackTrace(); } }}

  • [Procesos@Unidad I]$#include #include #include

    void trataSenhal (int);main(){pid_t idProceso;

    idProceso = fork();

    if (idProceso == -1){perror ("No se puede lanzar proceso");exit (-1);}

  • [Procesos@Unidad I]$if (idProceso == 0){signal (SIGUSR1, trataSenhal);while (1)pause ();}

    if (idProceso > 0){while (1){sleep (1);kill (idProceso, SIGUSR1);}}}

    void trataSenhal (int numeroSenhal){printf ("Recibida seal del padre\n");}

  • [Semforos@Unidad I]$#include #include #include #include #include

    #if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)#elseunion semun { int val;struct semid_ds *buf;unsigned short int *array;struct seminfo *__buf;};#endif

  • [Semforos@Unidad I]$main(){key_t Clave;int Id_Semaforo;struct sembuf Operacion;union semun arg;int i=0;

    Clave = ftok ("/bin/ls", 33);if (Clave == (key_t)-1){cout

  • [Semforos@Unidad I]$if (Id_Semaforo == -1){cout
  • [RPC@Unidad I]$rpcgen -a fichero.x

    program NOMBRE_PROGRAMA { version VERSION_PROGRAMA { int incrementa (int) = 1; } = 1; } = 0x20000001;

  • [RPC@Unidad I]$int suma (int sumando1, int sumando2);

    struct sumandos { int sumando1; int sumando2; }; program PROGRAMA_SUMA { version VERSION_SUMA { int suma (sumandos) = 1; } = 1; } = 0x20000001;

  • [RPC@Unidad I]$int * suma_1_svc(sumandos *argp, struct svc_req *rqstp) { static int result; /* * insert server code here */ result = argp->sumando1 + argp->sumando2; /* Esta lnea debe hacerla el programador */ return &result; }

  • [RMIi@Unidad I]$import java.rmi.*;

    public interface HolaMundoRmiI extends Remote { String objRemotoHola( String cliente ) throws RemoteException; }

  • [RMIc@Unidad I]$import java.rmi.*;

    public class HolaMundoRmiC {

    public static void main( String[] args ) { // Direccion de la maquina remota, en este caso la maquina local, // si se va a ejecutar en una maquina diferente, se debera cambiar // a algo semejante a: "rmi://www.servidor.com" String direccion = "rmi://10.27.34.47/"; try { HolaMundoRmiI hm = (HolaMundoRmiI)Naming.lookup( direccion+"ObjetoHola" ); System.out.println( hm.objRemotoHola( "Mundo" ) ); } catch( Exception e ) { e.printStackTrace(); } System.exit( 0 ); }}

  • [RMIs@Unidad I]$import java.rmi.*;import java.rmi.server.*;

    public class HolaMundoRmiS {

    public static void main( String args[] ) {

    try { // Se instala el controlador de seguridad if( System.getSecurityManager() == null ) { System.setSecurityManager( new RMISecurityManager() ); }

    HolaMundoRmiO objRemoto = new HolaMundoRmiO();

    Naming.rebind( "ObjetoHola",objRemoto );

    System.out.println( "Objeto remoto preparado" ); } catch( Exception e ) { e.printStackTrace(); } } }

  • [RM