Entrada/Salida Introduccin Hardware Caractersticas El sistema de Archivos Dispositivos de entrada-salida Redireccionamiento De Entrada / Salida Conclusin Introduccin LINUX es un sistema operativo, compatible con UNIX. Dos caractersticas muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningn tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene acompaado del cdigo fuente. El sistema lo forman el ncleo del sistema (kernel) mas un gran nmero de programas / libreras que hacen posible su utilizacin. El sistema ha sido diseado y programado por multitud de programadores alrededor del mundo. El ncleo del sistema sigue en continuo desarrollo bajo la coordinacin de Linus Torvalds, la persona de la que parti la idea de este proyecto, a principios de la dcada de los noventa. Da a da, ms y ms programas / aplicaciones estn disponibles para este sistema, y la calidad de los mismos aumenta de versin a versin. La gran mayora de los mismos vienen acompaados del cdigo fuente y se distribuyen gratuitamente bajo los trminos de licencia de la GNU Public License. En los ltimos tiempos, ciertas casas de software comercial han empezado a distribuir sus productos para Linux y la presencia del mismo en empresas aumenta rpidamente por la excelente relacin calidad-precio que se consigue con Linux. Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, tambin existen versiones para su utilizacin en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC. ir a pagina principal Hardware Linux puede ser utilizado sobre mltiples arquitecturas de ordenadores, (Digital, Solaris, ...) si bien en estas pginas revisaremos los parmetros esenciales de la ms tpica: intel386. Procesador
Es necesario un procesador Intel 386 o superior. Puede utilizar procesadores compatibles (p.ej. AMD) que dan las mismas prestaciones y son ms baratos. Hoy en da no encontrar ordenadores nuevos con menos de un Pentium o un K6. De este modo, cualquier procesador es suficientemente potente para Linux. En cuanto a los Megahercios, slo necesitar un modelo de gama alta si va a dedicar el equipo a un servidor. Memoria
Aunque con 8 megas es suficiente, le recomendamos emplear el mximo de memoria que pueda, especialmente si instala XWindows y aplicaciones ofimticas. Con 64 Megas obtendr buenos rendimientos. Disco Duro Linux acepta discos IDE y SCSI, que es tanto como decir que vale cualquier disco. Con un giga de disco es ms que suficiente para instalarlo, no obstante dado el precio actual de los discos le recomendamos adquirir ordenadores con al menos 8 gigas de disco. Otros dispositivos de almacenamiento Todas las distribuciones incorporan de forma automtica mdulos para gestionar disqueteras y unidades de CD-ROM. Adems, no tendr problemas para utilizar disquetes u otras particiones de disco en formato MS-DOS o Windows (FAT16, FAT32 y NT). No obstante, si desea emplear otros dispositivos menos comunes (unidades de CD de lectura/escritura, unidades ZIP, cintas) deber instalar explcitamente los mdulos necesarios. Si su distribucin no dispusiese de los mismos, puede descargrselos por Internet. Swap El espacio de Swap es una parte del disco duro que Linux emplea cuando la memoria principal RAM es insuficiente. Incluso si dispone de una memoria RAM amplia, el sistema puede necesitar espacio extra temporalmente. A la hora de instalar defina o bien el doble de su memoria principal o bien 128 megas como espacio de Swap. Mdem Como regla general, evite los mdem internos: actualmente la mayora son WinModem en mayor o menor medida. Esto significa que para funcionar deben consumir parte de la potencia de su PC y adems que slo funcionan con Windows. Le recomendamos que evite los winmodem incluso si va a utilizar Windows, a menos que tenga un verdadero problema de presupuesto. Los mdem externos no suelen dar problemas con Linux y, por otra parte, en caso de error de comunicaciones se pueden reiniciar fcilmente. Tarjetas de red En general, las tarjetas Ethernet no le darn problemas. Otros tipos de tarjetas tambin se encuentran soportadas, pero puede que su distribucin no instale automticamente los mdulos de control. Tarjeta Grfica Prcticamente todas las tarjetas grficas tradicionales sirven para Linux, aunque no todas las ms modernas disponen de un servidor X actualizado. En el peor de los casos deber configurar una tarjeta de ltima generacin como si fuese una simple SVGA. Consulte en XFree la disponibilidad de servidores X para su tarjeta. Impresoras La mayora de los programas en Linux generan sus listados o informes o bien como texto puro o bien como PostScript. (texto ASCII). As, todas las impresoras PostScript funcionan sin problemas con Linux. Para las restantes impresoras, existen conversores de PostScript al formato nativo de la impresora. Obviamente, no todas las impresoras estn contempladas, pero la mayora se ajusta a alguno de los estndares ms reconocidos (Epson, IBM, HP, ...) ir a pagina principal Caractersticas Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo tiempo. LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los programas que se estn utilizando en un momento dado sern ejecutados, siendo el sistema operativo el encargado de ceder tiempo de microprocesador a cada programa. Multiusuario: Muchos usuarios usando la misma mquina al mismo tiempo. Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, tambin existen versiones para su utilizacin en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC. Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible para Intel y SPARC. Funciona en modo protegido 386. Proteccin de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema. Carga de ejecutables por demanda: Linux slo lee del disco aquellas partes de un programa que estn siendo usadas actualmente. Poltica de copia en escritura para la comparticin de pginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la pgina (4Kb de memoria) se copia a otro lugar. Esta poltica de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria. Memoria virtual usando paginacin (sin intercambio de procesos completos) a disco: A una particin o un archivo en el sistema de archivos, o ambos, con la posibilidad de aadir ms reas de intercambio sobre la marcha Un total de 16 zonas de intercambio de 128Mb de tamao mximo pueden ser usadas en un momento dado con un lmite terico de 2Gb para intercambio. Este limite se puede aumentar fcilmente con el cambio de unas cuantas lneas en el cdigo fuente. La memoria se gestiona como un recurso unificado para los programas de usuario y para el cach de disco, de tal forma que toda la memoria libre puede ser usada para cach y sta puede a su vez ser reducida cuando se ejecuten grandes programas. Libreras compartidas de carga dinmica (DLL's) y libreras estticas. Se realizan volcados de estado (core dumps) para posibilitar los anlisis post- mortem, permitiendo el uso de depuradores sobre los programas no slo en ejecucin sino tambin tras abortar stos por cualquier motivo. Compatible con POSIX, System V y BSD a nivel fuente. Emulacin de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario. (emulacin : dispositivo, hardware, que se usa para trabajar como otro; una terminal) Todo el cdigo fuente est disponible, incluyendo el ncleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; adems todo ello se puede distribuir libremente. Hay algunos programas comerciales que estn siendo ofrecidos para Linux actualmente sin cdigo fuente, pero todo lo que ha sido gratuito sigue siendo gratuito. Control de tareas POSIX. Emulacin de 387 en el ncleo, de tal forma que los programas no tengan que hacer su propia emulacin matemtica. Cualquier mquina que ejecute Linux parecer dotada de coprocesador matemtico. Por supuesto, si el ordenador ya tiene una FPU (unidad de coma flotante), esta ser usada en lugar de la emulacin, pudiendo incluso compilar tu propio kernel sin la emulacin matemtica y conseguir un pequeo ahorro de memoria. Soporte para muchos teclados nacionales o adaptados y es bastante fcil aadir nuevos dinmicamente. Consolas virtuales mltiples: varias sesiones de login a travs de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinmicamente y puedes tener hasta 64. Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo tpicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud. Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS. Sistema de archivos de CD-ROM que lee todos los formatos estndar de CD- ROM. TCP/IP, incluyendo ftp, telnet, NFS, etc. Appletalk (construccin de una mquina para que funcione como otra). Software cliente y servidor Netware. ir a pagina principal El sistema de Archivos El sistema de archivos UNIX est caracterizado por: Una estructura jerrquica. Un tratamiento consistente de la informacin de los archivos. Proteccin de los archivos. Este estndar del sistema de archivos Linux sigue el mismo principio bsico que la mayora de los sistemas de archivos UNIX Definir dos categorizaciones ortogonales de archivos: Compartibles vs. no compartibles, y variables vs. estticos. La informacin compatible es aquella que puede ser compartida entre varias mquinas diferentes; la no compartible es aquella que debe ser local a una mquina particular. Por ejemplo. Los directorios hogar de los usuarios son compartibles, pero los archivos de bloqueo de dispositivo (lock files) son no compartibles. La informacin esttica incluye binarios, libreras, documentacin y todo aquello que no cambia sin la intervencin del administrador del sistema. La informacin variable es todo lo que cambia sin la intervencin del administrador. El entendimiento de estos principios bsicos ayudar a guiar la estructura, a lo largo de este documento, y en cualquier sistema de archivos bien planeado, esto brindar consistencia adicional. La distincin entre informacin compartible y no compartible es necesaria por varias razones: En un ambiente de red (i.e. ms de un host en un site), existe una buena cantidad de informacin que se puede compartir entre diferentes mquinas para ahorrar espacio y facilitar la tarea de administracin. La distincin "compatible" puede ser usada para soportar, por ejemplo: Una particin /usr (o componentes de /usr) montada (slo-lectura) a travs de la red (usando NFS). Una particin /usr (o componentes de /usr) montada desde medios de slo- lectura. Un CD-ROM puede ser considerado como un sistema de archivos slo-lectura compartido con otros sistemas Linux utilizando el sistema de correo como una red. El Directorio Raz bin Binarios de comandos esenciales
boot Archivos estticos de cargador de arranque(boot-loader)
dev Archivos de dispositivos
etc Configuracin del sistema local-mquina
home Directorios home de los usuarios
lib Libreras compartidas
mnt Punto de montaje de particiones temporales
root Directorio hogar del usuario root
sbin Binarios del sistema esenciales
tmp Archivos temporales
usr Segunda jerarqua mayor
var Informacin variable
Cada directorio listado ser discutido en detalle en una subseccin separada ms delante. /usr y /var, cada uno tiene en su propia seccin en este documento. La jerarqua /usr usr es la segunda mayor seccin del sistema de archivos. /usr es /informacin compartible, de slo-lectura, esto significa que /usr, debe ser compatible entre varias mquinas que corren Linux y no se debe escribir. Cualquier informacin que es local a una mquina o vara con el tiempo, se almacena en otro lugar. /usr --- Segundo mayor punto de montaje (permanente)
bin La mayora de los comandos de usuario
dict Listas de palabras
doc Documentacin miscelnea
etc Configuracin del Sistema (todo el site)
games Juegos y binarios educacionales
include Archivos header incluidos por programas C
info Directorio primario del sistema GNU Info
lib Libreras
local Jerarqua local (vaca justo despus de la instalacin principal)
man Manuales en lnea
sbir Binarios de Administracin del Sistema No-Vitales
share Informacin independiente de la arquitectura
src Cdigo fuente
La Jerarqua /var /var Informacin variable
adm Info administrativa del sistema (obsoleto). Enlace simblico hacia /var/log
catman Pginas del manual formateadas localmente
lib Informacin del estado de aplicaciones
local Informacin variable del software de /usr/local
lock Archivos de bloqueo
log Archivos de bitcora
named Archivos DNS, slo red
nis Archivos base de datos NIS
preserve Archivos almacenados despus de una falla de ex vi
run Archivos relevantes a procesos ejecutndose
spool Directorios de trabajos en fila para realizarse despus
tmp Archivos temporales, utilizado para mantener /tmp pequeo
/var contiene archivos con informacin variable. Esto incluye archivos y /directorios en fila de ejecucin, informacin de bitcora administrativa y /archivos temporales y transitorios. Algunas porciones de /var son no-compartibles entre diferentes sistemas. Por ejemplo, /var/log, /var/lock y /var/run. Otras porciones son compartibles, notablemente /var/spool/mail y /var/spool/news. /var se especifica aqu para hacer posible el montar /usr slo- lectura. /Todo aquello que alguna vez fue en /usr que es escrito durante la operacin /normal del sistema (pero no durante la instalacin y el mantenimiento del /software) debe ir en /var. Si /var no puede ser una participacin separada, es preferible mover /var fuera de la participacin raz pero dentro de la particin /usr (esto se hace algunas veces para reducir el tamao de la particin raz o cuando hay poco espacio en la particin raz). Como sea, /var no debe ser enlazada a /usr, porque hace que la separacin entre /usr y /var sea ms difcil y seguramente crear un conflicto de nombres, En vez enlace /var a / usr/var. ir a pagina principal Dispositivos de entrada-salida. En Linux las entradas / salidas sobre un dispositivo se hacen gracias a los archivos situados en el directorio /dev/. Cada uno de ellos se identifica por un nombre (por ejemplo, hdapara el primer disco duro del controlador IDE) pero sobre todo por dos nicos nmeros: mayor y menor. Estos archivos especiales son de dos tipos : caracteres (terminal, impresora, etc) obloques (disco por ejemplo). Es muy importante conocer estos archivos. Las diferentes distribuciones (Slackware, jurix, SLS, etc) crean estos archivos. Ciertas versiones pueden generar estos archivos de maneara incorrecta (Slackware). Igualmente, resulta intil crear los archivos necesarios para la utilizacin de dispositivos de un tipo dado si no se dispone de la tarjeta adecuada. Para crear un archivo especial, es suficiente la orden mknod Nom_Archivo Tipo Mayor Menor. Dentro del directorio /dev tambin existe un archivo de comandos llamado MAKEDEV, el cual permite crear archivos especiales sin utilizar directamente mknod. El sistema operativo maneja todas las operaciones de entrada-salida. La atencin de los dispositivos de entrada-salida requieren de mucho esfuerzo por parte de la computadora, por lo tanto se deben realizar de forma eficiente. Existen 3 tcnicas de atender los dispositivos de entrada-salida: Encuestas (Polling). Tcnica utilizada para dispositivos lentos. El dispositivo deber tener una bandera que indica si esta ocupado o listo, el procesador entrara en un bucle en el cual consultara ese bit cada cierto tiempo. El procesador se pasa mucho tiempo dentro de un bucle esperando que los dispositivos estn listos, por lo tanto, esta tcnica es ineficiente. Interrupciones. El procesador y el dispositivo realizan tareas simultneamente, cuando el dispositivo termino alguna tarea le avisa al procesador mediante una interrupcin. Este mtodo es eficiente. Acceso directo a memoria (DMA). Este mtodo se utiliza para aquellos dispositivos capaces de transmitir o recibir datos a alta velocidad, como por ejemplo los discos. El controlador del dispositivo transfiere bloques de datos desde su buffer a la memoria principal sin la intervencin del procesador. ir a pagina principal Redireccionamiento De Entrada / Salida Cualquier comando de UNIX necesita recibir informacin de algn "lugar" y enviar los resultados del procesamiento a algn "lugar", as como los mensajes de error. Estos "lugares" se llaman, respectivamente, STANDAR INPUT, STANDAR OUTPUT y STANDAR ERROR. El STANDAR INPUT se refiere al medio desde el cual el comando recibe la informacin. De forma similar, el STANDAR OUTPUT se refiere al lugar que el comando enva la salida. Cuando se redireccionan los datos el comando recibe o enva la informacin desde otra fuente. El STANDAR ERROR se refiere al medio al que se mandan los mensajes de los errores que se cometen al ejecutar un comando. Normalmente (aunque depende de cada comando), el standar input es el teclado, y el standar output y el standar error es la pantalla. Redireccionamiento De La Salida El smbolo para redireccionar la salida es: > y se utiliza de la siguiente forma:
comando > nombre_fichero Algunas Precauciones Que Se Deben Tener Al Redireccionar La Salida Veamos 2 problemas que pueden ocurrir si accidentalmente cometemos un error: A.- Redireccionar La Salida A Un Fichero Ya Existente
Cuando se redirecciona una salida, el sistema UNIX crea un fichero con el nombre especificado. Cuando el fichero no existe, al redireccionar la salida a l crea uno nuevo; pero si el fichero existe borra su contenido y reescribe encima. Afortunadamente, existe una manera de prevenir borrar ficheros de esta forma sin darnos cuenta, utilizando el comando:
set noclobber Si tecleamos este comando antes de redireccionar la salida, en el caso de que el fichero donde se enva la salida ya exista, aparecer en la pantalla el siguiente mensaje: nombre del fichero file exists y no "machacara" el contenido del fichero. El comando set noclobber evita que se : redireccione una salida a un fichero ya existente aada un fichero a otro que no existe. El comando slo es efectivo para la sesin en que se teclee. Si se quiere que permanezca de forma permanente, hay que incluir el comando set noclobber en el fichero .cshrc. del Home directory. Si en algn momento se quisiera quitar esta proteccin, hay que teclear >!. B.- Redireccionar La Salida A Un Fichero Utilizado Como Entrada. Veamos con un ejemplo lo que ocurre cuando se redirecciona la salida al fichero utilizado como entrada. %cat frutas pltano naranja manzana %sort frutas>frutas %cat frutas % Figura 7.2.
Observemos que cuando se ejecuta el comando sort el UNIX borra el contenido del fichero frutas y crea un fichero nuevo de nombre frutas, por lo que cuando va a ordenar alfabticamente el fichero frutas, y ste est vaco. Por lo tanto, hay que tener cuidado de no redireccionar la salida al fichero utilizado como entrada, pues se perdera la informacin. Aadir La Salida De Un Comando A Un Fichero Se puede aadir la salida de un comando al final de un fichero ya existente sin borrar su contenido. El smbolo que se utiliza para ello es >> ; se har de la siguiente forma:
comando>>nombre_fichero Redireccionamiento Del Standar Error Para redireccionar el standar output y el standar error a un fichero, se utilizan los smbolos >& de la forma siguiente:
comando >& nombre_fichero Para aadir la salida de un comando, as como los mensajes de error a un fichero, se utilizan los smbolos >>& de la siguiente manera: comando >>& nombre_fichero
Redireccionamiento De La Entrada El smbolo para redireccionar la entrada es < y se utiliza de la siguiente manera:
comando < nombre_fichero Si se quiere utilizar como entrada parte del contenido de un fichero, habra que poner en el fichero un "string", que puede ser cualquier smbolo excepto, zzFunyzz. Pipes: Transferencia De Datos El sistema UNIX permite transferir datos entre diferentes procesos (comandos). Este proceso se llama " piping", pues "pipe" es el nombre que se le da al smbolo utilizado para transferir datos.
El smbolo para "piping" es | y se utiliza de la siguiente manera:
comando_1 | comando_2 | comando_3 | ...... Es decir, el comando_2 utiliza como entrada los resultados obtenidos por el comando_1; la salida del comando_2 se utiliza como entrada del comando_3, y as sucesivamente. Utilizando pipes no es necesario utilizar ficheros temporales ni hacer pasos intermedios para obtener la informacin que se desea. Por ejemplo, si ponemos: who | sort | lpr entonces la lista de usuarios conectados al sistema se ordenan alfabticamente y se imprime (ordenada) por la impresora del sistema.
Filtros Un filtro es cualquier comando situado entre dos pipes y manipula los datos obtenidos por un comando previo antes de utilizarse por el comando situado a continuacin del filtro. Una lnea de comando puede contener varios filtros.
En el ejemplo: who | sort | lpr el comando sort acta como filtro.
Comando tee
Cuando despus de un pipe aparece el comando tee la redireccin de la salida la hace a dos sitios, a un fichero especificado y al standar output:
comando | comando | tee nombre_fichero | comando | ...... En el ejemplo: who | sort | tee listin | more la lista de usuarios ordenada alfabticamente, aparece por pantalla y se almacena en el fichero listin ir a pagina principal Conclusin LINUX puede emplearse en una gran cantidad de aplicaciones. Desde manejo de redes, pasando por desarrollo de software hasta llegar a ser una plataforma de trabajo para el usuario final. Es adems, una excelente alternativa de bajo costo frente a otros sistemas operativos de precio mas elevado. Soporta una amplia gama de programas incluyendo X-WINDOWS, Redes TCP/IP y juegos tan populares como DOOM. Tambin se encuentra aplicaciones para servidores de archivos ( File Servers ) , Web Servers, FTP y en desarrollo emuladores que permitirn correr aplicaciones DOS y WINDOWS sobre la plataforma LINUX . No existen muchas aplicaciones comerciales para LINUX, pero de todas maneras las grandes empresas se inclinan hacia este tipo de sistema operativo.