<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Los archivos especiales: modo bloque y caracter</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Guía de Referencia"><link rel="up" href="ext2fs.html" title="Capítulo 9. El sistema de archivos de Linux"><link rel="previous" href="ext2fs-pipe.html" title="Tuberías anónimas y tuberías nombradas"><link rel="next" href="ext2fs-ln-s.html" title="Los vínculos simbólicos y la limitación de los vínculos duros"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Los archivos especiales: modo bloque y caracter</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext2fs-pipe.html">Anterior</a> </td><th width="60%" align="center">Capítulo 9. El sistema de archivos de Linux</th><td width="20%" align="right"> <a accesskey="n" href="ext2fs-ln-s.html">Siguiente</a></td></tr></table><hr></div><div class="sect1" lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ext2fs-special"></a>Los archivos especiales: modo bloque y caracter</h2></div></div><div></div></div><p><a name="BId-ext2fs-pa45"></a>Como ya se mencionó, dichos archivos son archivos creados por el sistema, o bien representan periféricos en su máquina. También hemos mencionado que el contenido de los archivos en modo bloque<a class="indexterm" name="BId-ext2fs-it10"></a> está guardado en memoria mientras que el de los de modo caracter<a class="indexterm" name="BId-ext2fs-it20"></a> no lo está. Para ilustrar esto, inserte un disquete en la disquetera e ingrese el comando siguiente dos veces:</p><a name="BId-ext2fs-pl7"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ dd if=/dev/fd0 of=/dev/null</pre></td></tr></table><p><a name="BId-ext2fs-pa46"></a>Usted puede observar lo siguiente: mientras que, la primera vez que se lanzó el comando, se leyó todo el contenido del disquete, la segunda vez no se accedió a la disquetera en absoluto. Esto se debe simplemente a que el contenido de la disquetera se guardó en memoria la primera vez que se lanzó el comando – y entre tanto Usted no cambie el disquete, el mismo permanece allí.</p><p><a name="BId-ext2fs-pa47"></a>Pero ahora, si quiere imprimir un archivo grande de esta forma (sí, va a funcionar):</p><a name="BId-ext2fs-pl8"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ cat /un/archivo/grande/imprimible/en/algun/lugar >/dev/lp0</pre></td></tr></table><p><a name="BId-ext2fs-pa48"></a>el comando tardará el mismo tiempo si lo lanza una vez, dos veces, o cincuenta veces. Esto se debe a que <tt class="filename">/dev/lp0</tt> es un archivo de modo caracter y su contenido no se conserva en memoria.</p><p><a name="BId-ext2fs-pa49"></a>El hecho de que los archivos de modo bloque se conserven en memoria tiene un efecto secundario interesante: no sólo se conservan las lecturas sino también las escrituras. Esto permite que las escrituras en el disco sean asíncronas: cuando Usted escribe un archivo en disco, la operación de escritura en sí misma no es inmediata. Sólo ocurrirá cuando el núcleo <span class="application">GNU/Linux</span> decida ejecutar la escritura en el hardware.</p><p><a name="BId-ext2fs-pa50"></a>Finalmente, cada archivo especial tiene un número <a name="BId-ext2fs-gt12" href="glossary.html#term-major"><i class="glossterm">mayor</i></a> y uno <a name="BId-ext2fs-gt13" href="glossary.html#term-minor"><i class="glossterm">menor</i></a>. Aparecen en la respuesta de <span><b class="command">ls -l</b></span>, en lugar del tamaño, debido a que el tamaño para este tipo de archivos es irrelevante:</p><a name="BId-ext2fs-pl9"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ ls -l /dev/hda /dev/lp0 brw-rw---- 1 root disk 3, 0 may 5 1998 /dev/hda crw-rw---- 1 root daemon 6, 0 may 5 1998</pre></td></tr></table><p><a name="BId-ext2fs-pa51"></a>Aquí, los números mayor y menor de <tt class="filename">/dev/hda</tt> son 3 y 0, mientras que para <tt class="filename">/dev/lp0</tt> son 6 y 0. Note que estos números son únicos por categoría de archivo, lo que significa que puede haber un archivo de modo caracter con 3 por mayor y 0 por menor (de hecho, este archivo existe: <tt class="filename">/dev/ttyp0</tt>), y similarmente sólo puede haber un archivo de modo bloque con 6 por mayor y 0 por menor. Estos números existen por una razón simple: le permiten al núcleo asociar las operaciones adecuadas para estos archivos (es decir, con los periféricos a los cuales se refieren estos archivos): no se controla a una disquetera de la misma manera que, digamos, a un disco rígido <span class="acronym">SCSI</span>.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext2fs-pipe.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="ext2fs.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="ext2fs-ln-s.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">Tuberías anónimas y tuberías nombradas </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Los vínculos simbólicos y la limitación de los vínculos duros</td></tr></table></div></body></html>