Journaled Filesystems:20TopIntroducciónCasos de uso comunes en la PC:40

Casos de uso comunes en la PC:40

Autenticación - ¿quién se llama raíz?

Usuarios de MS-Dos o Windows estaban acostumbrados a encender la computadora y comenzar a trabajar. Hasta el momento que los sistemas se integraban a redes había que utilizar una autenticación como usuario, dando un nombre y una clave al diálogo, antes de poder acceder al "Escritorio". En las primeras versiones de la red Microsoft, que todavía tiran sombras hasta los días actuales, no hay administración centralizada de usuarios. En el momento que cualquiera ingresa unos caracteres en la casilla, y si esta cadena no está conocida al sistema, se crea un nuevo usuario con el nombre introducido.

Esta conveniencia no se puede mantener cuando se comparten recursos entre diferentes actores y cuando estos actores no se mantienen siempre en el mismo lugar. Para asignar un recurso específico a una identidad específica se requiere determinar la identidad de una usuaria en el momento que accede a "la red", y la famosa ventana de login se hace imprescindible.

En concepto de detalle: la administración centralizada, introducida por Windows NT, permite a varias usuarias tomar control de la asignación de (derechos de uso de) recursos a identidades de usuarias, en Unix este derecho está concedido a una identidad resaltada, llamada tradicionalmente "root" o raíz. Este es el famoso Superuser. ¿Porqué solo uno? Keep It Simple and Stupid - KISS.

Sistemas Unix arman el mecanismo de autenticación mediante programas dedicadas después del inicio del sistema. Por lo tanto no es obligatorio hacerlo, sino simplemente "good practice" - práctica razonable. Ningún vendedor de un sistema Unix, aunque se llame Linux puede permitirse omitir esta práctica para facilitar el acceso a la computadora, porque perdería instantáneamente cualquier buena reputación. Por mi parte lo he hecho y puede ser encontrado en http://www.magma.com.ni/~jorge/lios/, solo por curiosidad.

Por otro lado, se han implementado medidas, que permiten de manera más controlada el acceso a una computadora, sin necesidad de autenticación explícita. El gestor de display - este es el mecanismo que realiza la autenticación de usuaria en ambiente X-Windows - que se provee para el Gnome Desktop: gdm, puede ser configurado de tal manera, que realiza un login automático para una usuaria del sistema específica instantáneamente cuando arranca el sistema, o después de un tiempo de espera. Esto puede ser usado en casa, donde solo hay una usuaria en el equipo, o en computadoras compartidas entre personas anónimas (Internet Café, p.ej.), donde se crea una usuaria "visita", con privilegios de acceso al sistema bien seleccionados: Cualquiera puede usar la cuenta "visita".

La desventaja se presenta, cuando una usuaria diferente a la usuaria estándar quiere usar la máquina, tiene que cerrar primero la sesión, y después abrir una nueva con la otra identidad.

Medios extraibles - el disco aguado

Unidades que nos juegan letras

Los sistemas Microsoft heredaron desde CP/M de Digital Research el concepto, que la usuaria tiene que administrar los dispositivos de almacenamiento de datos: Discos, Floppies, CDRoms, etc. Cada dispositivo recibe una letra mayúscula como identificador, y para referirnos a un objeto de archivo en un determinado medio utilizamos la notación:

LetraUnidad:ViaDeAcceso
p.ej:
A:\conescapan\charla.doc
Este sistema funciona muy bien, mientras la cantidad de dispositivos no excede ciertos límites, para hablar precisamente: 26 unidades, caso que es válido en casa, pero no en una red, donde recursos compartidos pueden exceder sin grandes problemas este límite.

La reducción del espacio de nombres con una sola letra crea el problema que la usuaria tiene que recordar o anotar, qué significado tiene cada letra. Por suerte la Red Microsoft introdujo otra nomenclatura:

//Servidor/RecursoCompartido/ViaDeAcceso
que reduce significantemente el problema mnemónico.

Donde quiero enfocar este capítulo sin embargo es otro problema, los medios extraibles. En este caso tenemos una unidad (A:), que maneja diferentes medios en diferentes momentos. Cada medio contiene un sistema de archivos con su respectiva información individual - al cambiar el medio, cambia la información "en" la unidad.

Mientras los sistemas operativos fueron pequeños las veces que se accedía a un objeto (fichero) en el medio, el sistema volvía iterar sobre la completa vía de acceso en el sistema de archivos para obtener la parte solicitada de su contenido. Esto requiere varios accesos a la unidad, que en el caso de unidades con medios baratos hoy en día resulta en retrasos sumamente ridículos.

Un floppy disk lleva un volumen de 1.44MByte de datos. En una computadora pequeña, casi obsoleta con 64Mbyte Ram, pueden almacenarse 44 Floppy disk en Ram. Un FlashCard con 16Mbyte cuesta lo mismo que la unidad Floppy y podría almacenar el contenido de diez Disquetes. Por otro lado, el acceso a estos 1.44 MByte de datos en un Floppy Disk se ejecuta con los mismos 400-800kByte/s como en los tiempos viejos. Mientras escribir este volumen de datos en un disco duro tarda unos milisegundos, necesitamos más que un minuto para grabarlo en un Floppy.

