Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Operating Systems User Interfaces
M.C. Juan Carlos Olivares Rojas Operating Systems February, 2009
2
Outline CLI (Command Line Interface) Graphical User Interfaces
DOS Basic Commands Windows NT Basic Commands *X Systems Graphical User Interfaces Basic Operation of Wndows Systems at Windows, *X and MAC-OS New Trends in User Interface of Operating Systems
3
Objective The 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.
4
DOS DOS (Disk Operating System, Sistema Operativo de Disco) fue el primer sistema operativo para las IBM-PC. Desarrollado por la compañía Microsoft en se vendía junto con la computadora personal de IBM, recibiendo IBM las regalías. Es un sistema operativo compacto con muchas limitaciones actualmente, pero funcional.
5
DOS Es un sistema operativo monotarea, multiusuario capaz de ejecutarse a través de un disco flexible (recordar que las primeras PCs no tenían disco duro) Es un sistema operativo basado en línea de comandos, por lo que el usuario para poder trabajar con la máquina ocupa saber comandos.
6
DOS El sistema operativo cuenta con comandos que son reconocidos como válidos los cuales se pueden encontrar en el proceso principal o en utilerías. Cualquier programa tiene que acceder al sistema operativo para el manejo de los recursos, pero DOS es muy tolerante en el acceso al hardware
7
DOS La administración de procesos es simple, dado que sólo existe una tarea activa. El sistema puede manejar interrupciones y ejecutar otra tarea. Los procesos pueden ser .com o .exe, donde los primeros sólo ocupan un segmento.
8
DOS La memoria está administrada a través de un esquema de segmentación. Cada segmento tiene un tamaño de 64 KB. El sistema operativo sólo 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.
9
DOS El sistema no puede acceder a más de 1 MB de RAM, por lo que se encuentra limitado en el número de programas que se mantiene en memoria. A la memoria entre un 640 KB y 1 MB se le llama memoria expandida, después del 1 MB y superior se le llama memoria extendida. Esta limitante motivo el surgimiento de Windows.
10
DOS La administración de Entrada/Salida (Periféricos) es sencilla ya que no hay compartición de los mismos. Cada programa necesita instalar el controlador del dispositivo para que pueda trabajar de forma eficiente. La administración de archivos se basa en un esquema jerárquico tipo árbol, en donde la raíz corresponda cada letra de una unidad de almacenamiento.
11
DOS Los archivos deben tener un nombre máximo de 8 caracteres seguidos de una extensión de máximo tres caracteres. Las nuevas versiones de DOS permiten nombres de archivos más grande. Los directorios permiten administrar de forma eficiente los archivos. Los directorios son contenedores de archivos.
12
DOS Al 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 extensión .sys son esenciales para el sistema operativo.
13
DOS El sistema de archivos que se maneja es FAT
El sistema operativo es muy pequeño, ya casi no se utiliza y su uso ha estado limitado por el crecimiento de Windows, pero la esencia básica no ha muerto. La computación ha cambiado radicalmente en los últimos años que DOS ya no es funcional para las necesidades actuales de los usuarios.
14
Comandos internos Son 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 están presentes en cualquier versión de DOS aunque pueden tener diferencias como en PC-DOS, DR- DOS, FreeDOS, etc.
15
Comandos internos Los comandos internos proveen la funcionalidad básica 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 utilerías.
16
Comandos internos Ejemplos de comandos internos son:
DATE: cambia la fecha del sistema operativo, muy útil en sistemas antiguos que no tenían un reloj físico. El comando HELP muestra la ayuda del sistema, en general permite ver la sintaxis detallada y ejemplo de uso del sistema.
17
Comandos internos Si 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 través del parámetro /? Los parámetros de los comandos se introducen con el carácter “/” seguido de una letra que indica la opción y opcionalmente el valor asociado.
18
Comandos internos TYPE: 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
19
Comandos internos VOL: muestra información 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.
20
Comandos internos Otros ejemplos de comandos internos: copy, atrib, prompt, set, echo Ejemplos de comandos externos son: append, asign, backup, chkdsk, comp, diskcomp, discopy, fdisk, find.
21
Diferencia entre archivos y directorios
La diferencia fundanmental entre un archivo y un directorio es en cuestión semántica. Los directorios no pueden ser procesados para almacenamiento de datos de programa sólo contienen archivos. En la estructura jerárquica del sistema de archivos, los directorios son todos aquellos que no se encuentran hasta el final.
22
Diferencia entre archivos y directorios
El comando tree permite visualizar en forma jerárquica los directorios y los archivos que contiene cierta ruta. Aunque básicamente se realizan las mismas operaciones, los comandos son distintos para archivos como directorios.
23
Presentación 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 parámetro /p hace una pausa al visualizar el archivo. La opción /w los muestra en columnas. La opción /a muestra todos los archivos
24
Presentación de contenidos de un directorio
En general los directorios aunque estén vacíos 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 <dir> y los archivos muestran su tamaño en bytes al desplegar su contenido.
25
Cambio de directorio Para cambiar de directorio se ocupa el comando CD. El cual si es un nombre válido podemos visualizar su contenido. Mientras se este en un directorio, dicho directorio no puede borrase se necesita retroceder una posición actual, esto puede hacerse a través del comando cd ..
26
Creación de directorio
El 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 información. Hasta que se crea un directorio, se pueden subir archivos a él.
27
Eliminación de directorio
Para borrar un directorio se utiliza la instrucción RMDIR o RD. El directorio debe estar vacío de lo contrario no se podrá borrar (se pueden utilizar la opción /s para borrar todo el árbol). Con la combinación de teclas F3 y arriba/abajo se pueden obtener los comandos anteriores o con F1 se obtienen letra por letra el comando anterior
28
Cambio de unidades Las unidades son el punto raíz 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.
29
Manejo de rutas para archivos
El manejo de rutas es muy importante ya que determinan la ubicación de todos los recursos de la máquina. 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
30
Uso de extensiones Las extensiones permiten indicarle a las aplicaciones de que archivos se trata, en la mayoría de los casos son más útiles al usuario que a el sistema operativo Los comandos se pueden abortar con la combinación de teclas Ctrl+C. La máquina se puede reiniciar con Ctrl+Alt+Supr
31
Uso de comodines Los 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 comodín * puede ser utilizado para sustituir de 0 a n caracteres en el nombre de un archivo.
32
Uso de comodines El comodín ? Sustituye un carácter. Por ejemplo:
DIR f*.doc, muestra todos los archivos cuyo nombre comience con f seguido de cualquier carácter.
33
Creación de archivos Los archivos se crean a través de cualquier aplicación. Por ejemplo, se pueden crear archivos de texto plano con la utilería 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 díficil a través de comandos existen interfaces más agradables como el dosshell o el Peter Norton commander.
34
Comando format Es 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 información.
35
Comando format Una 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 ratón en sistemas modo texto ocupando un controlador especial.
36
Copia de archivos La copia de archivos se hace a través de copy, se tiene que indicar el archivo o ruta origen y la ruta destino. Se pueden utilizar comodines para simplificar el proceso. Existen utilerías que simplifican el proceso de copiado como diskcopy, que copia información de un disco a otro.
37
Windows Windows es un sistema operativo con interfaz gráfica de usuario. Se basa en una metáfora con los escritorios de la oficina. Las primeras versiones eran realmente una interfaz gráfica para D.O.S. Trae muchas mejoras en relación con su antecesor.
38
Características Las 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 fácil de usar y aprender, multitarea, sin límites tan marcados de memoria (rompe la barrera de los 640 KB), multiusuario.
39
Características Se ha portado a infinidad de dispositivos como los móviles y empotrados (Windows Mobile y Windows CE) Es un sistema operativo modular que tiene un microkernel (kernel.exe, kernel.dll). Posee una capa de abstracción con el hardware (HAL). Tiene otros servicios como la interfaz de usuario (user.exe, user.dll), el manejo de gráficos (gdi.exe), implementa el manejo de archivos (Explorer.exe) entre otros.
40
Historia Microsoft anuncia "Windows“ (1983), una interface gráfica para la IBM PC, aunque fue lanzada hasta Tiene ventanas que puede superponerse y cambiar de tamaño
41
Historia En agosto Microsoft lanza finalmente la primera versión de Windows, aunque en esta versión las ventanas no se pueden traslapar, y las ventanas no pueden superponerse encima de la barra de menús superior.
42
Historia 1987 Microsoft lanza la segunda versión de Windows (2.03) en 1987, la cual ya se pueden cambiar de tamaño las ventanas, sobreponer ventanas y se agregaron algunos controles nuevos sobre las ventanas.
43
Windows 3.0 1990 Microsoft lanza en mayo de 1990 Windows 3.0 al cual se le agregó un manejador de programas.
44
Windows NT 1993 Microsoft lanza en mayo de 1994 la primera versión 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.
45
Windows 95 1995 Microsoft saca Windows 95 el 24 de agosto de 1995.
46
Windows NT 4.0 1996 Microsoft saca en 1996 Windows NT 4.0 con la misma interface que Windows 95.
47
Windows 98 1998 El 25 de junio de 1998 Microsoft saca al mercado Windows 98, el cual incluye el Internet Explorer.
48
Windows 2000 2000 El 17 de febrero de 2000, Microsoft lanza Windows 2000.
49
Windows XP 2001 El 25 de octubre de 1991 Microsoft saca al mercado Windows XP.
50
Windows Server 2003 2003 El 24 de abril de 2003, Microsoft libera Windows Server 2003.
51
Windows Vista Aparece el 30 noviembre de Es un sistema con seguridad mejorada, soporte nativo a otras arquitecturas, elementos gráficos sorprendentes.
52
Windows Server 2008
53
Futuro Windows 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 múltiples núcleo, las memorias FlashROM, la virtualización, entre otras interesantes tecnologías.
54
El escritorio Es 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 demás recursos de las computadoras. A nivel de implementación es una carpeta que contiene diversos elementos (C:\Documents and settings\usuario\Escritorio)
55
Escritorio Típico El concepto de escritorio (desktop) viene de la analogía con un escritorio. Por default viene vacío, 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 imágenes de fondo. Un escritorio típico tiene: Teléfono, reloj, papel, lápiz, bandeja de entrada y salida de documentos.
56
Herramientas Posteriormente se le pueden agregar marcadores, hojas para recados, papel para graficar, formatos, etc.
57
Documentos Con estas herramientas se puede empezar a trabajar en varios documentos a la vez
58
Accesorios En este escritorio se pueden poner revistas y mapas disponibles para que el usuario pueda consultarlos.
59
Suscripciones y Personalización
Si tiene suscripción a algún medio de información, como el periódico, será parte del escritorio. También se pueden agregar objetos decorativos, como un peluche, que personalizan mi área de trabajo.
60
Juegos El escritorio también puede servir como base para poder jugar en él, como por ejemplo un juego de cartas (Solitario).
61
Almacenamiento Temporalmente, el escritorio puede servir como un medio de almacenamiento.
62
Copias Si se agregan accesorios, se pueden hacer copias de documentos.
63
Almacenar y Ordenar Se agrega otro accesorio (cajón) para almacenar y ordenar información que no necesitamos en el escritorio.
64
Bote de Basura Por último se agrega un bote de basura donde tiramos las cosas que no nos sirven, con la opción de que mientras no pase el carro de la basura, podemos extraer lo que tiramos al bote de la basura.
65
Escritorio Todos los elementos anteriores nos dan como resultado la interface gráfica basada en el escritorio que conocemos hoy en día. 2005
66
Las ventanas Es el elemento principal de la interfaz de usuario. Son componentes en la mayoría 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 características. Los servicios del sistema no poseen ventanas asociadas a ellos.
67
Las ventanas 67
68
Los iconos y sus tipos Son elementos visuales que representan una acción 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 aplicación o archivo de manera rápida) y los íconos de acción.
69
Barra de tareas Aparecida con Windows 95, la barra de menús se ha convertido en todo un estándar en el diseño de interfaces gráficas 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)
70
Barra de tareas Dicha barra contiene las aplicaciones que se están ejecutando en ese momento por lo que la conmutación de tareas es muy rápida. Tambien contiene del lado izquierdo el botón inicio y del lado derecho cuenta con algunos íconos de acceso a recursos de hardware que se están monitorizando.
71
Barra de tareas Botones de aplicaciones Opciones de Teclado
Botón de inicio Tray Reloj
72
Menú inicio El menú inicio permite centralizar las aplicaciones para encontrarlas de manera más fácil e intuitiva. Este menú se compone de accesos rápidos a las principales aplicaciones y a las aplicaciones utilizadas recientemente. Permite simplificar la mayoría de las tareas de manera rápida y sencilla.
73
Manejo de ventanas 6.3.1 Áreas de una ventana Como mover una ventana Como cambiar el tamaño de una ventana Maximizar, Minimizar y restaurar
74
Áreas de una ventana Los componentes de un ventana son:
El área de contenido, la cual es la más grande y es en donde se realizan las diversas acciones. El área de título, donde se tiene el título de la aplicación, los botones de maximizar, minimizar y restaurar.
75
Áreas de una ventana El área de menús donde se tienen las opciones del sistema. El área de barra de herramientas con opciones rápidas. El área de la barra de estado, en donde se muestra información relevante al área de estudio.
76
Áreas de una ventana Existen dos tipos de ventanas aquellas que pueden tener anidadas dentro de ellas otras ventanas (MDI, Multiple Document Interface) y aquellas que sólo 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 también se cierran.
77
Áreas de una ventana Botón minimizar:
Envía la ventana a la barra de tareas en forma de botón liberando así espacio en el escritorio Botón cerrar: Cierra la ventana, como en Windows cada programa es una ventana, al cerrar ésta, también se cierra la aplicación Botón maximizar: Aumenta de tamaño la ventana activa hasta ocupar la totalidad del escritorio
78
Como mover una ventana Para mover una ventana, esta no debe de estar maximizada, si se utiliza el ratón, se debe posicionar el puntero en la barra del título y hacer drag & drop (arrastrar y soltar, se explica más 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).
79
Como cambiar el tamaño de una ventana
La ventana no debe de estar maximizada para poderle cambiar el tamaño. Se posiciona el puntero del ratón 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 tamaño.
80
Maximizar, Minimizar y restaurar
Maximizar consiste en poner una ventana en tamaño 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.
81
Maximizar, Minimizar y restaurar
Restaurar consiste en regresar una ventana a su tamaño anterior o tamaño original. En ocasiones es una versión intermedia entre una ventana maximizada y una ventana minimizada. Las ventanas pueden clasificarse en activas y pasivas. Sólo existe una ventana activa y es aquella que la barra de títulos está marcada en color activo. Las ventanas activas tienen el foco de la aplicación y tienen prioridad de ejecución sobre las otras ventanas. 81
82
Manejo del mouse Windows es un sistema operativo manejado por eventos.
Un eventos es cualquier acción que ocurre en el sistema como presionar una tecla, hacer clic con el ratón, la instalación de una aplicación, etc. Estos eventos son manejados por el sistema de manera transparente tanto para usuarios como para programadores.
83
Manejo del mouse Las interfaces gráficas de usuario requieren de mecanismos para señalizar los recursos. El ratón 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.
84
Manejo del mouse El evento OnMove, posiciona el apuntador en cierta ubicación 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 acción 84
85
Manejo del mouse El 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 botón izquierdo del mouse una vez arrastrado algún elemento. Es útil en muchas actividades en Windows. El botón derecho del mouse generalmente se utiliza para los menús contextuales 85
86
Manejo del mouse Algunos ratones no cuentan con clic derecho pero pueden emularse con ctrl + clic izquierdo. Otro elemento importante consiste en el botón de scroll o botones inteligentes, que mueve la pantalla de arriba abajo. Todas las acciones del mouse se puedeen realizar a través del teclado. 86
87
Uso del teclado El teclado es de vital importancia en el manejo de Windows. Se puede manejar Windows sin ningún dispositivo señalizador sólo con el uso exclusivo de un teclado. Los teclados pueden diferir en el número de teclas pero generalmente se maneja una combinación de 101 teclas.
88
Uso del teclado El 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 menús. 88
89
Uso del teclado Con la tecla shift se permiten realizar acciones sin confirmación del usuario (shift+supr) para borrar definitivamente las opciones. Tambien se utiliza para seleccionar múltiples elementos adyacentes. La tecla Tab permite desplazarnos de elemento gráfico 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. 89
90
Uso del teclado La 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 máquina en casi todos los sistemas operativos, en Windows permite abrir el administrador de tarea para administrar recursos como los procesos y la memoria. 90
91
Uso del teclado La tecla del logotipo de Windows presente en algunos teclados permite mostrar el menú inició de manera rápida (se puede utilizar ctrl+esc), adicionalmente se cuenta con un botón 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 tamaño a una ventana entre otras. 91
92
Uso del teclado Las teclas de función ya tienen asociado cierto significado, por ejemplo F1 para la ayuda, F3 para buscar, F5 para actualizar. Esta configuración cambiará dependiendo de los programas. La combinación Alt+F4 cierra una ventana. Alt + Guión permite ver el menu contextual de cada ventana padre. 92
93
Como elegir comandos del menú
Para elegir comandos del menú se puede utilizar el teclado o el dispositivo señalizador. Simple se selecciona una opción y si el menú tiene una opción ejecutable se realiza. Algunos menús se sustituyen por las barras de herramientas y en algunas ocasiones por botones de acción.
94
Como elegir comandos del menú
94
95
Uso del menú control El menú control es aquel que se encuentra situado en la parte superior izquierda. Este menú contiene opciones para manipular la ventana, pero también puede contener opciones personalizables, por ejemplo si se abre una terminal de DOS se puede tener acceso a la configuración de la ventana y a aspectos como copiar y pegar datos entre esas ventanas.
96
Menús contextuales Los menús contextuales dependen de lo que se esté utilizando. Generalmente se obtienen al hacer clic derecho. El menú contextual puede tener opciones de edición de un archivo, de enlaces rápidos como enviar a… y una gran variedad de aplicaciones.
97
Menús contextuales 97
98
Explorador de Windows Es el sistema que permite visualizar los archivos y recursos de la computadora se llama Explorador de Windows. Interactúa con el administrador de archivos para realizar todas las opciones de manipulación de recursos en Windows. Estas opciones generalmente se hacían a través de los comandos de DOS.
99
Explorador de Windows 99
100
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 están siempre presente una vez conectada la unidad física. Esa unida de disco es independiente de las demás. Se manejan letras como A:, C: para hacer referencia a las unidades.
101
Copiar, mover archivos y carpetas
Las operaciones más comunes sobre el sistema de archivos se pueden hacer de manera visual. Copiar es tan sencillo como seleccionar la opción correspondiente y pegar en la nueva ubicación. Si se selecciona un archivo y este se arrastra a otra carpeta generalmente se copia si están en unidades distintas, y se mueve si están en la misma unidad (para evitar este problema se puede dejar presionada la tecla ctrl o shift)
102
Copiar, mover archivos y carpetas
Tanto los archivos como las carpetas se manejan de la misma forma, por lo que se tiene la misma semántica y no es necesario aprenderse comandos distintos. Para renombrar archivos se presiona la tecla F2 u opción renombrar. Generalmente las extensiones de archivos están ocultas pero pueden habilitarse a través de las opciones de carpeta del explorador. Se puede cambiar el fondo. 102
103
Copiar, mover archivos y carpetas
103
104
Inicio de aplicaciones
Para 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.
105
Uso de mi PC Mi PC o Equipo en Windows Vista se utiliza como punto de encuentro de los demás 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 utilización de Windows.
106
Uso de la papelera de reciclaje
La papelera de reciclaje es un directorio temporal donde se guardan elementos que han sido borrados. Cuando se borra un archivo a través 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 difícil recuperarlo.
107
Panel de control El 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, administración de periféricos y algunas opciones de software. El panel de control necesita tener derechos de administrador para poder funcionar.
108
Tipos de aplicaciones Los tipos de aplicaciones dependen de las acciones a realizar, generalmente existen aplicaciones de gestión (ofimática, nómina, contabilidad, etc.), software de ingeniería, software de sistemas, software empotrado, software de tiempo real, software para Web y software de sistemas (utilerías) entre otros. Las aplicaciones las debe de conocer el usuario para poderlas ejecutar.
109
Tipos de aplicaciones Las aplicaciones tienen privilegios y opciones de comportamiento, esas opciones son personalizables en las últimas versiones de Windows. Existen generalmente aplicaciones para ejecutarse sólo por el administrador o por un usuario en específico. Windows maneja un esquema de seguridad basado en listas de control de acceso (ACL). 109
110
Tipos de aplicaciones Las ACL permiten determinar por cada usuario que derechos se tiene sobre un recurso en particular, dichos recursos pueden ser archivos, aplicaciones, periféricos. Las versiones de servidor de Windows tienen un control más 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 configuración básica de seguridad. 110
111
Conmutación 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.
112
Compartir datos entre aplicaciones
Para compartir datos se utiliza el portapapeles (Clipboard) que es un área de memoria temporal de tamaño variable que sólo puede contener un dato a la vez. También se pueden utilizar las Librerías de Enlace Dinámico (DLL), el registro (regedit), las variables de retorno y del sistema, entre otras muchas técnicas para compartir datos.
113
Compartir datos entre aplicaciones
Generalmente se puede ver el contenido del portapapeles a través del visor de portapapeles. Algunos programas como office gestionan mejor el portapapeles, por lo que se pueden utilizar diversas versiones del portapapeles. Otra forma básica de compartir información es a través de archivos como tuberías o sockets en el caso de procesos remotos. 113
114
Accesorios Los accesorios son todas aquellas aplicaciones con las que cuenta Windows de manera predetermina y que sirven para realizar funciones básicas. Los accesorios tienen que ver con la metáfora del escritorio descrita al inicio de esta presentación. Se tiene una aplicación para escribir texto sencillo (bloc de notas), una calculadora, un programa de dibujo (paint), una agenda (lista de contacto).
115
Accesorios Otras aplicaciones son los juegos de mesa, un editor de texto con formato, en versiones más recientes un cliente de correo electrónico, etc. Se encuentran ubicadas en la carpeta accesorios del menú de inicio. Otras aplicaciones importantes son la línea de comandos, el explorador de archivos, etc. 115
116
Accesorios 116
117
Herramientas del sistema
Estas herramientas requieren de mayor conocimiento por parte de los usuarios debido a que su uso ocupa de un conocimiento más avanzado sobre el sistema operativo. En algunas ocasiones cuando no se sabe algún símbolo del teclado se puede consultar el mapa de caracteres. Otra aplicación interesante es hyperterminal para comunicaciones remotas.
118
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 más avanzadas como la monitorización de procesos, memoria, uso de la red, entre otros. 118
119
Windows Las versiones de Windows cuentan con clientes y en algunos casos servicios de red. Se pueden manejar de modo gráfico y en modo consola. Algunos comandos útiles son: Ver (muestra la versión del SO)
120
Windows El comnado winver permite ver la versión del SO en formato gráfico. Systeminfo permite ver información sobre el sistema. El comando help muestra ayuda sobre los comandos básicos de la consola. Se puede utilizar el parámetro /? Para conocer el funcionamiento de un comando en específico
121
Windows Driverquery permite ver todos los controladores cargados en el sistema Hostname visualiza el nombre de la maquina, también permite cambiarlo siempre y cuando se sea Administrador del Sistema. Openfiles permite ver archivos locales que son accedidos por clientes remotos
122
Windows sc query (sc es un comando que permite manipular servicios del sistema, la opción query se utiliza para mostrar los servicios activos en el sistema) schtask muestra información de procesos que se encuentran calendarizados en el sistema.
123
Windows tasklist muestra todos los procesos en ejecución.
Taskkill permite eliminar procesos por PID o por nombre con la opción /IM La variable de entorno %username% tiene el nombre del usuario activo. Se puede utilizar el comando echo para imprimirlo.
124
Windows net accounts da información sobre la máquina actual
Net config server (muestra información sobre el módulo del servidor del SO) Net config workstation (muestra información sobre el módulo del cliente)
125
Windows Msconfig permite administrar las opciones básicas 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.
126
Windows Net file (sin argumentos permite observar los archivos compartidos abiertos) Net localgroup, muestra los grupos de usuarios de la máquina analizada. Net print muestra la cola de impresión de la impresora compartida
127
Windows Net session muestra las sesiones remotas activas en el sistema. Net share muestra los recursos compartidos por el host actual. El carácter $ indica que el recurso esta oculto. Los nombres de las máquinas en Windows sigue el formato UNC: \\nombremaquina\ruta\de\acceso.
128
Windows Net start, stop, pause y continue se utilizan para inicializar, parar, pausar y reanudar la ejecución de un servicio de red. Net statistics [server|workstation] muestra información estadísticas del proceso servidor y estación de trabajo. Net use sin argumentos muestra las conexiones activas, con argumentos se conecta a un recurso compartido.
129
Windows Net 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 parámetros actuales de los adaptadores de red. Para algunos comandos se necesita ser controlador del dominio.
130
UNIX History First developed in 1969 by Ken Thompson and Dennis Ritchie of the Research Group at Bell Laboratories; incorporated features of other operating systems, especially MULTICS The third version was written in C, which was developed at Bell Labs specifically to support UNIX The 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 use Developed for the VAX, 4.3BSD is one of the most influential versions, and has been ported to many other platforms Several standardization projects seek to consolidate the variant flavors of UNIX leading to one programming interface to UNIX
131
History of UNIX Versions
132
Early Advantages of UNIX
Written in a high-level language Distributed in source form Provided powerful operating- system primitives on an inexpensive platform Small size, modular, clean design
133
UNIX Design Principles
Designed to be a time-sharing system Has a simple standard user interface (shell) that can be replaced File system with multilevel tree- structured directories Files are supported by the kernel as unstructured sequences of bytes Supports multiple processes; a process can easily create new processes High priority given to making system interactive, and providing facilities for program development
134
Like most systems, UNIX consists of two separable parts:
Programmer Interface Like most systems, UNIX consists of two separable parts: Kernel: everything below the system-call interface and above the physical hardware Provides file system, CPU scheduling, memory management, and other OS functions through system calls Systems programs: use the kernel- supported system calls to provide useful functions, such as compilation and file manipulation
135
4.4BSD Layer Structure
136
System Calls System calls define the programmer interface to UNIX
The set of systems programs commonly available defines the user interface The programmer and user interface define the context that the kernel must support Roughly three categories of system calls in UNIX File manipulation (same system calls also support device manipulation) Process control Information manipulation
137
File Manipulation A file is a sequence of bytes; the kernel does not impose a structure on files Files are organized in tree-structured directories Directories are files that contain information on how to find other files Path name: identifies a file by specifying a path through the directory structure to the file Absolute path names start at root of file system Relative path names start at the current directory System calls for basic file manipulation: create, open, read, write, close, unlink, trunc
138
Typical UNIX Directory Structure
139
Process Control A process is a program in execution
Processes are identified by their process identifier, an integer Process control system calls fork creates a new process execve is used after a fork to replace on of the two processes’s virtual memory space with a new program exit terminates a process A 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 terminated wait3 allows the parent to collect performance statistics about the child A zombie process results when the parent of a defunct child process exits before the terminated child
140
Illustration of Process Control Calls
141
Process Control (Cont.)
Processes communicate via pipes; queues of bytes between two processes that are accessed by a file descriptor All user processes are descendants of one original process, init init forks a getty process: initializes terminal line parameters and passes the user’s login name to login login sets the numeric user identifier of the process to that of the user executes a shell which forks subprocesses for user commands
142
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 was setuid scheme allows certain processes to have more than ordinary privileges while still being executable by ordinary users
143
Signals Facility for handling exceptional conditions similar to software interrupts The 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 demand SIGWINCH informs a process that the window in which output is being displayed has changed size Deliver urgent data from network connections
144
Process Groups Set of related processes that cooperate to accomplish a common task Only one process group may use a terminal device for I/O at any time The foreground job has the attention of the user on the terminal Background jobs – nonattached jobs that perform their function without user interaction Access to the terminal is controlled by process group signals
145
Process Groups (Cont.) Each job inherits a controlling terminal from its parent If the process group of the controlling terminal matches the group of a process, that process is in the foreground SIGTTIN 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/O SIGSTOP freezes a foreground process
146
Information Manipulation
System calls to set and return an interval timer: getitmer/setitmer Calls to set and return the current time: gettimeofday/settimeofday Processes can ask for their process identifier: getpid their group identifier: getgid the name of the machine on which they are executing: gethostname
147
Library Routines The system-call interface to UNIX is supported and augmented by a large collection of library routines Header files provide the definition of complex data structures used in system calls Additional library support is provided for mathematical functions, network access, data conversion, etc
148
User Interface Programmers 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 user The most common systems programs are file or directory oriented Directory: mkdir, rmdir, cd, pwd File: ls, cp, mv, rm Other programs relate to editors (e.g., emacs, vi) text formatters (e.g., troff, TEX), and other activities
149
Shells and Commands Shell – the user process which executes programs (also called command interpreter) Called a shell, because it surrounds the kernel The shell indicates its readiness to accept another command by typing a prompt, and the user types a command on a single line A typical command is an executable binary object file The shell travels through the search path to find the command file, which is then loaded and executed The directories /bin and /usr/bin are almost always in the search path
150
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
151
Standard I/O Most processes expect three file descriptors to be open when they start: standard input – program can read what the user types standard output – program can send output to user’s screen standard error – error output Most programs can also accept a file (rather than a terminal) for standard input and standard output The common shells have a simple syntax for changing what files are open for the standard I/O streams of a process — I/O redirection
152
Standard I/O Redirection
153
Pipelines, Filters, and Shell Scripts
Can coalesce individual commands via a vertical bar that tells the shell to pass the previous command’s output as input to the following command % ls | pr | lpr Filter – a command such as pr that passes its standard input to its standard output, performing some processing on it Writing a new shell with a different syntax and semantics would change the user view, but not change the kernel or programmer interface X Window System is a widely accepted iconic interface for UNIX
154
Process Management Representation of processes is a major design problem for operating system UNIX is distinct from other systems in that multiple processes can be created and manipulated with ease These processes are represented in UNIX by various control blocks Control blocks associated with a process are stored in the kernel Information in these control blocks is used by the kernel for process control and CPU scheduling
155
Process Control Blocks
The most basic data structure associated with processes is the process structure unique process identifier scheduling 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 segments Every process with sharable text has a pointer form its process structure to a text structure always resident in main memory records 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
156
System Data Segment Most ordinary work is done in user mode; system calls are performed in system mode The system and user phases of a process never execute simultaneously a kernel stack (rather than the user stack) is used for a process executing in system mode The kernel stack and the user structure together compose the system data segment for the process
157
Finding parts of a process using process structure
158
Allocating a New Process Structure
fork allocates a new process structure for the child process, and copies the user structure new page table is constructed new main memory is allocated for the data and stack segments of the child process copying the user structure preserves open file descriptors, user and group identifiers, signal handling, etc
159
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 one new user structure and a new process structure are still created commonly used by a shell to execute a command and to wait for its completion A 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 parent Using vfork with a large parent process saves CPU time, but can be dangerous since any memory change occurs in both processes until execve occurs execve creates no new process or user structure; rather the text and data of the process are replaced
160
CPU Scheduling Every process has a scheduling priority associated with it; larger numbers indicate lower priority Negative feedback in CPU scheduling makes it difficult for a single process to take all the CPU time Process aging is employed to prevent starvation When a process chooses to relinquish the CPU, it goes to sleep on an event When 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
161
Memory Management The initial memory management schemes were constrained in size by the relatively small memory resources of the PDP machines on which UNIX was developed Pre 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 available Allocation of both main memory and swap space is done first-fit
162
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 segment The 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
163
Paging Berkeley UNIX systems depend primarily on paging for memory- contention management, and depend only secondarily on swapping Demand 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 processes If the scheduler decides that the paging system is overloaded, processes will be swapped out whole until the overload is relieved
164
File System The 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
165
Blocks and Fragments Most of the file system is taken up by data blocks 4.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 last The last block is an appropriate multiple of a smaller fragment size (i.e., 1024) to fill out the file Thus, a file of size 18,000 bytes would have two 8K blocks and one 2K fragment (which would not be filled completely)
166
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 small If repeated transfers of large files are expected, the basic block size should be large The maximum block-to-fragment ratio is 8 : 1; the minimum block size is 4K (typical choices are 4096 : 512 and : 1024)
167
Inodes A file is represented by an inode — a record that stores information about a specific file on the disk The inode also contains 15 pointer to the disk blocks containing the file’s data contents First 12 point to direct blocks Next three point to indirect blocks First indirect block pointer is the address of a single indirect block — an index block containing the addresses of blocks that do contain data Second 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
168
Directories The inode type field distinguishes between plain files and directories Directory entries are of variable length; each entry contains first the length of the entry, then the file name and the inode number The user refers to a file by a path name,whereas the file system uses the inode as its definition of a file The kernel has to map the supplied user path name to an inode Directories are used for this mapping
169
Directories (Cont.) First determine the starting directory:
If the first character is “/”, the starting directory is the root directory For any other starting character, the starting directory is the current directory The search process continues until the end of the path name is reached and the desired inode is returned Once the inode is found, a file structure is allocated to point to the inode 4.3BSD improved file system performance by adding a directory name cache to hold recent directory-to-inode translations
170
Mapping of a File Descriptor to an Inode
System calls that refer to open files indicate the file is passing a file descriptor as an argument The file descriptor is used by the kernel to index a table of open files for the current process Each entry of the table contains a pointer to a file structure This file structure in turn points to the inode Since 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
171
File-System Control Blocks
172
Disk Structures The one file system that a user ordinarily sees may actually consist of several physical file systems, each on a different device Partitioning a physical device into multiple file systems has several benefits Different file systems can support different uses Reliability is improved Can improve efficiency by varying file-system parameters Prevents one program form using all available space for a large file Speeds up searches on backup tapes and restoring partitions from tape
173
Disk Structures (Cont.)
The root file system is always available on a drive Other file systems may be mounted — i.e., integrated into the directory hierarchy of the root file system The following figure illustrates how a directory structure is partitioned into file systems, which are mapped onto logical devices, which are partitions of physical devices
174
Mapping File System to Physical Devices
175
Implementations New directory system calls truncate calls
The 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 user For 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 changed In 4.0BSD, the size of blocks used in the file system was increased form 512 bytes to 1024 bytes — increased internal fragmentation, but doubled throughput 4.2BSD added the Berkeley Fast File System, which increased speed, and included new features New directory system calls truncate calls Fast File System found in most implementations of UNIX
176
Layout and Allocation Policy
The kernel uses a <logical device number, inode number> pair to identify a file The logical device number defines the file system involved The inodes in the file system are numbered in sequence 4.3BSD introduced the cylinder group — allows localization of the blocks in a file Each cylinder group occupies one or more consecutive cylinders of the disk, so that disk accesses within the cylinder group require minimal disk head movement Every cylinder group has a superblock, a cylinder block, an array of inodes, and some data blocks
177
4.3BSD Cylinder Group
178
I/O System The I/O system hides the peculiarities of I/O devices from the bulk of the kernel Consists of a buffer caching system, general device driver code, and drivers for specific hardware devices Only the device driver knows the peculiarities of a specific device
179
4.3 BSD Kernel I/O Structure
180
Block Buffer Cache Consist 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 device The 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 memory When a block is wanted from a device, the cache is searched If the block is found it is used, and no I/O transfer is necessary If it is not found, a buffer is chosen from the AGE list, or the LRU list if AGE is empty
181
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 low Data 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
182
Raw Device Interfaces Almost every block device has a character interface, or raw device interface — unlike the block interface, it bypasses the block buffer cache Each disk driver maintains a queue of pending transfers Each record in the queue specifies: whether it is a read or a write a main memory address for the transfer a device address for the transfer a transfer size It is simple to map the information from a block buffer to what is required for this queue
183
C-Lists Terminal drivers use a character buffering system which involves keeping small blocks of characters in linked lists A 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 transfers Input is similarly interrupt driven It 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)
184
Interprocess Communication
The pipe is the IPC mechanism most characteristic of UNIX Permits a reliable unidirectional byte stream between two processes A 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 cache In 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 facilities The socket mechanism can be used by unrelated processes
185
Sockets A socket is an endpont of communication
An in-use socket it usually bound with an address; the nature of the address depends on the communication domain of the socket A characteristic property of a domain is that processes communication in the same domain use the same address format A 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)
186
Socket Types Stream 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 sockets Sequenced packet sockets provide similar data streams, except that record boundaries are provided Used in XEROX AF_NS protocol Datagram sockets transfer messages of variable size in either direction. Supported in Internet domain by UDP protocol Reliably 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
187
Socket System Calls The 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 descriptor A name is bound to a socket by the bind system call The connect system call is used to initiate a connection A server process uses socket to create a socket and bind to bind the well-known address of its service to that socket Uses listen to tell the kernel that it is ready to accept connections from clients Uses accept to accept individual connections Uses fork to produce a new process after the accept to service the client while the original server process continues to listen for more connections
188
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 descriptor The select system call can be used to multiplex data transfers on several file descriptors and /or socket descriptors
189
Network Support Networking support is one of the most important features in 4.3BSD The socket concept provides the programming mechanism to access other processes, even across a network Sockets provide an interface to several sets of protocols Almost all current UNIX systems support UUCP 4.3BSD supports the DARPA Internet protocols UDP, TCP, IP, and ICMP on a wide range of Ethernet, token-ring, and ARPANET interfaces The 4.3BSD networking implementation, and to a certain extent the socket facility, is more oriented toward the ARPANET Reference Model (ARM)
190
Network Reference models and Layering
191
The History of Linux The 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 1974 Bell 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
192
Linux History Continued
Because Bell Labs distributed UNIX with source code, the early 1980’s saw three major branches grow on the UNIX tree: UNIX System III from Bell Lab’s UNIX Support Group (USG) UNIX Berkeley Source Distribution (BSD) from the University of California at Berkeley Microsoft’s XENIX The UNIX market fragmented further in the 1980’s, despite the IEEE’s POSIX standard and the X/Open Group’s Portability Guide
193
Linus and Linux In 1991 Linus Torvalds took a college computer science course that used the Minix operating system Minix is a “toy” UNIX-like OS written by Andrew Tanenbaum as a learning workbench Linus wanted to make MINIX more usable, but Tanenbaum wanted to keep it ultra-simple Linus went in his own direction and began working on Linux In October 1991 he announced Linux v0.02 In March 1994 he released Linux v1.0
194
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 Digital’s 32-bit VAX processor Digital shipped VMS v1.0 in 1978 Cutler moved to Seattle to open DECWest and worked on the Digital Mica OS for a new CPU codenamed Prism 12 engineers went with him and the facility grew to 200 In 1988 Digital cancelled the project
195
The History of Windows Continued
Bill Gates wanted a UNIX rival He hired Cutler and 20 Digital engineers in 1989 The new project was called NT OS/2 because it focused on OS/2 backward compatibility With the success of Windows 3.0’s 1990 release Gates refocused the project on Windows compatibility The project renamed to Windows NT Microsoft released Windows NT 3.1 in August 1993
196
Windows and Linux Both Linux and Windows are based on foundations developed in the mid-1970s 1970 1980 1990 2000 UNIX public Linux v1.0 v2.0 v2.1 v2.2 v2.3 v2.4 v2.6 UNIX V6 UNIX born 1970 1980 1990 2000 VMS v1.0 NT 4.0 Windows XP Server 2003 Windows 2000 Windows NT 3.1
197
Linus Torvalds, estudiante de la Universidad de Helsinki, creó Linux por hobby. Él estaba interesado en Minix, un sistema UNIX pequeño, y decidió desarrollar un sistema operativo que excediera los estándares de Minix. Comenzó su trabajo en 1991 con la versión 0.02 y continuó hasta que en 1994 liberó el kernel de Linux, versión 1.0 “Linux es un clon del sistema operativo Unix, escrito desde cero por Linus Torvalds con la ayuda de un equipo de hackers a través de la red. Tiene como objetivo cumplir con los estándares “POSIX” 2 y “Single Unix Specification” 3. Linux, fue originalmente desarrollado para las PC equipadas con microprocesadores de la familia x86 de 32 bits. Hoy en día, también puede ejecutarse, entre otras, en las siguientes arquitecturas: Alpha AXP de Compaq, SPARC de Sun, UltraSPARC, Motorola serie 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, S/390 de IBM, MIPS, PA-RISC de HP, IA-64 de Intel, VAX de DEC, x86-64 de AMD y en las arquitecturas CRIS. Linux, se puede hacer correr en la mayoría de las arquitecturas de 32 o 64 bits de propósito general, siempre y cuando estas cuenten con una unidad de administración de memoria paginada ( MMU por sus siglas en inglés: Paged Memory Management Unit ) y el compilador de lenguaje C de GNU ( llamado gcc). Linux también ha sido portado a arquitecturas sin MMU utilizando versiones especiales de la libreria glibc.” Torvalds presento su creación a un grupo de noticias de MINIX, los programadores de todo el mundo aprovecharon esa oportunidad para unirse. Torvalds decidió que era demasiado arrogante usar su nombre para bautizar su sistema operativo. Probó cambiar el nombre de Linux por Freax ( Free + Freak +X) pero Linux ya había sido ampliamente aceptado.
198
Los desarrollos continúan a cargo de numerosas organizaciones y programadores independientes, porque Torvalds registro a Linux bajo Licencia Pública General (GNU). cualquier persona puede usar, modificar y distribuir Linux, pero no restringir su posterior distribución. El desarrollador está obligado a poner a disposición de los demás el código fuente.
199
Linux introdujo los conceptos de velocidad, eficiencia y flexibilidad de UNIX, a las microcomputadoras. Primera versión comercial distribuida en marzo de 1994 (kernel 1.0) Linux no es un UNIX. Linux mejoró notablemente las “curses” de Unix.
200
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.
201
[Características@panorama]#
Multitarea real Conectividad TCP/IP Manejo de memoria virtual usando paginación Librerías compartidas Multiusuario Manejo uniforme de recursos de E/S Soporta múltiples usuarios sobre instalaciones con hardware de gestión de memoria e interfaces de comunicación adecuadas. Además de los usuarios locales, los usuarios remotos tienen acceso a facilidades de sesión y transferencia de archivos entre máquinas UNIX en configuraciones de red. Los archivos y los dispositivos de E/S son tratados de una manera uniforme por medio del mismo conjunto aplicable de llamadas al sistema. Como resultados, la redirección de E/S y la E/S a nivel de flujo están totalmente soportadas tanto a nivel de lenguaje de órdenes como a nivel de llamadas al sistema.
202
[Características@panorama]#
Tiempo Real Multiplataforma Protección de memoria entre procesos Se realizan volcados de estado Todo el código fuente está disponible. Consolas virtuales múltiples Soporte para varios sistemas de archivos Sistema de cuotas para los recursos Construcción de sistemas ciegos
203
[Características@panorama]#
Se basa en las especificaciones de POSIX del IEEE: Uniformidad Aplicaciones pueden pasar de Linux a System V y al BSD. Soporte de funciones de UNIX.
204
[Características@panorama]#
Linux fue creado en base a la filosofía 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 más estable. En el pasado (50s-60s) el paradigma de la computación fue: “una computadora, múltiples usuarios”. A finales de los 70s-80s el paradigma cambió a: “un usuario, una computadoras”. A finales de los 80s-90s el paradigma fue: “múltiples usuarios, múltiples computadoras”. En el 2000, el paradigma cambió a: “un usuario, múltiples computadoras”.
205
[Hardware@panorama]#
ARM Intel X86 NeXT Amiga Motorola 68x00 MIPS Alpha Silicon Graphics, etc.
206
[Embedded@panorama]#
207
[uso@panorama]# Proveedores de Internet Desarrollo de Software
Redes y Telecomunicaciones Instrumentación y sistemas de control Ingeniería Medio Ambiente Petróleo y Gas Casas Editoras Compañías Financieras Industria Automotriz Industria Aeroespacial Sector Salud Sector Militar Bienes Raíces Turismo Transporte Educación Gobierno Organizaciones no lucrativas Etc.
208
[¿Gratis?@panorama]# Gratis != Libre Algunas excepciones:
Caldera DR-DOS Oracle para Linux Red Hat, Mandrake Informix-SE para Linux
209
[Desventajas@panorama]#
No existen todos los controladores para algunos periféricos como el escáner en paralelo, o el reproductor de DVD. Los controladores no soportan bien cualquier dispositivo. Se necesita mayor capacitación
210
[Desventajas@panorama]#
No hay versiones estandarizadas. Comandos demasiado breves. Comando MS-DOS UNIX VMS Listar archivos Dir ls DIRECTORY Cambiar de directorio CD o CHDIR cd SET DEFAULT Copiar archivo COPY cp Renombrar un archivo RENAME mv
211
Fear, Uncertainty, Doubt; es una técnica de mercadeo cuando un competidor lanza un producto nuevo que es mucho mejor y que reduce costos. Linux es inseguro No existe personal capacitado No es compatible con Windows Es muy difícil
212
[Preocupaciones por usar Windows@panorama]#
80% Calidad del software o vulnerabilidad 64% Costo de propiedad muy alto 55% Monopolio de Microsoft 31% Manejo de problemas cuando surgen 31% Mejores herramientas de administración 28% Escalabilidad 17% Falta de un completo e integrado ambiente de cómputo 17% Falta de un mapa claro de desarrollo del producto 16% Aspectos de licenciamiento 5% Otros 9% Ninguno
213
[Razones para usar Linux@panorama]#
90% Costo de licenciamiento gratuito o muy bajo 88% Confiabilidad 81% Desempeño 70% Necesita alternativa a Windows 48% Herramientas de desarrollo disponibles en Internet
214
[Razones para no utilizar Linux@panorama]#
61% Aplicaciones Clave del negocio no corren en Linux 49% Personal de TI no está entrenado en Linux 42% Proveedores independientes de Software no lo respaldan 41% Prefieren otro sistema operativo 34% Preocupación por desempeño 31% No quiere manejar múltiples sistemas operativos 30% No confía en software open-source 22% Preocupación por escalabilidad 18% Proveedores de equipos no lo respaldan 16% Otras razones
215
[Razones para usar Windows@panorama]#
70% Adecuada integración con otros productos de Microsoft 68% Amplia disponibilidad de software aplicativo 27% Buen desempeño y disponibilidad 24% Buenas herramientas administrativas 23% Buen servicio y soporte 20% Expectativa en innovación futura 19% Confianza en el modelo económico de Microsoft 18% Bajo costo 17% Buena integración con plataformas no Microsoft 10% Ambiente seguro 14% Otros
216
[Razones de empresas para seleccionar Linux@panorama]#
60% Bajo costo 50% Buen desempeño y disponibilidad 41% Ambiente seguro 40% Expectativa por innovación futura 39% Confianza en el modelo open source 21% Buenas herramientas de administración 12% Buena integración con otro software de servidor 12% Alta disponibidlidad de software aplicativo 11% Soporte y servicio 4% Otra
217
[Temores para usar Linux@panorama]#
40% Falta de un ambiente completo e integrado de cómputo 37% Falta de responsable si salen problemas 35% Falta de un mapa claro de desarrollo de producto 27% Posibles problemas de propiedad intelectual 27% Mejores herramientas administrativas 23% Calidad del software y vulnerabilidades 7% Escalabilidad 2% Alto costo de propiedad 4% Otro 27% No tiene preocupaciones
218
[Usos comunes para Linux@panorama]#
80% Servidores Web o Intranet 60% Administración Bases de Datos 58% Correo Electrónico o mensajería 57% Desarrollo de Aplicaciones 54% PC's de Escritorio 50% Servidor de Archivos e impresoras 40% Administración de sistemas 32% Aplicaciones Corporativas 21% Servidores comercio electrónico 10% Servidores delgados y “cuchichas” 6% Clusters de supercomputadores 24% Otros usos
219
[Requisitos@panorama]#
ESTACIÓN DE TRABAJO SERVIDOR PROCESADOR Desde 386 Pentium a 133 MEMORIA Desde 8 MB 32 MB (como mínimo) DISCO DURO Desde 300 MB Desde 600 MB
221
[Sabores@panorama]# ¿Qué refresco de cola es mejor? Coca Pepsi Gallito
Bigcola …
222
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.
223
[Variantes@panorama]#
IRIX AIX FreeBSD Unix System V HPUX Solaris Ultrix Unix BSD FreeBSD OpenBSD NetBSD
224
[Gartner 2007@panorama]# Código abierto Virtualización
Registro de servicios y repositorios Suites para la gestión de procesos de negocios Enterprise Information Management Cómputo ubicuo Acceso a la información Web 2.0 – AJAX Rich Clients Web Mashup Composite Model Inteligencia colectiva y comunidades
225
[IDC 2007@panorama]# Virtualización Grid Computing
Arquitectura orientada a servicios (SOA) Enterprise Information Management (EIM) Código abierto Acceso a la información Ajax Mashup Composite Model Computación Distribuida en el Ambiente (Pervasive Computing) Recolección inteligente de datos
226
GNU Public License, se puede vender el software pero con código libre. Otras licencias: Copyleft y Creative Commons. Desde la versión la contibución de Linus es menos del 5% del total “El dinero no está en el producto, sino en los servicios que están con él” IBM
227
[Catedral y el bazar@panorama]#
Eric Random Fecthmail Cathedral Comercial Bazar Linux “Dado un número suficiente de ojos, todos los errores son irrelevantes”.
228
Todo buen trabajo de software comienza rasguñando una inquietud personal del desarrollador. Los buenos programadores saben que escribir. Los grandes saben que re-escribir (y reusar). Cuando se pierde interés en un programa, el último deber es ponerlo en manos de un sucesor competente.
229
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.
230
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 código torpe funcionan mucho mejor que la alternativa opuesta.
231
“Enséñame tu código y mantén ocultas tus estructuras de datos, y me seguirás engañando. Muéstrame tus estructuras de datos y normalmente no necesitaré que me enseñes tu código: resultará evidente”. Si se tratan a la gente que te ayuda a depurar como si fueran el recurso más valioso, responderán convirtiéndose en eso precisamente.
232
Algo mejor que tener buenas ideas es reconocer las buenas ideas de los usuarios. Y en ocasiones esta última es la mejor en términos absolutos. Con frecuencia, las soluciones más impactantes e innovadoras vienen de darse cuenta que el concepto del problema está equivocado.
233
Antoine de Saint-Exupory dijo: “La perfección (en diseño) no se obtiene cuando no hay nada mas que agregar, sino cuando no hay nada mas que desechar..” Epílogo de Netscape: es extraño sentir que realizas algo para hacer historia.
234
[Instalación@Unidad I]$
Realizar respaldo de archivos y configuraciones. Si se desea tener un sistema de arranque múltiple instalar primero los sistemas operativos y hasta el final Linux. Realizar particionado de preferencia manual antes de la instalación
235
[Instalación@Unidad I]$
Se deberá elegir el tipo de instalación: modo gráfico, modo texto o modo experto. Se deberá tener conocimiento sobre el hardware del equipo. Se deberá saber que uso se le dará a la máquina para así seleccionar el tipo de instalación y conocer los paquetes a instalar.
236
[Instalación@Unidad I]$
La mayoría de las distribuciones de Linux cuentan con instaladores para: Clientes Estaciones de Trabajo Servidores Se recomienda en servidor no instalar interfaz gráfica y paquetes que no se usan El problema no es instalar Linux sino configurarlo
237
[Cliente/Servidor@Unidad I]$
Respuesta Servidor Cliente Petición
238
[Computadoras@Unidad I]$
El término cliente/servidor se refiere a procesos pero se asocia con máquinas Supercomputadoras Mainframes (macrocomputadoras) Estaciones de trabajos (minicomputadoras) Computadoras personales (microcomputadoras).
239
[Cliente/Servidor@Unidad I]$
Servidor: a computadoras de gran tamaño, brindan servicios a otras máquinas. Cliente: computadoras de menor tamaño, 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.
240
[Actualización@Unidad I]$
La actualización es más 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 más estricto a la hora de realizar modificaciones en las particiones.
241
[Instalación de paquetes@Unidad I]$
tar –xzvf paquete.tar.gz cd paquete ./configure make make install
242
[Instalación de sw@Unidad I]$
rpm –i paquete rpm –U actualiza paquete rpm –qa rpm -qi rpm –qf rpm –e desinstala paquete ./configure help ./configure make make all ./httpd –v
243
[Configuración SW@Unidad I]$
Linux no cuenta con un registro pero si con archivos de configuración. Las primeras versiones de Windows no tenían Registro (archivos .INI) La configuración depende de cada servicio. La localización de los archivos de configuración puede variar en cada distribución
244
[apt@Unidad I]$ Advanced Packaging Tool. /etc/apt/sources.list
apt-get install paquete apt-get remove paquete apt-get –reinstall install paquete apt-cdrom ruta add apt-get -u install lilo
245
[GUI@Unidad I]$ XFree86 Enlightenment WindowMaker Blackbox FluxBox
GNOME KDE
246
I]$ Startx .xinitrc #!/bin/sh gnome-sesion
247
I]$ KDE (K Desktop Environment) es un entorno de escritorio gráfico 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 página Web, "KDE es un entorno gráfico contemporáneo 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". La 'K', originariamente, representaba la palabra "Kool", pero su significado fue abandonado más tarde. Actualmente significa simplemente 'K', la letra inmediatamente anterior a la 'L' (inicial de Linux) en el alfabeto. Actualmente KDE es distribuido junto a muchas distribuciones Linux La mascota del proyecto es un pequeño dragón llamado Konqi. La versión estable más reciente de KDE es la (11 de octubre de 2006).
248
I]$ GNOME o Gnome es un entorno de escritorio para sistemas operativos de tipo Unix bajo tecnología X Window, se encuentra disponible actualmente en más de 35 idiomas. Forma parte oficial del proyecto GNU. Creado por el mexicano Miguel de Icaza.
249
[Ofimática@Unidad I]$
Ofimática: Suite con Procesador de texto, hojas electrónicas, presentaciónes, gráficas y bases de datos. StarOffice 6.0, Sun Microsystems Inc. (Windows, Linux, Solaris) OpenOffice.org Koffice
250
[Navegadores@Unidad I]$
Netscape ( Mozilla ( FireFox ( Opera ( Konqueror (KDE) ( Lynx
251
[Antivirus@Unidad I]$
OpenAntiVirus Project CLAM Antivirus AMaViS – A Mail Virus Scanner Sophos –
252
[mtools@Unidad I]$ Comandos de MS-DOS mcopy /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
253
[Emuladores@Unidad I]$
DOSemu para MS-DOS Wine para Windows Virtualización: VMware Zen Bosch
254
[Otras apliacaciones@Unidad I]$
Existen muchas aplicaciones de software libre y propietario para Linux que abarcan prácticamente todas las áreas del quehacer humano. La ventaja del software libre es que muchas de las versiones de programas para Linux existen también para otros SOs.
255
[Lenguajes@]$ C Compilador gcc C++ Compilador g++ GNU Fortran 77 Tcl
Button .b –text “Hola mundo!” –comand exit Pack .b
256
[Lenguajes@Unidad I]$
Perl Python Ruby AWK
257
[Servidor Stream]@Unidad I]$
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/wait.h> #include <signal.h> #define MYPORT 3490 // Puerto al que conectarán los usuarios #define BACKLOG 10 // Cuántas 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; // información sobre mi dirección struct sockaddr_in their_addr; // información sobre la dirección del cliente int sin_size; struct sigaction sa; int yes=1;
258
[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; // Ordenación de bytes de la máquina my_addr.sin_port = htons(MYPORT); // short, Ordenación de bytes de la red my_addr.sin_addr.s_addr = INADDR_ANY; // Rellenar con mi dirección IP memset(&(my_addr.sin_zero), '\0', 8); // Poner a cero el resto de la estructura }
259
[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;
260
[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 }
261
[Cliente Stream@Unidad I]$
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <netdb.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #define PORT 3490 // puerto al que vamos a conectar #define MAXDATASIZE 100 // máximo número 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; // información de la dirección de destino memset(&(their_addr.sin_zero), 8); // poner a cero el resto de la estructura
262
[Cliente Stream@Unidad I]$
if (argc != 2) { fprintf(stderr,"usage: client hostname\n"); exit(1); } if ((he=gethostbyname(argv[1])) == NULL) { // obtener información de máquina perror("gethostbyname"); exit(1); } if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } their_addr.sin_family = AF_INET; // Ordenación de bytes de la máquina their_addr.sin_port = htons(PORT); // short, Ordenación de bytes de la red their_addr.sin_addr = *((struct in_addr *)he->h_addr);
263
[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; }
264
[Servidor Datagrama@Unidad I]$
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define MYPORT 4950 // puerto al que conectarán los clientes #define MAXBUFLEN int main(void) { int sockfd; struct sockaddr_in my_addr; // información sobre mi dirección struct sockaddr_in their_addr; // información sobre la dirección del cliente int addr_len, numbytes; char buf[MAXBUFLEN]; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); }
265
[Servidor Datagrama@Unidad I]$
my_addr.sin_family = AF_INET; // Ordenación de bytes de máquina my_addr.sin_port = htons(MYPORT); // short, Ordenación de bytes de la red my_addr.sin_addr.s_addr = INADDR_ANY; // rellenar con mi dirección 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; }
266
[Cliente Datagrama@Unidad I]$
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #define MYPORT 4950 // puerto donde vamos a conectarnos int main(int argc, char *argv[]) { int sockfd; struct sockaddr_in their_addr; // información sobre la dirección 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 información de máquina perror("gethostbyname"); exit(1); }
267
[Cliente Datagrama@Unidad I]$
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); } their_addr.sin_family = AF_INET; // Ordenación de bytes de máquina their_addr.sin_port = htons(MYPORT); // short, Ordenación 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; }
268
[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());
269
[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();
270
[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");
271
[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();
272
[Procesos@Unidad I]$ #include <sys/types.h>
#include <signal.h> #include <unistd.h> void trataSenhal (int); main() { pid_t idProceso; idProceso = fork(); if (idProceso == -1) perror ("No se puede lanzar proceso"); exit (-1); }
273
[Procesos@Unidad I]$ if (idProceso == 0) {
signal (SIGUSR1, trataSenhal); while (1) pause (); } if (idProceso > 0) sleep (1); kill (idProceso, SIGUSR1); void trataSenhal (int numeroSenhal) printf ("Recibida señal del padre\n");
274
[Semáforos@Unidad I]$
#include <iostream.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #include <stdlib.h> #if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED) #else union semun { int val; struct semid_ds *buf; unsigned short int *array; struct seminfo *__buf; }; #endif
275
[Semáforos@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 << "No puedo conseguir clave de semáforo" << endl; exit(0); } Id_Semaforo = semget (Clave, 10, 0600 | IPC_CREAT);
276
[Semáforos@Unidad I]$
if (Id_Semaforo == -1) { cout << "No puedo crear semáforo" << endl; exit (0); } arg.val = 0; semctl (Id_Semaforo, 0, SETVAL, &arg); Operacion.sem_num = 0; Operacion.sem_op = -1; Operacion.sem_flg = 0; while (1) cout << i << " Esperando Semáforo" << endl; semop (Id_Semaforo, &Operacion, 1); cout << i << " Salgo de Semáforo " << endl; cout << endl; i++;
277
[RPC@Unidad I]$ rpcgen -a fichero.x
program NOMBRE_PROGRAMA { version VERSION_PROGRAMA { int incrementa (int) = 1; } = 1; } = 0x ;
278
[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; } = 0x ;
279
I]$ int * suma_1_svc(sumandos *argp, struct svc_req *rqstp) { static int result; /* * insert server code here */ result = argp->sumando1 + argp->sumando2; /* Esta línea debe hacerla el programador */ return &result; }
280
[RMIi@Unidad I]$ import java.rmi.*;
public interface HolaMundoRmiI extends Remote { String objRemotoHola( String cliente ) throws RemoteException; }
281
[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:// String direccion = "rmi:// /"; try { HolaMundoRmiI hm = (HolaMundoRmiI)Naming.lookup( direccion+"ObjetoHola" ); System.out.println( hm.objRemotoHola( "Mundo" ) ); } catch( Exception e ) { e.printStackTrace(); } System.exit( 0 );
282
[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();
283
[RMIo@Unidad I]$ import java.rmi.*; import java.rmi.server.*;
public class HolaMundoRmiO extends UnicastRemoteObject implements HolaMundoRmiI { // Constructor del objeto remoto public HolaMundoRmiO() throws RemoteException { super(); } public String objRemotoHola( String cliente ) throws RemoteException { return( "Hola "+cliente );
284
[Perl@Unidad I]$ #!/usr/bin/perl -w
# 531-byte qrpff-fast, Keith Winstein and Marc Horowitz # MPEG 2 PS VOB file on stdin -> descrambled output on stdout # arguments: title key bytes in least to most-significant order =$c^=( %16 - d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^ $d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
285
[Usuarios@Unidad II]$
La representación de alguien (persona o proceso) que pueden trabajar en el sistema. P.ej. : root, postgresql, jcolivar, fmorales. Cada usuario posee: tiene un login directorio base $HOME:/home/dsc/jcolivar. grupo, por ejemplo: users, root. perfil, bash_profile (identificador: jazarate) y password (contraseña: *****).
286
[Usuarios@Unidad II]$
useradd agrega usuario adduser useradd interactivo userdel borra usuarios usermod modifica usuarios groupadd agrega grupos groupdel borra grupos groupmode modifica grupos
287
[Usuarios@Unidad II]$
passwd cambiar contraseña login entrar al sistema who lista los usuarios del sistema w versión especial del listado de usuarios whoami indica el usuario actual
288
[Usuarios@Unidad II]$
Linux no soporta Listas de Control de Acceso ACL Contraseñas seguras son aquellas que no pertenecen a ningún idioma, contienen números y signo de puntuación. Las contraseñas están cifradas.
289
[/etc/passwd@Unidad II]$
gandalf::501:100:Eric Dumas:/home/gandalf:/bin/bash sgandalf::0:0:Super Eric Dumas:/:/bin/sh Nombre del usuario: 8 caracteres máximo* Contraseña codificada Número de identificación único del usuario (uid). Nota: 0 = root Numero del grupo (gid) Nombre "oficial" del usuario (llamado GECOS) Directorio raíz del usuario Intérprete de órdenes utilizado root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: lp:x:4:7:lp:/var/spool/lpd: jazarate:x:500:500::/home/jazarate:/bin/bash vjsosa:x:505:100:victor de jesus sosa:/home/vjsosa:/bin/bash hugo:x:506:506::/home/hugo:/bin/bash angel:x:507:100:angel brito:/home/angel:/bin/bash
290
[useradd@Unidad II]$ -c comment -d homedir -e expire-date
-f inactive-time tiempo de expiración de cuenta -g initial_roup -G group -m directorio home -M no crear directorio home -s shell -u uid
291
[/etc/group@Unidad II]$
root:x:0:root bin:x:1:root,bin,daemon tty:x:5: disk:x:6:root lp:x:7:daemon,lp mail:x:12:mail news:x:13:news uucp:x:14:uucp nobody:x:99: users:x:100
292
[Quotas@Unidad II]$ Kernel: options QUOTA
archivo /etc/sysconfig (quotas=yes|no) check_quotas=YES /etc/fstab userquota /dev/sd1s2g /home ufs rw, userquota 1 2
293
[Quotas@Unidad II]$ /dev/sd1s2g/homeufs rw, userquota, groupquota 1 2
quota.user y quota.group quotacheck, quotaon, o quotaoff quota -v edquota -u test
294
[Shell@Unidad II]$ /etc/shells .archivo archivo oculto
Cambio de contraseña con * a4dd89k*motivo de la cancelación /etc/inetd.conf
295
[Shell@Unidad II]$ export exporta variable de ambiente env ambiente
set configura variable de ambiente history historial shutdown apagar la máquina poweroff apagar la máquina halt apagar la máquina reboot reiniciar la máquina
296
[Shell@Unidad II]$ unset variable ls -l; cat /etc/passwd -l -a -1 -r
/usr/bin/loadkeys /usr/lib/kdb/keytables/es.map
297
[Shell@Unidad II]$ kill mata procesos ps estado de los procesos
nice aumentar prioridad de procesos nohup no dejar colgado un proceso sleep dormir proceso wake despertar proceso awake
298
II]$ ps -a todos los procesos con el terminal controlado, excepto el proceso de usuario actual. -r ejecución -x procesos sin terminal controlado -l formato largo
299
[Shell@Unidad II]$ top visor de procesos uname -a -r /etc/rc.d/init.d/
/etc/init.d Anaconda Kudzu
300
[Shell@Unidad II]$ chmod cambiar permisos de archivos
chown cambiar dueños de archivos chgrp cambiar grupo de los archivos mkfs formatear sistema de archivo printenv ver variables de entorno sync vaciar búfer de sistemas de archivo ELF a.out
301
[Shell@Unidad II]$ pwd directorio actual cp copiar archivos
rm borrar archivos mv mover archivos * todos los caracteres ? Un solo caracter > redireccionar la salida cat < redireccionar la entrada
302
[Shell@Unidad II]$ mv, cp -f forzar -i interactivo
mknod /tmp/mi_pipe p which ls setup linuxconf netconf
303
[Shell@Unidad II]$ | tuberías & proceso en segundo plano
touch actualiza archivo du espacio ocupado por directorio df muestra el espacio ocupado por cada sistema de archivo uptime fecha y tiempo activo
304
[Shell@Unidad II]$ more ver archivos largos
less ver archivos largos interactivo head muestra las primeras 10 líneas de un archivo tail muestra las últimas 10 líneas de un archivo file identifica tipo de archivo grep búsqueda de patrones
305
II]$ wc cuenta el número de palabras, líneas, caracteres de un archivo spell, ispell ortografía cmp compara dos archivos diff muestra las diferencias de dos archivos gzip comprimir archivo gunzip descomprimir archivo
306
[Shell@Unidad II]$ tr traductor cambia palabras de un archivo por otro
mail envío de correo finger información sobre usuarios find busca archivos test realiza comparaciones dd duplicador de datos
307
[Shell@Unidad II]$ fg trae a primer plano un proceso
jobs muestra los trabajos en el sistema bg manda un proceso a segundo plano Ctrl+c interrupción Ctrl+z suspender clear borra pantalla date fecha man manuales
308
[Shell@Unidad II]$ mc shell visual cal calendario vi editor de texto
pico editor de texto y correo ed editor de texto en una línea joe editor de texto
309
[Shell@Unidad II]$ su cambia de usuario
sudo ejecutar un comando en nombre a tu usuario ln (ln -s links lynx) enlaces rmdir borra un directorio mkdir crea un directorio
310
[Shell@Unidad II]$ cut quita tablas de un archivo
read var captura el valor de una variable sort ordena las líneas de un archivo uniq borra líneas duplicadas sucesivas sed y awk programas de procesamiento de patrones
311
[Shell@Unidad II]$ sum verifica la suma de comprobación
md5sum suma de comprobación fsck hace una revisa al sistema de archivo cpio copiado de archivos a bajo nivel write escribe un mensaje a un usuario talk plática
312
[Shell@Unidad II]$ mount monta sistema de archivos
umount desmonta dispositivo mount -a monta todos los sistemas de archivos de /etc/fstab -t ext2, FAT, VFAT, FAT32
313
[Shell@Unidad II]$ Opciones de mount ro read only rw read write exec
noauto no monta de manera automática e2fsck lost + found
314
[Shell@Unidad II]$ $1 - $9 parámetros $0 nombre del comando actual
$# número de parámetros $? status del último comando ejecutado dado como un string decimal. $$ el número de proceso de este shell $! el pid del último comando ejecutado en background. $- las opciones actuales suministradas para esta invocación del shell. $* un string que contiene todos los argumentos del shell comenzando por el $1.
315
[Shell@Unidad II]$ sh -x script argument
Cambiar permisos al script de ejecución y firmarlo ‘’ Literal simple `` Sustituir valor de la variable “” Sustituir por lo que haya en las comillas Shift avanzar parametros test [] echo && ||
316
[Shell@Unidad II]$ test -d directorio -e archivo sin importar el tipo
-f archivo normal -r leer archivo -s tamaño mayor que 0 -w escribir archivo -x archivo ejecutable -eq iguales -ne no son iguales
317
[Shell@Unidad II]$ -gt mayor -ge mayor o igual -lt menor
-le menor o igual = cadenas idénticas != cadenas no son idénticas < menor > mayor -n longitud de la cadena de texto es distinta de cero ! Negación -a and -o or
318
[Shell@Unidad II]$ /etc/crontab
# hacer una copia de seguridad todos los lunes a las 2 de la mañana 0 2 * * 1 /home/gandalf/backup # Reiniciar la máquina todos los 1 y 15 de cada mes a la 4: ,15 * * /sbin/shutdown -r +3 Las 5 primeras columnas son : Minutos (0 a 59) ; Hora (0 a 23) ; Día del mes (1 a 31) ; Mes (1 a 12) ; Día de la semana (0 a 6 : 0 = Domingo, 1 = Lunes).
319
[Shell@Unidad II]$ Banner muestra un mensaje
_nombre_funcion_ () { _lista_de_ordenes_ } whereis awk '{print $1}' fichero sed s/tomate/pera/g a.txt > b.txt
320
[Shell@Unidad II]$ if ....; then .... elif ....; else .... fi
[ -f "/etc/shadow" ] && echo "Este ordenador usa shadow passwors"
321
[Shell@Unidad II]$ case ... in ...) hacer algo aquí;; esac while ...;
do .... done for var in ....;
322
[Shell@Unidad II]$ #!/bin/sh test -x /home/www/bin/httpd || exit 0
case "$1" in #cuál fue el parámetro de invocación start) echo -n "Iniciando servidor http" start-stop-daemon --start --quiet --pidfile /var/run/httpd.pid \ --exec /home/www/bin/httpd echo "." ;; stop) echo -n "Deteniendo servidor httpd" start-stop-daemon --stop --quiet --pidfile /var/run/httpd.pid
323
[Shell@Unidad II]$ restart) /etc/init.d/httpd stop sleep 2
/etc/init.d/httpd start echo "." ;; *) echo "Uso: /etc/init.d/httpd {start|stop|restart}" exit 1 esac exit 0
324
[Shell@Unidad II]$ #!/bin/sh if [ "$SHELL" = "/bin/bash” ]; then
echo "tu shell es el bash (bourne again shell)“ else echo "tu shell no es bash sino $SHELL" fi
325
[Shell@Unidad II]$ # /etc/profile
# System wide environment and startup programs # Functions and aliases go in /etc/bashrc if ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; then PATH="$PATH:/usr/X11R6/bin" fi USER=`id -un` LOGNAME=$USER MAIL="/var/spool/mail/$USER" HOSTNAME=`/bin/hostname` HISTSIZE=1000 Un proceso es básicamente un programa en ejecución. En UNIX, cada shell de usuarios es un proceso, y también lo son las aplicaciones u ordenes con las que se esté trabajando.
326
[Shell@Unidad II]$ do echo $i i=$(($i+1)) done
# lee de stdin hasta que se introduzca 'quit' read linea while [ "$linea" != "quit" ];
327
[Shell@Unidad II]$ #!/bin/sh
#Pograma que borra todos los archivos (correos) que contienen la palabra 'To: jazarate' if [ -d cd /var/mail ] then grep -l "To:" * | xargs rm echo "Se borraron los archivos solicitados" else echo "Imposible borrar, no existe el directorio de correo" fi #El programa borra todos los correos que tengan la palabra "to: jazarate" #para ello nos vamos al directorio de spool del servidor de correo, y verificamos que archivos #tienen esa palabra con el comando grep, esos argumentos se los pasamos gracias al comando xargs #al comando rm para borrarlos
328
[Shell@Unidad II]$ #!/bin/sh
#Programa que calcula cuantos usuarios hay en el sistema echo "Numero de usuarios en el sistema: `who | awk '{print $1}' | sort -u | wc -l`" #Juan Carlos Olivares Rojas #Primero se obtienen todas las terminales y usuarios ejecutandose en el sistema, este resultado #se pasa al lenguaje awk para que por medio de una expresion regular obtengamos la primera palabra de #cada linea, la cual es el nombre del usaurio,< nuevamente la salida de esta instruccion se pasa al comando #sort con el parametro -u para que no tome en cuenta lineas repetidas (en este caso usuarios) y finalmente #la salida se pasa al comando wc con la opcion -l para que nos cuente el numero de lineas que representan #el numero total de usaurios en el sistema
329
[Shell@Unidad II]$ #!/bin/sh
#Script en shell de linux que calcula el usuario que tiene mas correos en el sistema if [ -d /var/mail ] then cd /var/mail a=`grep -r -c "Message-ID" * | awk 'BEGIN{FS=":"}{ print $2}' | sort -g -r | awk '{getline X ;print $1}'` clear echo "El usuario con mas correo es: `grep -r -c "Message-ID" * | grep $a | awk 'BEGIN{FS=":"}{ print $1}'`" else # No hay spool de correo en el sistema, salir echo "Lo sentimos pero no existe servidor de correo o no se encontro" fi #El script supone que el spool de correo se encuentra en /var/mail, si no se encuentra termina el programa #El primer paso es cambiarnos al directo del spool del correo, dentro hace un grep con la opcion -c para que #nos cuente cunatos correos existen (esto es gracias a que cada mensaje de correo tiene un id diferente, el cual #esta representado por Message-ID, obteniendo el resultado hay que encontrar el usuario que tenga el mayor numero #de correo, para esto se separa el archivo obtenido en la fase anterior con el separador ":" por lo que solo nos #quedara un archivo con valores numericos, el cual ordenaremos con la opcion -g para numeros y -r para que nos #ordene de mayor a menor, con la ultima operacion tomamos el valor mas grade el cual se lo asignamos a la varia- #ble $a. Con dicha variable, al final volvemos a obtener el numero de correos por usuarios, pero con grep $a ob- #tenemos la linea donde se encuentra el nombre del usuario con mas correos, ya por ultimo solo hace falta obtener #el nombre separandolo de la linea con :
330
[Shell@Unidad II]$ #!/bin/sh
#Shell que crea un usuario pasando el nombre como parámetro asi como su directorio public html if [ $# -eq 1 ] then #creamos el nuevo usuario useradd $1 mkdir /home/$1 cd /home/$1 mkdir public_html else echo "!Sintaxis incorrecta!. Uso correcto: $0 nombre_usuario" fi
331
[Arranque@Unidad II]$
El hardware lee el sector de arranque Se carga LILO/GRUB Se carga el Kernel Se monta el sistema de archivos raíz Se inicia init, el abuelo de todos los procesos Se lee /etc/inittab
332
[Arranque@Unidad II]$
Ejecuta todos los scripts de nivel 1 El final del nivel 1 indica que se vaya a 3 Ejecuta todos los scripts de nivel 3 El sistema está listo para usarse (se deberá autenticar para acceder al sistema)
333
II]$ LInux LOader, es el cargador del Kernel más común para Linux Uso casi exclusivo para arranques desde disco duro Configuración en /etc/lilo.conf Cargador en sector de arranque y en /boot/map
334
[Configuración LILO@Unidad II]
Default = linux Boot =/dev/hda Prompt Timeout = 50 Image=/boot/vmlinuz Label = linux Root = /dev/hda2 Read-only Other =/dev/hda1 label = DOS table = /dev/hda
335
II]$ GRand Unified Bootloader, es el cargador del Proyecto GNU Muy versátil y configurable, permite arrancar casi cualquier sistema operativo Entiende internamente FAT, ext2, Reiser, JFS. . . Configuración en /boot/grub/menu.lst.
336
[Configuración GRUB@Unidad II]$
title Debian GNU/Linux root (hd0,1) kernel /boot/vmlinuz root=/dev/hda1 ro title Debian GNU/Linux, kernel kernel /boot/vmlinuz root=/dev/hda1 ro
337
[Otros cargadores@Unidad II]$
SYSLINUX/ISOLINUX orientado a arranques desde floppy y cd. Arrancar en red (DHCP y TFTP). PXELINUX, ETHERBOOT, COMBOOT.
338
[init@ Unidad II]$ Primer proceso del sistema. PID=1 (siempre).
“Padre de todos los procesos”. Adopta y recoge a todos los procesos huérfanos. No se puede morir. Archivo de configuración: /etc/inittab Niveles de ejecución: “runlevels”.
339
[/etc/inittab@Unidad II]$
0 Sistema 1 Monousuario 2 Multiusuario sin NFS 3 Operación Normal 4 Sin uso 5 Mismo que 3 pero con X Windows 6 Rearranque del sistema
340
[Scripts rc@Unidad II]$
/etc/rc.d/rc3.d /etc/rc.d/initd S arranca servicio K parar lrwxrwxrwx 1 root root 9 Oct 20 20:05 K24random -> ../init.d/random lrwxrwxrwx 1 root root 8 Oct 20 18:23 S01fbset -> ../init.d/fbset service servicio start | stop | restart | satus
341
[/etc/rc.d/rc.local@Unidad II]$
#! /bin/sh #Limpia de archivos temporales echo “Eliminando archivos temporales..." find /tmp -type f -mtime +1 | xargs -r rm find /tmp -type d -mtime +1 | xargs -r rmdir
342
[Autenticación@Unidad I]$
La aplicación pide una contraseña al usuario Se comprueba /etc/nsswitch.conf para ver donde está la contraseña Se lee /etc/passwd /etc/shadow Se comprueba esa entrada La aplicación compara las cadenas y si son iguales se tiene acceso
343
[Login@Unidad II]$ Login: usuario Pasword: ******
/home/roge]$ /root]# /root]# logout /root]# shutdown now
344
[Parada@Unidad I]$ Se invoca al comando shutdown o reboot
Se llama init para cambiar el nivel de ejecución a 6 Se ejecutan los scripts del nivel 6 con stop Los búferes de salida se escriben en disco (sync) Los sistemas de archivos se desmontan El sistema se para
345
[Sistema de archivos@Unidad II]$
Nativo linux ext2 Intercambio de memoria swap CD-ROM iso9660 Monitorización del sistema proc Sistema de archivos de red (NFS) nfs FAT básico msdos VFAT (Windows 95) vfat Minix minix System V sysv BSD Fast File System bsd
346
[Árbol de directorios@Unidad II]$
/bin binarios /sbin binarios de root /dev dispositivos /etc archivos de configuración /home archivos de usuarios /proc archivos del kernel /tmp archivos temporales
347
[Árbol de directorios@Unidad
/boot Imágenes del kernel /mnt montaje de directorios (/floppy, /cdrom) /lib Bibliotecas y módulos /root información sobre el administrador /usr programas /var bitácoras del sistema
348
[/proc@Unidad II]$ /proc/cpuinfo tipo de CPU
/proc/interrupts tabla IRQ /proc/meminfo información sobre la memoria /proc/modules igual que lsmod /proc/pci periféricos con soporte PCI /proc/net/arp tabla ARP /proc/net/dev dispositivos de red
349
[Dispositivos de bloque@Unidad II]$
Brw-rw root disk 3, 0 May /dev/hda 3 major number 0 minor number 3 controlador de dispositivo pero diferente puerto
350
[Dispositivo de caracter@Unidad II]$
Crw root tty 4, 64 May /dev/ttyS0 P pipe R Lectura 4 W Escritura 2 X Ejecución 1
351
[Kernel@Unidad II]$ Búsqueda e inicialización de hardware.
Inicialización de la pila TCP/IP. Monta sistema de ficheros raíz (“root filesystem”). Prepara la consola, terminales virtuales, etc. Ejecuta el primer proceso del sistema, “/sbin/init”.
352
[Mensajes del kernel]@Unidad II
Todos los mensajes que genera el kernel se pueden ver con la orden “dmesg”. dmesg | grep quotas VFS: Diskquotas version dquot_5.6.0 initialized
353
[Kernel@Unidad II]$ Impar inestable 2.1, 2.3 Par estable 2.0, 2.2
Última versión estable (13/01/2006) /etc/src/linux Desempacar el kernel. make xconfig gráfico
354
[Configuración Kernel@Unidad II]$
Al Kernel se le pueden pasar una serie de parámetros para: Configurar dispositivos (discos duros, tarjetas de red, puertos serie, memoria (mem=XXX). . . ) Indicar sistema de archivos raíz (root=/dev/XXX) Condiciones especiales: monousuario, distinto init (init=XXX). . . Cada cargador tiene su manera de pasarle parámetros al Kernel Dentro del Kernel, los parámetros con los que se ha arrancado se pueden ver en /proc/cmdline
355
[Configuración Kernel@Unidad II]$
LILO linux single modo usuario LILO mem=128 GRUB kernel (hd0,0)/vmlinuz root=/dev/hda1 single modconf asistente para módulos lsmod, rmmod, insmod, depmod, modprobe
356
[Instalación del Kernel@Unidad II]
make config make xconfig Escoger los módulos y opciones a instalar make dep; make clean; make zImage; make modules; make modules_install
357
[Instalación@Unidad II]$
make bzImage Kernel compilado: /usr/src/linux/arch/i386/boot/zImage, Mapas: /usr/src/linux/System.map /boot/vmlinuz-x.x.x System.map mensajes
358
[Cargador de arranque@Unidad II]$
Default=/boot/vmlinuz-x.x.x Image=/boot/vmlinuz-x.x.x Label= Linux compilado Root=/dev/hda1 Parcheado del kernel Patch –p0 < parche
359
[Seguridad@Unidad II]$
La seguridad viene inmersa dentro de cada aplicación o en su defecto. Verificar siempre los logs del sistema Tener actualizado siempre los sistemas con las últimas alertas de seguridad. No existen sistemas completamente seguros
360
[Seguridad@Unidad II]$
Configurar adecuadamente los permisos de archivos para todos los usuarios Configurar contraseñas cambiantes No utilizar la cuenta de root como usuario Utilizar enlaces simbólicos y espacio de cuotas para los usuarios No activar servicios que no se utilicen Cerrar todos los puertos
361
[Seguridad@Unidad II]$
No instalar GUIs a menos que sea extremadamente necesario. Instale un Firewall vía SW o HW Utilizar protocolos cifrados: HTTPS, SFTP, SSH, etc. Hacer respaldo de la información constanteente
362
Comparing the Architectures
Both Linux and Windows are monolithic All core operating system services run in a shared address space in kernel-mode All core operating system services are part of a single module Linux: vmlinuz Windows: ntoskrnl.exe Windowing is handled differently: Windows has a kernel-mode Windowing subsystem Linux has a user-mode X-Windowing system
363
Hardware Dependent Code Hardware Dependent Code
Kernel Architectures Device Drivers Process Management, Memory Management, I/O Management, etc. Win32 Windowing Application System Services User Mode Kernel Mode Hardware Dependent Code Windows Device Drivers Process Management, Memory Management, I/O Management, etc. X-Windows Application System Services User Mode Kernel Mode Hardware Dependent Code Linux
364
Linux Kernel Linux is a monolithic but modular system
All kernel subsystems form a single piece of code with no protection between them Modularity is supported in two ways: Compile-time options Most kernel components can be built as a dynamically loadable kernel module (DLKM) DLKMs Built separately from the main kernel Loaded into the kernel at runtime and on demand (infrequently used components take up kernel memory only when needed) Kernel modules can be upgraded incrementally Support for minimal kernels that automatically adapt to the machine and load only those kernel components that are used
365
Windows Kernel Windows is a monolithic but modular system
No protection among pieces of kernel code and drivers Support for Modularity is somewhat weak: Windows Drivers allow for dynamic extension of kernel functionality Windows XP Embedded has special tools / packaging rules that allow coarse-grained configuration of the OS Windows Drivers are dynamically loadable kernel modules Significant amount of code run as drivers (including network stacks such as TCP/IP and many services) Built independently from the kernel Can be loaded on-demand Dependencies among drivers can be specified
366
Comparing Portability
Both Linux and Windows kernels are portable Mainly written in C Have been ported to a range of processor architectures Windows i486, MIPS, PowerPC, Alpha, IA-64, x86-64 Only x86-64 and IA-64 currently supported > 64MB memory required Linux Alpha, ARM, ARM26, CRIS, H8300, i386, IA-64, M68000, MIPS, PA- RISC, PowerPC, S/390, SuperH, SPARC, VAX, v850, x86-64 DLKMs allow for minimal kernels for microcontrollers > 4MB memory required
367
Comparing Layering, APIs, Complexity
Windows Kernel exports about 250 system calls (accessed via ntdll.dll) Layered Windows/POSIX subsystems Rich Windows API ( functions on top of native APIs) Linux Kernel supports about 200 different system calls Layered BSD, Unix Sys V, POSIX shared system libraries Compact APIs (1742 functions in Single Unix Specification Version 3; not including X Window APIs)
368
Comparing Architectures
Processes and scheduling SMP support Memory management I/O File Caching Security
369
Process Management Windows Process Threads
Address space, handle table, statistics and at least one thread No inherent parent/child relationship Threads Basic scheduling unit Fibers - cooperative user- mode threads Linux Process is called a Task Basic Address space, handle table, statistics Parent/child relationship Basic scheduling unit Threads No threads per-se Tasks can act like Windows threads by sharing handle table, PID and address space PThreads – cooperative user-mode threads
370
Scheduling Priorities
Windows Two scheduling classes “Real time” (fixed) - priority Dynamic - priority 1-15 Higher priorities are favored Priorities of dynamic threads get boosted on wakeups Thread priorities are never lowered 31 15 16 Fixed Dynamic I/O Windows
371
Scheduling Priorities
Windows Two scheduling classes “Real time” (fixed) - priority Dynamic - priority 1-15 Higher priorities are favored Priorities of dynamic threads get boosted on wakeups Thread priorities are never lowered Linux Has 3 scheduling classes: Normal – priority Fixed Round Robin – priority 0-99 Fixed FIFO – priority 0-99 Lower priorities are favored Priorities of normal threads go up (decay) as they use CPU Priorities of interactive threads go down (boost)
372
Scheduling Priorities (cont)
31 15 16 Fixed Dynamic I/O Windows 140 100 99 Fixed FIFO Fixed Round-Robin Normal CPU I/O Linux
373
Linux Scheduling Details
Most threads use a dynamic priority policy Normal class - similar to the classic UNIX scheduler A newly created thread starts with a base priority Threads that block frequently (I/O bound) will have their priority gradually increased Threads that always exhaust their time slice (CPU bound) will have their priority gradually decreased “Nice value” sets a thread’s base priority Larger values = less priority, lower values = higher priority Valid nice values are in the range of -20 to +20 Nonprivileged users can only specify positive nice value Dynamic priority policy threads have static priority zero Execute only when there are no runnable real-time threads
374
Real-Time Scheduling on Linux
Linux supports two static priority scheduling policies: Round-robin and FIFO (first in, first out) Selected with the sched-setscheduler( ) system call Use static priority values in the range of 1 to 99 Executed strictly in order of decreasing static priority FIFO policy lets a thread run to completion Thread needs to indicate completion by calling the sched-yield( ) Round-robin lets threads run for up to one time slice Then switches to the next thread with the same static priority RT threads can easily starve lower-prio threads from executing Root privileges or the CAP-SYS-NICE capability are required for the selection of a real-time scheduling policy Long running system calls can cause priority-inversion Same as in Windows; but cmp. rtLinux
375
Windows Scheduling Details
Most threads run in variable priority levels Priorities 1-15; A newly created thread starts with a base priority Threads that complete I/O operations experience priority boosts (but never higher than 15) A thread’s priority will never be below base priority The Windows API function SetThreadPriority() sets the priority value for a specified thread This value, together with the priority class of the thread's process, determines the thread's base priority level Windows will dynamically adjust priorities for non-realtime threads
376
Real-Time Scheduling on Windows
Windows supports static round-robin scheduling policy for threads with priorities in real-time range (16-31) Threads run for up to one quantum Quantum is reset to full turn on preemption Priorities never get boosted RT threads can starve important system services Such as CSRSS.EXE SeIncreaseBasePriorityPrivilege required to elevate a thread’s priority into real-time range (this privilege is assigned to members of Administrators group) System calls and DPC/APC handling can cause priority inversion
377
Scheduling Timeslices
Windows The thread timeslice (quantum) is 10ms-120ms When quanta can vary, has one of 2 values Reentrant and preemptible Linux The thread quantum is 10ms-200ms Default is 100ms Varies across entire range based on priority, which is based on interactivity level Reentrant and preemptible 100ms 200ms 10ms Fixed: 120ms 20ms Foreground: 60ms Background
378
Multiprocessor Support
Windows Supports symmetric multiprocessing (SMP) Up to 32 processors on 32-bit Windows Up to 64 processors on 64-bit Windows All CPUs can take interrupts Supports Non-Uniform Memory Access systems Scheduler favors the node a thread prefers to run on Memory manager tries to allocate memory on the node a thread prefers to run on Supports Hyperthreading Scheduler favors idle physical processors when it has a choice Doesn’t count logical CPUs against licensing limits Ready Thread 1 3 4 Physical CPU 0 Physical CPU 1
379
Multiprocessor Support
Windows Supports symmetric multiprocessing (SMP) Up to 32 processors on 32-bit Windows Up to 64 processors on 64-bit Windows All CPUs can take interrupts Supports Non-Uniform Memory Access systems Scheduler favors the node a thread prefers to run on Memory manager tries to allocate memory on the node a thread prefers to run on Supports Hyperthreading Scheduler favors idle physical processors when it has a choice Doesn’t count logical CPUs against licensing limits Linux Supports SMP No upper CPU limit: set as kernel build constant All CPUs can take interrupts Supports Non-Uniform Memory Access systems Scheduler favors the node a thread last ran on Memory manager tries to allocate memory on the node a thread is running on Supports Hyperthreading Scheduler favors idle physical processors when it has a choice
380
Virtual Memory Management
Windows 32-bit versions split user- mode/kernel-mode from 2GB/2GB to 3GB/1GB Demand-paged virtual memory 32 or 64-bits Copy-on-write Shared memory Memory mapped files Linux Splits user-mode/kernel-mode from 1GB/3GB to 3GB/1GB 2.6 has “4/4 split” option where kernel has its own address space Demand-paged virtual memory 32-bits and/or 64-bits Copy-on-write Shared memory Memory mapped files 2GB 4GB User User System 3GB 4GB System
381
Physical Memory Management
Windows Per-process working sets Working set tuner adjust sets according to memory needs using the “clock” algorithm No “swapper” Linux Global working set management uses “clock” algorithm No “swapper” (the working set trimmer code is called the swap daemon, however) LRU Reused Page LRU Process Reused Page LRU Other Process
382
I/O Management Windows Linux Centered around the file object
Layered driver architecture throughout driver types Most I/O supports asynchronous operation Internal interrupt request level (IRQL) controls interruptability Interrupts are split between an Interrupt Service Routine (ISR) and a Deferred Procedure Call (DPC) Supports plug-and-play Linux Centered around the vnode No layered I/O model Most I/O is synchronous Only sockets and direct disk I/O support asynchronous I/O Internal interrupt request level (IRQL) controls interruptability Interrupts are split between an ISR and soft IRQ or tasklet Supports plug-and-play IRQL Masked
383
File Caching Windows Single global common cache Virtual file cache
Caching is at file vs. disk block level Files are memory mapped into kernel memory Cache allows for zero-copy file serving Linux Single global common cache Virtual file cache Caching is at file vs. disk block level Files are memory mapped into kernel memory Cache allows for zero-copy file serving File Cache File System Driver Disk Driver File Cache File System Driver Disk Driver
384
Security Windows Linux Two models: Users are defined with:
Very flexible security model based on Access Control Lists Users are defined with Privileges Member groups Security can be applied to any Object Manager object Files, processes, synchronization objects, … Supports auditing Linux Two models: Standard UNIX model Access Control Lists (SELinux) Users are defined with: Capabilities (privileges) Member groups Security is implemented on an object-by-object basis Has no built-in auditing support Version 2.6 includes Linux Security Module framework for add-on security models
385
Monitoring - Linux procfs
Linux supports a number of special filesystems Like special files, they are of a more dynamic nature and tend to have side effects when accessed Prime example is procfs (mounted at /proc) provides access to and control over various aspects of Linux (I.e.; scheduling and memory management) /proc/meminfo contains detailed statistics on the current memory usage of Linux Content changes as memory usage changes over time Services for Unix implements procfs on Windows
386
Windows’ Evolution Towards Linux
Services for Unix really targeted at POSIX, not Linux POSIX threads, full POSIX subsystem (Interix) X Window clients+server (X-Win32 LX) nfs, NIS, pam proc-file system for Windows Configurability / Module Management Windows XP Embedded Target Designer/Component Designer/ Component Management Database Editions targeting new Application Domains Windows Compute Cluster Server 2003 POSIX compatibility in Windows actually predates Linux and was one of the original design goals
387
Linux’s Evolution Towards Windows
I/O processing Kernel reentrancy Kernel preemptibility Per-processor memory allocation O(1) scheduler and per-CPU ready queues Zero-Copy SendFile Wake-One socket semantics Asynchronous I/O Light-weight synchronization
388
I/O Processing Linux 2.2 had the notion of bottom halves (BH) for low- priority interrupt processing Fixed number of BHs Only one BH of a given type could be active on a SMP Linux 2.4 introduced tasklets, which are non-preemptible procedures called with interrupts enabled Tasklets are the equivalent of Windows Deferred Procedure Calls (DPCs)
389
Kernel Reentrancy Ingo Molnar stated in rebuttal:
Mark Russinovich’s April 1999 Windows NT Magazine article, “Linux and the Enterprise”, pointed out that much of the Linux 2.2 was not reentrant Ingo Molnar stated in rebuttal: “his example is a clear red herring.” A month later he made all major paths reentrant cpu 1 Non-reentrant cpu 2 cpu 1 Reentrant cpu 2 Time Saved
390
Kernel Preemptibility
A preemptible kernel is more responsive to high-priority tasks Through the base release of v2.4 Linux was only cooperatively preemptible There are well-defined safe places where a thread running in the kernel can be preempted The kernel is preemptible in v2.4 patches and v2.6 Windows NT has always been preemptible
391
Per-CPU Memory Allocation
Keeping accesses to memory localized to a CPU minimizes CPU cache thrashing Hurts performance on enterprise SMP workloads Linux 2.4 introduced per-CPU kernel memory buffers Windows introduced per-CPU buffers in an NT 4 Service Pack in 1997 Buffer Cache 0 Buffer Cache 1 1 CPUs
392
Scheduling The Linux 2.4 scheduler is O(n)
If there are 10 active tasks, it scans 10 of them in a list in order to decide which should execute next This means long scans and long durations under the scheduler lock Ready List 103 112 112 101 Highest Priority Task
393
Scheduling Linux 2.6 has a revamped scheduler that’s O(1) from Ingo Molnar that: Calculates a task’s priority at the time it makes scheduling decision Has per-CPU ready queues where the tasks are pre-sorted by priority Highest-priority Non-empty Queue 101 103 112 112
394
Scheduling Windows NT has always had an O(1) scheduler based on pre- sorted thread priority queues Server 2003 introduced per-CPU ready queues Linux load balances queues Windows does not Not seen as an issue in performance testing by Microsoft Applications where it might be an issue are expected to use affinity
395
Zero-Copy Sendfile 0-Copy 1-Copy
Linux 2.2 introduced Sendfile to efficiently send file data over a socket I pointed out that the initial implementation incurred a copy operation, even if the file data was cached Linux 2.4 introduced zero-copy Sendfile Windows NT pioneered zero-copy file sending with TransmitFile, the Sendfile equivalent, in Windows NT 4 File Data Buffer File Data Buffer 0-Copy 1-Copy Network Network Network Adapter Buffer Network Driver Network Driver
396
Wake-one Socket Semantics
Linux 2.2 kernel had the thundering herd or overscheduling problem In a network server application there are typically several threads waiting for a new connection In v2.2 when a new connection came in all the waiters would race to get it Ingo Molnar’s response: 5/2/99: “here he again forgets to _prove_ that overscheduling happens in Linux.” 5/7/99: “as of my wake-one implementation and waitqueues rewrite went in” In Linux 2.4 only one thread wakes up to claim the new connection Windows NT has always had wake-1 semantics
397
Asynchronous I/O Linux 2.2 only supported asynchronous I/O on socket connect operations and tty’s Linux 2.6 adds asynchronous I/O for direct-disk access AIO model includes efficient management of asynchronous I/O Also added alternate epoll model Useful for database servers managing their database on a dedicated raw partition Database servers that manage a file-based database suffer from synchronous I/O Windows I/O is inherently asynchronous Windows has had completion ports since NT 3.5 More advanced form of AIO
398
Light-Weight Synchronization
Linux 2.6 introduces Futexes There’s only a transition to kernel-mode when there’s contention Windows has always had CriticalSections Same behavior Futexes go further: Allow for prioritization of waits Works interprocess as well
399
A Look at the Future The kernel architectures are fundamentally similar There are differences in the details Linux implementation is adopting more of the good ideas used in Windows For the next 2-4 years Windows has and will maintain an edge Linux is still behind on the cutting edge of performance tricks Large performance team and lab at Microsoft has direct ties into the kernel developers As time goes on the technological gap will narrow Open Source Development Labs (OSDL) will feed performance test results to the kernel team IBM and other vendors have Linux technology centers Squeezing performance out of the OS gets much harder as the OS gets more tuned
400
Linux Technology Unknowns
Linux kernel forking RedHat has already done it: Red Hat Enterprise Server v3.0 is Linux 2.4 with some Linux 2.6 features Backward compatibility philosophy Linus Torvalds makes decisions on kernel APIs and architecture based on technical reasons, not business reasons
401
¿Qué es Mac OS X? Mac OS X es el actual sistema operativo de la familia de ordenadores Macintosh. Es un sistema operativo basado en UNIX. Contiene un núcleo de bajo nivel que se llama Darwin y esta basado en la licencia APSL (Apple Public Source License). Incorpora 3 tecnologías: Quartz Extreme OpenGL QuickTime
402
Capas del Sistema Mac OS X
403
Núcleo del Sistema Operativo
El núcleo se refiere a la base fundamental de Mac OS X. Es conocido como Darwin. Esta capa es responsable para el manejo de todas las operaciones de E/S (entrada y salida) También maneja la memoria y el uso del procesador.
404
Servicios del Núcleo Implementan los servicios del sistema operativo, los cuales son usados por las aplicaciones. Entre algunos de estos servicios tenemos: QuickTime (Reproducir Videos) Quartz (Dibujos en 2D) Core Audio, Video (Efectos especiales)
405
Framework para Desarrolladores
Permite la ejecución de varias aplicaciones en Mac OS X. Un Framework es una estructura de soporte definida, puede incluir soporte de programas, librerías y un lenguaje común para ayudar a desarrollar y unir los diferentes componentes de un proyecto.
406
Interfáz del Usuario y Aplicaciones
Las aplicaciones son los programas que tú ejecutas. La capa de aplicación es donde el usuario interactúa con su Macintosh. Además de las aplicaciones diseñadas para Apple, Mac OS X incluye soporte para ejecutar aplicaciones basadas en: Java, UNIX y aplicaciones clásicas del sistema Mac OS 9.
407
Evolución del Sistema Mac OS X
Las diferentes versiones de Mac OS X van apodadas con los nombres de grandes felinos en inglés: Mac OS X Cheeta v Marzo 2001 Mac OS X Puma v Septiembre 2001 Mac OS X Jaguar v Agosto 2002 Mac OS X Panther v Octubre 2003 Mac OS X Tiger v Abril 2005 Próximamente se lanzará oficialmente el nuevo Mac OS X Leopard en su versión 10.5
408
Requerimientos Mínimos para instalar Mac OS X Tiger
Ordenador Macintosh con procesador PowerPC G3, G4, G5 o procesador Intel. FireWire incorporado Lector de DVD 256 MB de RAM Tarjeta de video integrada y compatible con Apple. 3 GB de espacio disponible en disco (4 GB si deseas instalar las herramientas de desarrollo)
409
Preparandose para la instalación
Es muy importante tomar las precauciones necesarias antes de instalar Mac OS X. Respaldar información importante Leer el documento “Leame antes de Instalar” Recolectar información de tu computador Actualizar el Firmware. Si se requiere utilizar las aplicaciones clásicas de Mac OS 9, es necesario primeramente actualizar a la versión y luego instalar el sistema base Mac OS X.
410
Eligiendo un Método de Partición
El particionamiento divide un disco en secciones o volúmenes. Es necesario borrar toda la información en el disco para realizar el particionamiento. Existen 2 tipos de configuraciones en las que se puede instalar Mac OS X:
411
Eligiendo el tipo de Instalación
Además del tipo de instalación por defecto existe otros tipos de instalación: Actualización Archivar e Instalar Borrar e Instalar
412
Completando la Instalación
Cuando la instalación se ha completado, el instalador reinicia el equipo y se inicia el Asistente de Instalación, el cuál recolecta información necesaria para registrar Mac OS X y crear una nueva cuenta de usuario. La cuenta inicial que se crea al instalar Mac OS X, es una cuenta de administrador, la cual permite cambiar las configuraciones del sistema e instalar aplicaciones y utilidades.
413
Solucionando problemas de instalación
Existen 3 fases críticas en las que pueden considerar posibles puntos de fallo: Leer paquetes de DVD de instalación de Mac OS X Problemas al procesar los paquetes desde la memoria RAM Problemas escribiendo los paquetes en el Volumen de destino.
414
Tips para la Solución de problemas
Asegúrate que el equipo cumple con los requerimientos mínimos para la instalación, incluyendo la versión del Firmware. Revisar los Logs de instalación (Archivo > Mostrar Logs) Reiniciar el equipo en caso de que se esté efectuando alguna actualización. Desconectar cualquier dispositivo que pueda afectar el proceso de instalación, únicamente se necesita un teclado, mouse y un monitor. Remover memoria RAM que no sea Apple.
415
Cuentas de Usuario 3 tipos de usuarios:
Estándar Administrador Administrador del Sistema (Super Usuario, root) Pueden existir muchas cuentas de usuario Estándar y Administrador, pero en Mac OS X existe 1 usuario Administrador del Sistema. Un usuario contiene los siguientes atributos: Usuario Estándar: Puede usar un conjunto básico de aplicaciones y herramientas, y solamente puede hacer cambios a configuraciones que afecten únicamente a su cuenta. No puede hacer cambios a las configuraciones generales del sistema tales como: Seguridades, Energía, Impresoras y Faxes, Redes, Compartir, Cuentas de Usuario, además de utilizar herramientas como NetInfo y el Servicio de Directorio. Si el usuario estándar desea hacer alguna configuración del sistema, este debe autentificarse con el nombre de una cuenta de administrador. Usuario Administrador: Puede realizar cualquier tarea básica para administrar Mac OS X. El usuario administrador puede utilizar cualquier herramienta en el panel de Preferencias del Sistema. Asimismo el usuario puede instalar cualquier aplicación para ser utilizada por los usuarios del sistema. Administrador del Sistema: Llamado también Súper Usuario o Root, tiene permisos de lectura y escritura a todas las configuraciones y archivos del sistema incluyendo archivos ocultos de configuración que los administradores no tienen acceso. En Mac OS X la cuenta root está deshabilitada por defecto, esto con el fin de asegurar de alguna manera el sistema. NOTA: En Mac OS X puede existir múltiples cuentas de Administrador, pero únicamente existe una sola cuenta para el Administrador del Sistema, además este usuario no tiene una carpeta personal en la carpeta de Usuarios. Nombre Completo Nombre corto (username) UID (User ID) Carpeta Personal (Home Folder)
416
Creando y Editando Cuentas de Usuario
Preferencias del Sistema Tanto los usuarios estándar como los administradores pueden utilizar el panel de Cuentas, que se encuentra en Preferencias del Sistema, para realizar cambios es sus cuentas. Únicamente los administradores pueden agregar cuentas de usuario. Una cuenta estándar puede ser cambiada a cuenta de administrador marcando la casilla “Permitir a este usuario administra el computador” Cuando se crea cuenta de usuario, automáticamente se añade la carpeta personal en la carpeta de Usuarios, y el nombre de dicha carpeta representa el nombre corto ingresado al momento de añadir la cuenta.
417
Utilizando el Cambio rápido de usuarios
418
Asegurando tu Mac Mac OS X posee características de seguridad robustas, gracias a su sistema basado en UNIX. Existen varios tipos de contraseñas (passwords) que utiliza Mac OS X. Login Password. (Usuarios) Open Firmware Password (Asegurar el proceso de inicio). Master Password. (File Vault, Recuperar datos encriptados) Resource Passwords (Mail, carpetas comprimidas, encriptación, Sitios Web). Keychain Password (Base de datos de Claves).
419
Asegurando tu cuenta con FileVault
FileVault habilita al usuario para encriptar su carpeta personal. Toda la carpeta personal se transfiere a una imagen de disco encriptada ajustable. Cuando el usuario inicia la sesión, la imagen se monta y se desencripta. En casos de olvidar la contraseña se de debe crear una “Contraseña Maestra”
420
Otras opciones de Seguridad
Solicitar una contraseña cuando la computadora está en reposo. Deshabilitar el inicio de sesión automático. Preguntar siempre por una contraseña en las preferencias del sistema. Cerrar la sesión después de un determinado tiempo.
421
Revisión
422
Questions?
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.