A).- Operacin del sistema operativo multiusuario sobre
Linux Introduccin al sistema operativo Linux. La historia de los sistemas operativos (OS) comienza en los aos 50, con simples pruebas probando programas batch los cuales son programas que no interactan con el usuario en absoluto. Lee todas las entradas de un fichero y enva todas las salidas a otro fichero (normalmente una impresora). As era como los ordenadores solan trabajar. A los principios de los sesenta, esto empez a cambiar. Se idearon los sistemas para que varios usuarios pudieran estar usando el mismo ordenador desde distintos terminales. Dichos sistemas se llamaron de tiempo compartido y eran bastante ms complejos que los anteriores sistemas batch. Durante el resto de los sesenta hubo muchos intentos de construir sistemas de tiempo. Muchos fueron proyectos de investigacin de universidades y otros puramente comerciales. Uno de los ms innovadores en aquel momento fue el proyecto Multics. Tena, por ejemplo, un sistema de ficheros jerrquico, lo cual se ha utilizado en sistemas operativos ms modernos. Linux solamente es el Kernel del sistema operativo. El Kernel es la parte que hace que los programas funcionen, es decir, es la base donde todo lo dems opera. Habilita tareas de multiusuario, gestin de dispositivos hardware y permite a las aplicaciones realizar sus funciones. Linux dispone adems de un intrprete de comandos (shell) que permite interactuar con el OS y escribir scripts, que son pequeos programas para automatizar tareas. Linux es un sistema operativo multitarea y multiusuario, basado en Unix, de cdigo libre y puede trabajar en mltiples plataformas hardware. Como se ha comentado, una de las cosas que hace a Linux tan potente es su capacidad multitarea y multiusuario. Linux, al igual que Unix, fue diseado desde el principio para correr mltiples procesos independientes entre ellos. Para realizar esto se necesita una buena gestin de la memoria.
Para instalar Linux tienes primero que elegir una distribucin. Una distribucin Linux es el Kernel ms un programa de instalacin, y algunas aplicaciones personalizadas que hacen todas las funciones. Hay cientos de estas distribuciones, algunas ms populares que otras.
2 Sistema de ficheros de Linux En primer lugar vamos a definir un sistema de ficheros como la organizacin lgica de un dispositivo que nos permite almacenar y recuperar informacin en forma de fichero. Existen diversos tipos de sistemas de ficheros, es decir diferentes formas de organizar la informacin en un dispositivo, normalmente discos. Entre los ms habituales tenemos: Ext2, ext3 Es el sistema de ficheros nativo de Linux. Se organiza en un sper bloque, i-nodos y rea de datos. Este tipo de sistema de ficheros admite caractersticas multiusuario para indicar los permisos y la propiedad de ficheros y directorios. vfat 12, 16 y 32 Es el sistema de ficheros usados por la gama baja de las plataformas win32. No admite caractersticas multiusuario como propiedad de ficheros. Estos tipos de sistemas de ficheros se basan en un directorio y una tabla de localizacin que dependiendo del tamao de cada elemento se denomina FAT 12, 16 o 32. Linux los admite sin ningn problema, aunque siempre es preferible usar ext2. iso9660 Es el sistema de ficheros propio de los CDROM. Ms dos Anlogo a los sistemas FAT, aunque slo admite ficheros con nombre 8+3. Pues bien, para contener ficheros necesitamos crear un sistema de ficheros en la particin. Para esto disponemos de la orden mkfs, a la cual le tendremos que indicar el tipo de sistema, con la opcin -t y el dispositivo en el que quermos crearla. Por ejemplo, para crear un sistema de ficheros en la segunda particin del tercer disco duro ide, pondremos: mkfs -t ext2 /dev/hdc2 A estas alturas el lector se debe imaginar que al crear un nuevo sistema de ficheros en una particin se borra el contenido previo de dicha particin. Al crear un sistema de ficheros se crea automticamente el directorio lost+found. Este directorio lo utiliza el sistema para guardar la informacin perdida cuando se deteriora el sistema de ficheros correspondiente. Verificar un sistema de ficheros: fsck En ciertas ocasiones es necesario verificar la integridad del sistema de ficheros y corregir los posibles errores que hubiese. Esta accin la realiza la orden fsck.
3 Interprete de comandos de Linux: Shell El intrprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razn, se le da el nombre ingls "shell", que significa "caparazn". Por lo tanto, la shell acta como un intermediario entre el sistema operativo y el usuario gracias a lneas de comando que este ltimo introduce. Su funcin es la de leer la lnea de comandos, interpretar su significado, llevar a cabo el comando y despus arrojar el resultado por medio de las salidas. La shell es un archivo ejecutable que debe interpretar los comandos, transmitirlos al sistema y arrojar el resultado. Existen varios shells. La ms comn es sh (llamada "Bourne shell"), bash ("Bourne again shell"), csh ("C Shell"), Tcsh ("Tenex C shell"), ksh ("Korn shell") y zsh ("Zero shell"). Generalmente, sus nombres coinciden con el nombre del ejecutable. Cada usuario tiene una shell predeterminada, la cual se activar cuando se abra un indicador del comando. La shell predeterminada se especifica en el archivo de configuracin /etc/passwd en el ltimo campo de la lnea que corresponde al usuario. Es posible cambiar de shell durante una sesin. Para esto, slo debe ejecutar el archivo ejecutable correspondiente, por ejemplo: /bin/bash Indicador del sistema La shell se inicia al leer su configuracin completa (en un archivo del directorio /etc. /) y despus al leer la configuracin propia del usuario (en un archivo oculto cuyo nombre comienza con un punto que se ubica en el directorio bsico del usuario, es decir /home/user_name/.configuration_file). A continuacin, aparece el siguiente indicador (prompt en ingls): Equipo: /directorio/actual$ De manera predeterminada, para la mayora de las shells, el indicador consiste en el nombre del equipo, seguido de dos puntos (:), el directorio actual y despus un carcter que indica el tipo de usuario conectado: "$" especifica un usuario normal "#" especifica el administrador, llamado "root"
4 Principales ordenes de Linux: ls : Listar archivos y directorios cp : Copiar archivos y directorios pwd : Mostrar el nombre del directorio de trabajo actual cd : Cambiar de directorio sort : Ordenar ficheros mkdir : Crear directorios touch : Crear o actualizar ficheros rm : Borrar archivos y/o directorios rmdir : Borrar directorios vacios mv : Mover o renombrar archivos more : Muestra ficheros pgina a pgina less : Muestra Ficheros pgina a pgina cat : Mostrar ficheros de forma continua head : Ver el inicio de un archivo tail : Ver las ltimas lneas de un archivo find : Buscar archivos grep : Buscar el patrn pasado como argumento en uno o ms archivos wc : Calcular la cantidad de cadenas y palabras en archivos ln : Crea enlace entre ficheros
5 Configuracin del entorno (variables) Hay varios mtodos para aadir variables de entorno en linux. Normalmente existen diferentes scripts que se ejecutan en diferentes eventos, por ejemplo, cuando un usuario se ingresa en el sistema se ejecuta un archivo llamado .bashrc. Este es un archivo de sistema que se encuentra en la carpeta del usuario /home/usuario/.bashrc Este script es un buen lugar para aadir la variable de entorno. Aunque tambin existen otros sitios. En este ejemplo veremos cmo aadir una ruta a la variable de entorno PATH, que es una variable comn para asignar rutas de aplicaciones y comandos que se instalan en el sistema. Podemos usar cualquier editor para modificar los datos, por ejemplo Para evitar sobre escribir esta variable (es posible que se haya definido en otro sitio), podemos hacerlo de aadiendo esta lnea al final del archivo Entorno grfico: x Windows- x11 Se trata de la herramienta de software para el desarrollo de interfaces grficas de usuario (GUI's) para estaciones de trabajo. Una GUI es en pocas palabras una interfaz usuario / computadora que se ejecuta en modo grfico. X- Windows para Linux y para todos los sistemas ms basados es UNIX lo que MS Windows es para los sistemas basados en DOS. Con una gran diferencia, que X- Windows es un estndar para los sistemas de ventanas basados en UNIX. Esta estandarizacin supone que cualquier interfaz GUI puede ser ejecutada en cualquier computadora e incluso en varias a la vez. Ms informacin en [SHV+93]. El sistema X Windows se encarga de mostrar la informacin grfica, est construido con arquitectura cliente-servidor y es una capa totalmente independiente del Sistema Operativo. Cuando instalemos en una mquina el sistema X Windows se instalarn tres componentes: El servidor X: es el servidor grfico. El display manager: se encarga del login grfico. El cliente X (o Windows manager): es el cliente grfico.
6 Gestores de ventanas: clientes de x11 Un gestor de ventanas no es otra cosa que el conjunto de programas, ventanas, funcionalidades que hacen posible que el usuario pueda interactuar con el sistema de forma grfica y no en modo texto.
Para usar un gestor de ventanas, hay que tener configurado un servidor X. Tambin hay que decir que el gestor de ventanas utilizado es totalmente independiente del servidor X utilizado.
Gestor de ventanas | | Cliente X | | Xlib | | Servidor X | | Sistema operativo
Al contrario que en otros sistemas operativos, en Linux no es necesario utilizar un servidor X - gestor de ventanas para usar el sistema. El sistema operativo y el conjunto servidor X - gestor de ventanas usado, son cosas totalmente diferentes, independientes entre s. Es ms, existen usuarios que trabajan en modo texto sin ningn problema y sin usar un interfaz grfico.
Existen numerosos y variados gestores de ventanas para Linux, unos mejores y otros ms desarrollados y estables. Es el usuario el que tiene que decidir que gestor satisface mejor sus necesidades, pudiendo incluso tener ms de uno instalado. Para aclarar un poco las cosas, podramos decir que, si un ordenador es usado por varios usuarios, todos utilizaran el mismo servidor X pero no necesariamente el mismo gestor de ventanas.
7 Procesos de Linux: tipos y estado Interactivos (primer o segundo plano): un proceso que corre en primer plano ("fg" de foreground) normalmente es aqul que introducimos por teclado y podemos ver por pantalla en una ventana de terminal. Una consola concreta est bloqueada cuando un proceso est en primer plano, mientras que si est en segundo plano la consola est libre y podemos teclear comandos en ella mientras se sigue ejecutando el proceso en segundo plano. Un proceso ejecutndose en primer plano puede ser cancelado con Ctrl+C, en cambio para cancelar un proceso en segundo plano ser necesario utilizar el comando kill.
- Encolados o batch
- Demonios (daemons): son procesos que se ejecutan en segundo plano pero no interactivos. Son programas que se encargan de gestionar y administrar el sistema, de forma transparente para el usuario (crond, atd, pppd, ...). Hay una cola sencilla de procesos. Cada entrada de la cola esun puntero a un proceso en particular. Cuando un proceso se interrumpe, se le pasa a la cola de procesos en espera. Por otra parte, si un proceso termina o se abandona, se le descarta del sistema (sale del sistema). En cualquier caso, el distribuidor selecciona entonces un proceso de la cola para ejecutarlo. Seales entre procesos Las seales de Unix no son ms que unos mecanismos que permiten informar a los procesos de eventos que han sido provocados, por ellos mismos o por otros procesos. Es comparable con la gestin de interrupciones lgicas. Cuando le llega una seal a un proceso el sistema interrumpe la ejecucin normal del proceso (o de cualquier funcin o llamada que este hubiera realizado) para ejecutar la funcin de desviacin. Las seales se representan mediante unas constantes definidas en el archivo de cabecera <signal.h y tienen el formato siguiente: SIGXXX. Las seales se pueden generar de varias maneras: Excepcin hardware Llamada al sistema kill Evento gestionado por el ncleo (alarmas) Interaccin del usuario y el terminal (Ctrl-z)
8 Tareas programadas Las tareas programadas en Linux se llevan a cabo con crontab. Podemos distinguir entre crontab, que sera el programa en s, y cron, que es el demonio encargado de ejecutar las tareas programadas. en principio, crontab viene instalado por defecto en las distros que he probado (Suse, Debian, RedHat,...) por lo que me saltar la parte de la instalacin. Antes de continuar, comentar que usar para desarrollar el ejercicio una shell, insistiendo en el mayor potencial que aporta sobre una GUI (Graphic User Interface). De todos modos, tambin tenis la posibilidad de usar aplicaciones grficas, por ejemplo, kron. Sobre el comando crontab, su sintaxis es la siguiente:SYNOPSIS crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } -l : muestra por pantalla las tareas programadas del usuario indicado con la opcin -u, o si se omite dicho parmetro, del usuario logueado en el sistema. -r: elimina las tareas del usuario indicado o del que est logueado. -e: edita el fichero en el que se indican las tareas a ejecutar
9 B).- Manejo del sistema de archivos, discos y otros dispositivos. Los sistemas de archivos soportados por Linux Linux soporta una gran cantidad de tipos diferentes de sistemas de archivos. Para nuestros propsitos los ms importantes son: minix El ms antiguo y supuestamente el ms fiable, pero muy limitado en caractersticas (algunas marcas de tiempo se pierden, 30 caracteres de longitud mxima para los nombres de los archivos) y restringido en capacidad (como mucho 64 MB de tamao por sistema de archivos). xia Una versin modificada del sistema de archivos minix que eleva los lmites de nombres de archivos y tamao del sistema de archivos, pero por otro lado no introduce caractersticas nuevas. No es muy popular, pero se ha verificado que funciona muy bien. Ext3 El sistema de archivos ext3 posee todas las propiedades del sistema de archivos ext2. La diferencia es que se ha aadido una bitcora (journaling). Esto mejora el rendimiento y el tiempo de recuperacin en el caso de una cada del sistema. Se ha vuelto ms popular que el ext2. Ext2 El ms sistema de archivos nativo Linux que posee la mayor cantidad de caractersticas. Est diseado para ser compatible con diseos futuros, as que las nuevas versiones del cdigo del sistema de archivos no necesitarn rehacer los sistemas de archivos existentes. ext Una versin antigua de ext2 que no es compatible en el futuro. Casi nunca se utiliza en instalaciones nuevas, y la mayora de la gente que lo utilizaba han migrado sus sistemas de archivos al tipo ext2.
10 reiserfs Un sistema de archivos ms robusto. Se utiliza una bitcora que provoca que la prdida de datos sea menos frecuente. La bitcora es un mecanismo que lleva un registro por cada transaccin que se va a realizar, o que ha sido realizada. Esto permite al sistema de archivos reconstruirse por s slo fcilmente tras un dao ocasionado, por ejemplo, por cierres del sistema inadecuados. Adicionalmente, existe soporte para sistemas de archivos adicionales ajenos, para facilitar el intercambio de archivos con otros sistemas operativos. Estos sistemas de archivos ajenos funcionan exactamente como los propios, excepto que pueden carecer de caractersticas usuales UNIX, o tienen curiosas limitaciones, u otros inconvenientes. msdos Compatibilidad con el sistema de archivos FAT de MS-DOS (y OS/2 y Windows NT). umsdos Extiende el dispositivo de sistema de archivos ms dos en Linux para obtener nombres de archivo largos, propietarios, permisos, enlaces, y archivos de dispositivo. Esto permite que un sistema de archivos ms dos normal pueda utilizarse como si fuera de Linux, eliminando por tanto la necesidad de una particin independiente para Linux. vfat Esta es una extensin del sistema de archivos FAT conocida como FAT32. Soporta tamaos de discos mayores que FAT. La mayora de discos con MS Windows son vfat. iso9660 El sistema de archivos estndar del CD-ROM; la extensin popular Rock Ridge del estndar del CD-ROM que permite nombres de archivo ms largos se soporta de forma automtica. nfs Un sistema de archivos de red que permite compartir un sistema de archivos entre varios ordenadores para permitir fcil acceso a los archivos de todos ellos.
11 smbfs Un sistema de archivos que permite compartir un sistema de archivos con un ordenador MS Windows. Es compatible con los protocolos para compartir archivos de Windows. hpfs El sistema de archivos de OS/2. Los comandos mount y unmount Monta o muestra un listado de los dispositivos. Se puede utilizar el coman fdisk -l para visualizar los dispositivos existentes en las particiones o si es un pendrive ejecutar tail -f /var/log/syslog antes de montarlo. Si no tienes privilegios puedes usar el comando pmount en lugar del comando mount. mount -t [SistemaArchivo] /dev/[dispositivo] [punto_montaje] Monta el dispositivo umount /dev/[dispositivo] Desmonta un disco mount -t vfat/dev/hd0 /mnt/diskette mount -o loop -t iso9660 archivo.iso carpeta monta la imagen iso archivo.iso en carpeta mount -o loop -t vfat pp.img ~/aca/ monta una imagen *.img mount -a hace que todos los sistemas de ficheros mencionados en /etc/fstab se monten como se indique all. mount y umount mantienen una lista de los sistemas de ficheros montados actualmente en el fichero /etc/mtab. Si no se dan argumentos a mount, se muestra esta lista.
12 El archivo de configuracin: FSTAB File systems table) se encuentra comnmente en sistemas Unix (en el directorio /etc/) como parte de la configuracin del sistema. Lo ms destacado de este fichero es la lista de discos y particiones disponibles. En ella se indica como montar cada dispositivo y qu configuracin utilizar.
Particiones del disco duro Es realizar una divisin en l de modo que, a efectos prcticos, el sistema operativo crea que tienes varios discos duros, cuando en realidad slo hay un nico disco fsico dividido en varias partes. De este modo, se pueden modificar o borrar particiones sin afectar a los dems datos del disco. Las particiones bsicas se llaman primarias y puede haber a lo sumo 4. Esto puede ser suficiente para nuestros intereses. Como a veces no es as, se crearon las particiones extendidas que pueden albergar otras particiones dentro, llamadas lgicas. Los sistemas de archivos indican el modo en que se gestionan los archivos dentro de las particiones. Segn su complejidad tienen caractersticas como previsin de apagones, posibilidad de recuperar datos, indexacin para bsquedas rpidas, reduccin de la fragmentacin para agilizar la lectura de los datos, etc. Hay varios tipos, normalmente ligados a sistemas operativos concretos. Formatear discos Una particin tiene que tener un sistema de archivos. Linux sabe cmo usar varios sistemas de archivos. Hay Ext3, Ext2, ReiserFs y por los ms experimentados el XFS y JFS. Ext2 es til como un formato de almacenamiento en vista de que hay una interprete disponible para Windows para intercambiar datos. [Linux puede leer y escribir en sistemas FAT.] Para uso normal recomendamos el sistema de archivos ext3, que es la sistema de archivos pre-seleccionada para sidux, que es bien mantenida. Formatear Despus de cerrar el cfdisk regresamos a la consola. Para formatear, tiene que ser raz (root). Para formatear la particin root / y/o home, en este ejemplo hdb1, entramos: (si est en una instalacin sobre el DD tiene que entrar el clave de raz (root) aqu):
13 Su mkfs -t ext3 /dev/hdb1 Le har una pregunta, que se contesta con yes si est seguro que ha escogido la particin correcta. Cuando termina el comando, le dar una aviso, que el formateo ext3 fue exitosamente escrito al disco. Si no veas eso, probablemente algo fue malo en el particionamiento con cfdisk, o el hdb1 no es una particin de Linux. En este caso, puede chequear con: fdisk -l /dev/hdb Si algo es equivocado, quizs tendrs que particionar de nueva. Si fue exitoso el formateo, repita el mismo procedimiento para la particin de /home, si deseas una separado. ltimamente, formateamos la particin de intercambio (swap), en este ejemplo, el hdb3: mkswap /dev/hdb3 Despus de eso: swapon /dev/hdb3 Entonces verificamos, si el swap est reconocido, entrando en una consola: swapon -s y el swap nuevamente montado debe ser reconocido ahora, en nuestro caso como:
14 Asignacin de sistema de archivo Un sistema de archivo est diseado para el almacenamiento de archivos en una unidad de disco. Dependen de un gestor de archivos para ser manipulados, ya que sin este no se pueden ejecutar rdenes que interacten con los archivos que contiene. Est conformado sector de almacenamiento de aprox. 512 bytes de tamao. Se encarga de determinar que sectores utilizar y de que forma hacerlo que el almacenado de informacin. Esta organizacin se visualiza como archivos y carpetas para hacerlo fcil de usar y entender para el usuario final. Mantener un sistema de archivos (o File System en ingls) a pleno funcionamiento tiene como resultado un sistema eficiente y sin problemas. Los problemas que pueden afectar a la integridad del sistema de archivos pueden ser variados, pero cualquiera sea este tambin hay formas de solucionarlo. Integridad de sistema de fichero Organizacin lgica de un dispositivo que nos permite almacenar y recuperar informacin en forma de fichero. Existen diversos tipos de sistemas de ficheros, es decir diferentes formas de organizar la informacin en un dispositivo, normalmente discos. Entre los ms habituales tenemos: Ext2, ext3 Es el sistema de ficheros nativo de Linux. Se organiza en un sper bloque, i-nodos y rea de datos. Este tipo de sistema de ficheros admite caractersticas multiusuario para indicar los permisos y la propiedad de ficheros y directorios. vfat 12, 16 y 32 Es el sistema de ficheros usados por la gama baja de las plataformas win32. No admite caractersticas multiusuario como propiedad de ficheros. Estos tipos de sistemas de ficheros se basan en un directorio y una tabla de localizacin que dependiendo del tamao de cada elemento se denomina FAT 12, 16 o 32. Linux los admite sin ningn problema, aunque siempre es preferible usar ext2. iso9660Es el sistema de ficheros propio de los CDROM. msdos Anlogo a los sistemas FAT, aunque slo admite ficheros con nombre 8+3.
15 C).- Configuracin y administracin del sistema operativo Linux. Instalacin del sistema operativo Linux Paso 1: Crear una nueva mquina virtual dentro de VMWare. Se elige la configuracin tpica para evitar problemas. Se asignar automticamente 2Gb de espacio en disco para grabar todos los componentes del sistema operativo. Paso 2: En la barra de herramientas pulsamos la tecla de play para activar la mquina virtual. Previamente a este paso deberemos haber insertado el CD de instalacin del nuevo S.O. en el lector ya que ser lo primero que haga cuando pulsemos dicho botn. Paso 3: Al pulsar el botn del paso 2 veremos que se carga en primer lugar un cargado de sistemas del propio VMware para posteriormente empezar la instalacin del S.O. En nuestro caso hemos elegido Mandrake 9.1 sobre Windows XP. A partir de ahora veremos los pasos de instalacin de este sistema operativo ya que la instalacin en VMware no contendr ms pasos adicionales. Paso 4 (Mandrake): En la primera pantalla elegiremos el idioma en que se mostrar el S.O. En nuestro caso, espaol, por supuesto. Paso 5 (Mandrake): La pantalla de la licencia es bastante conocida. Ms vale que digas que aceptas, de lo contrario ni instalacin ni nada. Paso 6 (Mandrake): Seleccionamos el tipo de ratn que tenemos. En la siguiente pantalla te pedir que lo pruebes as es que si tienes uno con rueda elige el que yo he puesto y entonces te funcionar la ruedecita. Paso 7 (Mandrake): Despus de seleccionar el tipo de teclado, por supuesto, espaol, nos pedir que elijamos un login para el administrador de seguridad y el nivel de seguridad que queremos en nuestro sistema. Paso 8 (Mandrake): Acto seguido nos pedir que elijamos o bien se usa todo el espacio libre que encuentre en la particin donde se instala el S.O., o bien ejecutamos su programa para particionar el disco y elegir una particin donde instalarlo. En nuestro caso, y como es una simulacin, hemos elegido usar el espacio libre, que ser como mucho de 2Gb segn hayamos configurado la virtual machine en su creacin (Pasos 1 y 2) Paso 9 (Mandrake): Llegamos al punto donde se nos pide que elijamos el modo en que va a funcionar este sistema operativo. Es decir, dependiendo de las opciones elegidas se instalarn ms o menos paquetes en la instalacin del S.O. Nosotros hemos elegido que funcione como un servidor para tener ms funcionalidad y control en el sistema. Paso 10 (Mandrake): Con todo lo dicho anteriormente llegamos al punto de la instalacin. Aqu es donde empieza la instalacin del nuevo S.O. Paso 11 (Mandrake): En este paso nos pedir que insertemos el CD3 llamado
16 "Internacionalizacin". Si no poseemos dicho CD, mi caso, por ejemplo, pulsamos "Cancelar" y entonces nos pedir el login y pass del administrador (root) Paso 12 (Mandrake): Una vez introducido el login y pass del root, nos pedir que al menos creemos un usuario con su nombre, login, pass y el icono con el que se mostrar. Paso 13 (Mandrake): En este paso da la posibilidad de iniciar siempre la sesin con un usuario y con un entorno grfico predefinido. Evidentemente le decimos que no. Paso 14 (Mandrake): Este paso es como un resumen de cmo va a quedar nuestro S.O. una vez que hemos elegido todas sus caractersticas a lo largo de la instalacin. Nos ofrece la posibilidad de cambiar algunas caractersticas del hardware del que disponemos. Paso 15 (Mandrake): Una vez configurados todos los parmetros se reiniciar y cargar el nuevo S.O. que se ha instalado. Instalacin de aplicaciones bajo Linux Os paquetes son a Linux como los .exe son a Windows. Estos son sumamente fciles de instalar en la mayora de casos, una vez que los enlaces dados como "Prerrequisitos" hayan sido realizados. Los paquetes se presentan con las extensiones .rpm (para "Red-hat Package Management") en las distribuciones Mandrake, RedHat, Fedora Core y Suse, bajo la forma .deb para Deban, Ubuntu etc... y bajo la forma .tgz para Slackware.
Se instalan con el comando rpm -ivh programme.rpm o dpkg -i programme.deb o incluso installpkg programme.tgz Sin embargo varios problemas pueden presentarse: el paquete que se desea instalar (programa A) necesita la instalacin de otro programa (programa_B) antes que nuestro programa A: har falta entonces ir a buscar el paquete del programa para instalarlo, pero nuevamente ste puede necesitar de la presencia de un programa, y as sucesivamente... Son las denominadas dependencias, y esto puede volverse rpidamente muy complicado si el programa A depende del prog_a, prog_b, prog_c y prog_d y a su vez cada uno de ellos depende igualmente de una decena de programas para simplificar la vida del usuario, la mayora de las grandes distribuciones modernas integran un sistema de gestin de paquetes, que tendr por rol (entre otros) gestionar las dependencias en lugar del usuario. As, la instalacin del programa A se har con el llamado de un comando: "instale-me programa A", y la herramienta de gestin ir a buscar en los sitios web previamente definidos el programa_A, verificar si el programa_A depende de otros paquetes, y si es el caso, los descargar e instalar
17 en el orden correcto: programa_C, luego el programa_B que depende de C, luego el programme_A que dependa de B. Estas herramientas varian de una distribucin a otra, pero obedecen a algunas generalidades de funcionamiento Administradores de inicio Lilo Es un gestor de arranque que permite elegir, entre sistemas operativos Linux y otras plataformas, con cual se ha de trabajar al momento de iniciar un equipo con ms de un sistema operativo disponible. Fue desarrollado inicialmente por Werner Almesberger, actualmente est a cargo de John Coffman. LILO funciona en una variedad de sistemas de archivos y puede arrancar un sistema operativo desde el disco duro o desde un disco flexible externo . LILO permite seleccionar entre 16 imgenes en el arranque. LILO puede instalarse tambin en elmaster boot record (MBR). Al iniciar el sistema LILO solamente puede acceder a los drivers de la BIOS para acceder al disco duro. Por esta razn en BIOS antiguas el rea de acceso est limitada a los cilindros numerados de 0 a 1023 de los dos primeros discos duros. En BIOS posteriores LILO puede utilizar sistemas de acceso de 32 bits permitindole acceder a toda el rea del disco duro. En las primeras distribuciones de Linux, LILO era el gestor de facto utilizado para arrancar el sistema. En la actualidad es una segunda opcin en favor del gestor de arranque GRUB. Loadlin Otra forma de cargar Linux es desde DOS o Windows 9x, donde el ncleo de Linux reemplaza completamente la copia de funcionamiento de estos sistemas operativos. Esto puede ser til en el caso de hardware que necesita ser conectado a travs del software y la configuracin de estos programas slo est disponible para DOS y no para Linux, debido a cuestiones de secretos industriales y cdigo propietario. Sin embargo, esta tediosa forma de arranque ya no es necesaria en la actualidad ya que Linux tiene drivers para multitud de dispositivos hardware. Aun as, esto era muy til en el pasado. Otro caso es cuando Linux se encuentra en un dispositivo que el BIOS no lo tiene disponible para el arranque.
18 Configuracin del sistema operativo Linux Abrir una cuenta de usuario para usar el sistema. El usuario "root" solo se debe utilizar para tareas de administracin del sistema Hacer funcionar el sistema de ventanas X-Windows. Mucho ms cmodo utilizar el sistema en modo grafico que en modo texto, no? Configurar tu conexin a Internet. Instalar programas que no vengan con la distribucin Administracin del sistema operativo Linux La administracin de bajo nivel suele ser mucho ms dura, pero sabemos qu estamos haciendo y dnde podemos ver los resultados, adems de que nos aporta muchos conocimientos extra sobre las diferentes tecnologas utilizadas. Las distribuciones escogidas han sido: Debian GNU/Linux Etch (4.0), y Fedora Core 7 (basada en Red Hat), utilizadas en el momento de revisar este documento (la primera edicin a finalesdel 2003 estaba basada en Debian Gnu/Linux Woody 3.0 y Red Hat 9). La distribucin Deban es un paradigma dentro del movimiento Open Source, por no pertenecer a ninguna empresa y estar confeccionada slo por las aportaciones de los voluntarios distribuidos por todo el mundo. Debian, adems, integra exclusivamente software libre (pueden aadirse otros aparte). Fedora Core por otra parte, es la distribucin que cuenta con el soporte comunitario amplio, y es base de las distribuciones de una de las empresas ms solventes en el panorama comercial, Red Hat, y por eso sea quizs la que otorgue ms soporte a nivel empresarial (mediante servicios de pago). En Debian y Fedora, el soporte depende de los voluntarios y delconocimiento compartido de los usuarios. Siendo la administracin de sistemas un campo tan amplio, este manual slo pretende introducirnos en este apasionante (y cmo no, tambin a veces frustrante) mundo. Veremos algunas de las tareas tpicas, y cmo tratar las problemticas; pero la administracin es un campo que se aprende da a da, con el trabajo diario. Y desde aqu advertimos de que este manual es un trabajo abierto, que con sus aciertos y los ms que probables errores, se puede ver complementado con los comentarios de sus (sufridores) usuarios. De modo que son bienvenidos cualquier tipo de comentarios y sugerencias de mejora de los materiales.
19 Administracin de usuarios y grupos El control de los usuarios y grupos es un elemento clave en la administracin de sistemas de Red Hat Enterprise Linux. Los Usuarios pueden ser gente real, es decir, cuentas ligadas a un usuario fsico en particular o cuentas que existen para ser usadas por aplicaciones especficas. Los Grupos son expresiones lgicas de organizacin, reuniendo usuarios para un propsito comn. Los usuarios dentro de un mismo grupo pueden leer, escribir o ejecutar archivos que pertenecen a ese grupo. Cada usuario y grupo tiene un nmero de identificacin nico llamado identificador de usuario (UID) y un identificador de grupo (GID) respectivamente. Un usuario que crea un archivo se convierte en el propietario y el propietario de grupo para ese archivo. Al archivo tambin se le asignan permisos separados de lectura, escritura y ejecucin para el propietario del archivo, para el grupo y para cualquier otro usuario. Solamente el superusuario (root) puede cambiar el propietario de un archivo, y los permisos de acceso se pueden cambiar tanto por el superusuario como por el creador del archivo. Red Hat Enterprise Linux soporta listas de control de acceso (ACLs) para archivos y directorios lo que permite colocar permisos para usuarios especficos adems del creador. Para ms informacin sobre el uso de ACLs, consulte el captulo llamado Listas de Control de Acceso en el Manual de administracin del sistema de Red Hat Enterprise Linux. Una de las tareas ms importantes de cualquier administrador del sistema, es la de administrar adecuadamente usuarios y grupos, as como asignar y revocar permisos. Para una vista detallada de las estrategias para la administracin de usuarios y grupos, consulte el captulo titulado Administracin de cuentas de usuarios y acceso a recursos en la gua Introduccin a la administracin de sistemas de Red Hat Enterprise Linux.
20 Permisos de archivos y de directorios En Linux, todo archivo y directorio tiene tres niveles de permisos de acceso: los que se aplican al propietario del archivo, los que se aplican al grupo que tiene el archivo y los que se aplican a todos los usuarios del sistema. Podemos ver los permisos cuando listamos un directorio con ls -l: $> ls -l -rwxrwxr-- 1 sergio ventas 9090 sep 9 14:10 presentacion -rw-rw-r-- 1 sergio sergio 2825990 sep 7 16:36 reporte1 drwxr-xr-x 2 sergio sergio 4096 ago 27 11:41 videos Veamos por partes el listado, tomando como ejemplo la primera lnea. La primera columna (-rwxrwxr--) es el tipo de archivo y sus permisos, la siguiente columna (1) es el nmero de enlaces al archivo, la tercera columna (sergio) representa al propietario del archivo, la cuarta columna (ventas) representa al grupo al que pertence al archivo y las siguientes son el tamao, la fecha y hora de ltima modificacin y por ltimo el nombre delarchivo o directorio. Sistemas de impresoras La forma ms simple (con mucho) de imprimir en el sistema operativo Linux es enviar el fichero a ser impreso directamente al dispositivo de impresin. Una manera de hacer esto es usar el comando cat. Como usuario root, uno puede hacer lo siguiente: # cat tesis.txt > /dev/lp En este caso, /dev/lp es un enlace simblico al verdadero dispositivo de impresin (una matricial, lser, tipogrfica o plotter). Mira la pgina del man ln(1) para ms informacin acerca de enlaces simblicos. Para el propsito de la seguridad, slo el usuario root y los usuarios de su mismo grupo como el demonio de impresin son capaces de escribir directamente a la impresora. Es por esto por lo que se tienen que usar comandos como lpr, lprm y lpq para acceder a la impresora. Por esto, los usuarios tienen que usar lpr para imprimir un fichero. El comando lpr es responsable de preocuparse por el trabajo inicial para imprimir un fichero, pasando entonces el control a otro programa, lpd, el demonio de las impresoras de lneas.
21 Mantenimiento del sistema: seguridad La tarea mnima de mantenimiento es comprobar regularmente el sistema y los ficheros de registro de cada aplicacin buscando condiciones de error y eventos inusuales. Por lo general, es posible hacer esto escribiendo un par de scripts de shell y ejecutndolos peridicamente mediante la orden cron. Se podr encontrar algunos de estos scripts en distribucines fuente de algunas aplicaciones importantes como inn o C News. Luego de obtenerlos, slo se tendr que retocarlos para adecuarlos a nuestras necesidades y preferencias. La salida de cualquiera de los trabajos de nuestro cron, se debera enviar a una cuenta de administracin. Por defecto, muchas aplicaciones enviaran informes de errores, estadsticas de uso, o resmenes del fichero de registro a la cuenta de root. Esto solo tiene sentido si se ingresa al sistema como root frecuentemente. Una idea mucho mejor es redirigir el correo de root a nuestra cuenta personal, estableciendo un alias de correo como se describe en Captulo 19 y en Captulo 18. De todos modos, por muy cuidadoso que sea configurando su mquina, la ley de Murphy garantiza que surgir algn problema en el futuro. Por lo tanto, el mantenimiento de un sistema implica tambin estar disponible para quejas. Generalmente la gente espera que se pueda contactar con el administrador del sistema al menos por correo electrnico, como root. Sin embargo, existen otras denominaciones para direcciones de correo usadas comnmente para contactar a los posibles encargados de la administracin de respectivos servicios del sistema. Por ejemplo, las quejas sobre el mal funcionamiento del correo se dirigirn generalmente al postmaster (encargado del correo). Del mismo modo, los problemas con el sistema de noticias pueden ser comunicados a newsmaster o al usenet. El correo al hostmaster se debera redirigir a la persona encargada de los servicios bsicos de red del nodo, y del servicio de nombres DNS si esta corriendo un servidor de nombres.
22 Comunicacin entre usuarios Las comunicaciones entre usuarios del sistema operativo Linux son de una gran importancia, ya que permite al sper usuario avisar a los usuarios de los cambios que se produzcan en el sistema, nuevos usuarios, nuevas normas, apagado del sistema, noticias, etc. Pero tambin se utilizan para comunicarse entre los usuarios. Comandos write Comunicacin unidireccional con otro usuario que est en el sistema en ese momento. Permite que un usuario enve un mensaje a un terminal. Sintaxis: write nombre usuario < fichero mensaje O bien write nombre usuario Escribir el mensaje CTRL+D para finalizar el mensaje En lugar del nombre de usuario podramos poner el nombre del terminal (tty). Para que el usuario o terminal puedan recibir mensajes tendremos que haber ejecutado la orden: mesg y. mesg Controla la recepcin de mensajes desde otros usuarios que estn conectados al sistema. Permite o impide que otros usuarios enven mensajes a nuestro usuario o terminal. Sintaxis: mesg [y|n] Opciones y (yes) permite recibir mensajes.
23 N (not) no permite recibir mensajes. Echo Comunicacin unidireccional con otro usuario que est en el sistema en ese momento. Bsicamente realiza la misma funcin que el write pero utilizando un mecanismo diferente. Sintaxis: Echo hola que tal >/dev/ttyp3 wall Comunicacin unidireccional con todos los usuarios que estn conectados al sistema en ese momento. Se utiliza para informar a todos los usuarios sobre algn tema que les afecte, por ejemplo, avisar que vamos a apagar el sistema. Normalmente este comando es utilizado por administrador del sistema. Sintaxis: wall ficheromensaje o bien wall Escribir el mensaje CTRL+D talk Comunicacin bidireccional interactiva con otro usuario que est conectado al sistema. Se utiliza para la comunicacin bidireccional entre dos usuarios. La orden talk avisa al segundo usuario que el primer usuario quiere hablar con l. Esta orden indica a la otra persona qu debe teclear para inicializar la sesin. Cuando se establece la sesin, cada persona usa una ventana independiente. Cuando la primera persona escribe la informacin en la ventana susperior, aparece en la ventana inferior de la pantalla de la segunda persona, y viceversa. Adems, cada vez que se pulsa una tecla, sta aparece en ambas ventanas, por tanto, cada vez que escribe una persona, la otra ve la informacin. Sintaxis: talk nombreusuario
24 motd Significa message of the day (mensaje del da) y es un buen mtodo para pasar informacin a cualquier usuario que acceda al sistema en un determinado da. En realidad motd es un archivo cuyo contenido aparece en la pantalla al acceder al sistema. Este archivo se guarda en el directorio /etc y se llama motd (/etc/motd). El archivo /etc/issue contiene el mensaje que aparece cuando se inicia una sesin en el sistema. Despus del aviso, la sesin solicita el nombre del usuario y la contrasea. Este fichero podemos editarlo y poner cualquier mensaje o informacin que queramos que aparezca cuando se conecten los usuarios. Mail La orden mail se utiliza para el correo electrnico. El correo electrnico nos permite enviar un mensaje sin que el usuario este conectado al sistema. El sistema crea un buzn de correo para cada usuario y cuando enviamos un mensaje a un usuario se almacena en su buzn. Cuando se conecta el usuario, si tiene correo el sistema le avisa con el mensaje You have mail y entonces el usuario puede leerlo. La orden mail sirve tanto para enviar un mensaje a uno o varios usuarios, como para leer los mensajes recibidos. La orden mail seguida del nombre de uno o varios usuarios permite enviar correo a los buzones de los usuarios especificados. Una vez pulsada la tecla <Return>, la orden mail acepta la introduccin de lneas de correo hasta que se pulse la combinacin de teclas CTRL+D; momento en que procede a su envo. Opciones: -e Hace que mail devuelva un 0 si el buzn est vaco y un 1 en caso contrario. -p Imprime todo el correo de manera continuada. -ffichero Indica al mail que tome los mensajes del fichero especificado. -q Permite terminar el correo mediante una interrupcin. -h Presenta solo las cabeceras (Subject). -r Cambia el orden de impresin de forma que el 1 en entrar sea el 1 en salir.
25 D).-Administracin de aplicaciones en entornos multiusuarios bajo Linux Cdigo reentrante Cdigo reentrante es aquel que funciona correctamente si 2 ms hebras lo ejecutan simultneamente. Se dice tambin que es thread-safe .Para que sea reentrante no debe tenerdatos locales o estticos.El SO debe ser cdigo reentrante.P.ej. Linux no es 100% reentrante. MS-DOS y la BIOS no son reentrant Zona de datos en memoria Se alojan los datos estticos de nuestro programa, es decir, las variables globales del mismo. Suele ser un espacio de memoria limitado, por lo que el nmero y tamao de estas variables tambin est limitado. Forma junto con la zona de cdigo la parte esttica de la memoria.
26 Variables de entorno en aplicaciones de usuarios Una variable de entorno es un objeto designado para contener informacin usada por una o ms aplicaciones. Variable Descripcin PATH Esta variable contiene una lista de directorios separados por ":" en la cual el sistema buscar los archivos ejecutables. Al introducir el nombre de un ejecutable (como ls, rc-update o emerge) que no se encuentre en un de los directorios listados, el sistema no lo encontrar, (a menos que se introduzca la ruta completa, por ejemplo: /bin/ls). ROOTPATH Esta variable tiene la misma funcin que PATH, pero nicamente contiene los directorios que el sistema debe revisar cuando el usuario root introduce un comando. LDPATH Esta variable contiene una lista de directorios separados por ":" en la cual el enlazador dinmico busca para encontrar una librera. MANPATH Esta variable contiene una lista de directorios separados por ":" en la cual el comando man busca las pginas de manual. INFODIR Esta variable contiene una lista de directorios separados por ":" en la cual el comando info busca las pginas info. PAGER Esta variable contiene la ruta hacia el programa utilizado para mostrar el contenido de los ficheros (como less o more). EDITOR Esta variable contiene la ruta hacia el programa utilizado para modificar el contenido de los archivos (como nano o vi). KDEDIRS Esta variable contiene una lista de directorios separados por ":" los cuales contienen material especfico de KDE. CONFIG_PROTEC T Esta variable una lista de directorios separados por espacio los cuales deben ser protegidos por Portage durante las actualizaciones. CONFIG_PROTEC T_MASK Esta variable una lista de directorios separados por espacio los cuales no deben ser protegidos por Portage durante las actualizaciones.
27 E).-Gestin de las unidades funcionales Proceso del sistema operativo Procesos, estados, operaciones. El hecho de que el sistema operativo sea multitarea implica que podamos ejecutar ms de un programa a la vez. Un proceso no es ms que un programa o aplicacin cargado en memoria y ejecutndose. Aunque nuestro ordenador slo disponga de una CPU, el sistema operativo se encarga de repartir el tiempo de procesamiento de la misma para que varios procesos puedan ir ejecutando sus operaciones, dando la sensacin de una ejecucin paralela.
Para identificar de forma inequvoca cada proceso, el ncleo del sistema les asigna un nmero llamado PID (Process IDentification). Aunque podramos pensar que slo con el nombre ya tendramos suficiente para identificarlo, es imprescindible tener el PID ya que podemos ejecutar un proceso tantas veces como queramos (tendramos varias instancias del mismo proceso, pero cada una con un PID distinto). Si ejecutamos la instruccin Top o Gtop en la consola de Linux nos mostrar el siguiente el siguiente detalle: El nmero de identificador de Proceso (PID), El usuario que lo est ejecutando (USER), La prioridad del proceso (PRI), El valor nice (NI), El tamao del proceso (SIZE), El tamao total del proceso junto con los datos que maneja (RSS), El tamao usado por el proceso en la memoria (SHARE), El estado del proceso(STAT), El porcentaje de CPU ( %CPU) y de memoria (%MEM) El tiempo de ejecucin (TIME) y el nombre del proceso (COMMAND).
28 Procesos concurrentes, comunicacin entre procesos Si ejecutamos la instruccin Top o Gtop en la consola de Linux nos mostrar el siguiente el siguiente detalle: El nmero de identificador de Proceso (PID), El usuario que lo est ejecutando (USER), La prioridad del proceso (PRI), El valor nice (NI), El tamao del proceso (SIZE), El tamao total del proceso junto con los datos que maneja (RSS), El tamao usado por el proceso en la memoria (SHARE), El estado del proceso(STAT), El porcentaje de CPU ( %CPU) y de memoria (%MEM) El tiempo de ejecucin (TIME) y el nombre del proceso (COMMAND). Gestin de la memoria Paginacin El trmino memoria virtual se asocia normalmente con sistemas que emplean paginacin, aunque tambin se puede usar memoria virtual basada en la segmentacin. El uso de la paginacin en la memoria virtual fue presentado por primera vez en el computador Atlas. Cada proceso tiene su propia tabla de pginas y cuando carga todas sus pginas en la memoria principal, se crea y carga en la memoria principal una tabla de pginas. Cada entrada de la tabla de pginas contiene el nmero de marco de la pgina correspondiente en la memoria principal. Puesto que slo algunas de las pginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la pgina correspondiente est presente (P) en la memoria principal o no. Si el bit indica que la pgina est en la memoria, la entrada incluye tambin el nmero de marco para esa pgina. Otro bit de control necesario en la entrada de la tabla de pginas es el bit de modificacin (M), para indicar si el contenido de la pgina correspondiente se ha alterado desde que la pgina se carg en la memoria principal. Si no ha habido cambios, no es necesario escribir la pgina cuando sea sustituida en el marco que ocupa actualmente.
29 Segmentacin La segmentacin permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaos, incluso de forma dinmica. Las referencias a la memoria constan de una direccin de la forma (nmero de segmento, desplazamiento). Esta organizacin ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado: 1. Simplifica la gestin de estructuras de datos crecientes. Si el programador no conoce a priori cun larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaos de segmentos dinmicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandir o reducir el segmento cuando se necesite. 2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo. 3. Se presta a la comparticin entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos. 4. Se presta a la proteccin. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podr asignar los permisos de acceso de la forma adecuada.
30 Sistema de archivo Punto vista de usuario Este estndar del sistema de archivos Linux sigue el mismo principio bsico que la mayora de los sistemas de archivos UNIX siguen. Note, sin embargo que este estndar no intenta concordar en cada aspecto posible con alguna implementacin particular del sistema UNIX. De cualquier forma, muchos de los aspectos de este estndar estn basados en ideas encontradas en UNIX y sistemas similares a UNIX. Es posible despus de cuidadosa consideracin de otros factores, incluyendo: Prcticas comunes en la comunidad Linux. La implementacin de otras estructuras de sistemas de archivos. Los estndares aplicables. Punto vista sistemas operativos Un sistema de archivos son los mtodos y estructuras de datos que un sistema operativo utiliza para seguir la pista de los archivos de un disco o particin; es decir, es la manera en la que se organizan los archivos en el disco. El trmino tambin es utilizado para referirse a una particin o disco que se est utilizando para almacenamiento, o el tipo del sistema de archivos que utiliza. As uno puede decir tengo dos sistemas de archivo refirindose a que tiene dos particiones en las que almacenar archivos, o que uno utiliza el sistema de archivos extendido, refirindose al tipo del sistema de archivos. La diferencia entre un disco o particin y el sistema de archivos que contiene es importante. Unos pocos programas (incluyendo, razonablemente, aquellos que crean sistemas de archivos) trabajan directamente en los sectores crudos del disco o particin; si hay un archivo de sistema existente all ser destruido o corrompido severamente. La mayora de programas trabajan sobre un sistema de archivos, y por lo tanto no utilizarn una particin que no contenga uno (o que contenga uno del tipo equivocado).
31 Gestin de entrada/salida Hardware de entrada/salida Los dispositivos estn divididos en dos tipos: los dispositivos de carcter y los dispositivos de bloque. La diferencia es que los dispositivos de bloque tienen un bfer para las peticiones, por lo tanto pueden escoger en qu orden las van a responder. Esto es importante en el caso de los dispositivos de almacenamiento, donde es ms rpido leer o escribir sectores que estn cerca entre s, que aquellos que estn ms dispersos. Otra diferencia es que los dispositivos de bloque slo pueden aceptar bloques de entrada y de salida (cuyo tamao puede variar segn el dispositivo), en cambio los dispositivos de carcter pueden usar muchos o unos pocos bytes como ellos quieran. La mayora de los dispositivos del mundo son de carcter, porque no necesitan este tipo de buffering, y no operan con un tamao de bloque fijo. Se puede saber cundo un fichero de dispositivo es para un dispositivo de carcter o de bloque mirando el primer carcter de la salida de ls -l. Si es `b' entonces es un dispositivo de bloque, y si es `c' es un dispositivo de carcter. La controladora o adaptador de dispositivo es una tarjeta, por lo regular provista de un conector en el cual puede enchufarse un cable que lleva al dispositivo. Muchas controladoras pueden manejar dos, cuatro o incluso ocho dispositivos idnticos. Si la interfaz entre la controladora y el dispositivo es estndar, ya sea ANSI, IEEE o ISO oficial, o un estndar de facto, las compaas pueden fabricar controladores o dispositivos que se ajusten a esa interfaz. La tarea de la controladora consiste en convertir el flujo de bits en serie en un bloque de bytes y realizar una correccin de errores que sea necesaria. Software de entrada/salida La mayora del software de E/S est en el ncleo Sin embargo, tambin hay procedimientos de biblioteca que se ejecutan en modo usuario y que se encargan de realizar las llamadas al sistema (ej. read, printf, etc.) Normalmente preparan el entorno adecuado y a continuacin realizan la llamada al sistema de spooling Los dispositivos de uso exclusivo no se pueden dejar a cargo de programas de usuario (problema: monopolizacin) El sistema de spooling es una forma de manejar dispositivos dedicados en un sistema con multiprogramacin Hay un demonio y un directorio de spooling El demonio verifica peridicamente el directorio para saber si hay trabajos pendientes Las impresoras se manejan de esta manera.