La técnica de usar caché - memoria intermediaria - para aumentar el acceso ha sido introducido en todos los sistemas operativos desde siempre, que hubo suficiente memoria para no impedirlo. La idea es, cuando se accede a alguna parte del contenido del floppy guardarlo en la memoria, con la suposición que la aplicación (la usuaria) volverá muy probablemente acceder y/o manipular a esta misma información. Al determinar que el acceso a este contenido ha terminado, se guardan los cambios realizados de nuevo en el disco. Esto no solo se aplica a contenido de archivos, sino también a meta-datos del sistema de archivos: atributos y nombres de archivos, tablas de bloques libres, arboles de directorios, etc.

El cuello de botella - escritura/lectura secuencial a un medio lento - se puede reducir significativamente con este método, pero en el caso de los floppy disks la conveniencia tiene que ser comprada con el precio de la posible corrupción de datos:

Para mayor simplicidad en la producción de las unidades, la introducción y expulsión del medio (floppy disk) es realizado por la usuaria. Para evitar la extracción durante el mismo proceso de lectura o escritura se cuenta con una lámpara, que indica el "uso" del medio, y se indica a la usuaria, que no hay que extraer el disco, mientras la lámpara está encendida. Sin embargo, con el caché de datos en memoria, puede no estar en uso la unidad, pero los datos en el floppy no coinciden con el supuesto contenido - ya que este fue modificado en memoria.

Consideramos el escenario de Jorge, que busca el documento de la charla para Conescapan en un disquete, lo inserta, abre un archivo y se da cuenta, que es una versión obsoleta. Ahora retira el disquete, sin cerrar el archivo, inserta otro disquete, abre un archivo con el mismo nombre y se da cuenta que es la versión que busca.

Por error, utiliza la ventana equivocada al agregar unas líneas y cambia el archivo "viejo". Se da cuenta y cierra la ventana correspondiente, momento en el cual el sistema intenta guardar los cambios realizados en el archivo en el disquete - que contiene la versión nueva de la charla.

En el peor caso, el sistema operativo sobreescribe el archivo "bueno", con la versión obsoleta modificada, pero por suerte, este caso hoy en día ya no se da. En caso de los sistemas Microsoft es común, que en este momento la pantalla se convierte en el color azul conocido por todos los usuarios y muestra un mensaje de error indicando que el disco insertado tiene un número serie incorrecto y que hay que insertar otro disquete con el número correcto.

Apple Computers ha reconocido la particularidad de este caso de uso ya muy temprano, y sus computadoras "tragan" los floppies, y los devuelvan al usuario mediante un mecanismo controlado por la computadora. Por supuesto, antes de expulsar el floppy para dar lugar a otro, actualizan el primer floppy automáticamente.

Llaves crecent para computadoras

Los sistemas Unix introducen un sistema de archivos unificado: al arranque del sistema se utiliza un medio predefinido - el root-filesystem - que contiene las utilidades de sistemas. La raíz del directorio de este medio, forma la raíz del sistema de archivos unificado.

Si se quiere acceder a otro medio: disco duro, floppy, cdrom, ramdisk, etc. se utiliza un subdirectorio (opcionalmente vacío) como punto de montaje el cual se asocia a través del registro de la unidad correspondiente en el sistema con la raíz del sistema de archivos en el medio respectivo. Este proceso se llama montar una sistema de archivo. A partir del montaje todo el contenido de un medio está disponible como árbol de directorios contenido en el subdirectorio que sirve de punto de montaje. Este mecanismo se usa uniformemente entre unidades fijas, extraibles, y recursos compartidos en red.

Consecuencias: No hay letras de unidades, el espacio de nombres es libremente elegible por la usuaria, todas las utilidades trabajan uniformemente en todas las unidades montadas.

Para acceder a un medio extraible se inserta este en la unidad correspondiente, y se monta en un determinado punto de montaje. A continuación se accede al subdirectorio correspondiente para acceder y modificar el contenido del medio.

Antes de extraer el medio, se tiene que invertir la operación - se desmonta la unidad. El montaje/desmontaje forma puntos definidos, donde el sistema operativo obtiene meta-datos (el directorio) sobre el medio en cuestión, los pone en caché, o actualiza en el segundo caso los datos guardados en el medio con sus modificaciones en memoria.

Para usuarias de Windows este mecanismo tiene dos consecuencias irritantes:

Efectivamente, esto es una de las causas mayores de confusión y errores en el uso de computadoras Linux, aunque el método Unix es en principio más seguro contra pérdida de datos que el método anterior descrito, ya que al insertar otro medio sin desmontar el primero, el sistema se rehúsa a accederlo.

Mecánicos automatizados

Varios enfoques han sido desarrollados para simplificar esta situación del punto de vista del usuario, lastimosamente: Hay una diversidad de propuestas, tanto para la nomenclatura del punto de montaje, como para los mecanismos para (semi-)automatizar el proceso de montaje/desmontaje de medios extraibles, que al final la situación es más confusa todavía. A esto se suma, que las unidades por tradición y consideraciones de seguridad solo pueden ser accedidos desde el superuser, situación que tiene que ser circunvada en el caso de computadoras personales y lo que puede ser realizado de diversas maneras.

La única solución efectiva es la extinción de los floppy disks, y esperemos que sea pronto, o su modificación para incluir un mecanismo confiable de detección de cambio de medio y de bloqueo de entrega.

He aquí algunos de las soluciones "mientras tanto":

Montaje síncrono
este término significa, que el caché de escritura es desactivado en la unidad respectiva: cuando una aplicación modifica el contenido de un disquete, estos cambios son escritos instantáneamente en la unidad, mientras la lectura se efectúa usando las ventajas del caching. De esta manera, no puede haber destrucción por inconsistencia de contenido.
Auto-desmontaje
Esto funciona en combinación con el primer mecanismo. Cuando al acceder al medio se detecta que el disco ha cambiado - algunas unidades pueden señalizar eso - se desmonta el floppy anterior. Ya que está sincronizado, no hay caché pendiente de escritura.
Auto-montaje
Este mecanismo fue desarrollado para redes grandes y complejas con muchos recursos compartidos. Un servicio del sistema (daemon), que maneja un registra de unidades con sus puntos de montaje correspondientes vigila los accesos a estos últimos. En caso que una aplicación quiere acceder al contenido de un punto de montaje, el daemon efectúa primero la operación de montaje respectiva. La aplicación se bloquea mientras la unidad está lista. Si la usuaria no ha insertado el medio, se efectúa un error de acceso.
Floppy-daemon
Un servicio de sistema accede periódicamente a la unidad (p.ej. cada segundo), para comprobar si hay un medio insertado. En caso positivo se monta el medio. En caso de haber extraído un medio antes montado se desmonta el punto de montaje.

Chequeo del sistema de archivos - preludio

Todos los sistemas operativos modernos utilizan disk-caching extensivamente, así como la extensión de la memoria física con un espacio de intercambio (Swap Space). Esto conlleva, que constantemente muchos datos, que son parte del contenido de archivos o meta-datos se encuentran en memoria durante la operación normal del sistema. Ya que los días gloriosos en los cuales la memoria principal consistía de núcleo de ferrito y mantenían su contenido al apagar la computadora son pasado, se introdujo la operación "shut-down" del sistema, que consiste en sincronizar todos los caches con el disco duro. La interrupción de energía imprudente puede tener consecuencias catastrofales en los datos y en el sistema de archivos de un disco duro, hasta imposibilitar su uso.

Mientras en computadoras con Windows cada usuario puede apagar la computadora, esto puede tener consecuencias fatales para usuarios en red, que utilizan recursos compartidos desde esta máquina. En sistemas Unix tradicionalmente la operación de apagar el sistema es reservado para el superuser, por razones KISS y consideraciones parecidas. Los sistemas Unix no solo son multitarea, sino también multiusuario y permiten sesiones de varias usuarias simultáneamente. ¿Cuál de ellas tiene el derecho de apagarles a las otras la computadora?

En nuestro caso de las computadoras personales esto es una pregunta no aplicable, solo hay una usuaria, que no quiere molestarse en acceder como superuser al sistema.

En modo texto/consola, al menos existe tradicionalmente el método Ctrl-Alt-Supr para reinicializar la computadora, aunque esto significa, que la usuaria tiene que esperar el proceso y apretar el botón en el momento oportuno, antes que la computadora reinicializa el sistema.

En modo gráfico, otra vez nos ayudan los administradores de Display, que hoy en día proveen un menú de sistema, con las opciones de re-inicializar y apagar el sistema.

Para personas más impacientes existen aplicaciones de menú con la misma función (como en Windows), pero que posiblemente piden por lo menos a la usuaria la clave superuser y proveen de esta manera una pause de re-capacitación adicional. El permiso de apagar el sistema sin pedir clave puede ser accedido sin embargo también con utilidades como "sudo", "calife", o "super".

Otra diferencia en el uso de la computadora en casa es, que los sistemas de archivos Unix esfuerzan el chequeo del sistema de archivo periódicamente, por lo general el mismo día que la persona respectiva no tiene los quince minutos disponibles, que requiere este proceso. A pesar de cerrar bien el sistema, las aplicaciones, fallas en el disco mismo, en la memoria o en rutinas del sistema operativos pueden causar incoherencia en los datos o meta-datos guardados en el disco duro. El chequeo periódico es un mecanismo para la detección y corrección de estas fallas.


Jorge.Lehner@gmx.net

Journaled Filesystems:20TopIntroducciónCasos de uso comunes en la PC:40