{"id":82,"date":"2023-08-10T11:18:25","date_gmt":"2023-08-10T09:18:25","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=82"},"modified":"2023-08-31T18:20:29","modified_gmt":"2023-08-31T16:20:29","slug":"1-5-el-sistema-de-ficheros","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/1-5-el-sistema-de-ficheros\/","title":{"rendered":"1.5. El sistema de ficheros"},"content":{"rendered":"<p>La memoria de un ordenador almacena temporalmente tanto los programas como sus propios datos durante su ejecuci\u00f3n en el procesador. Para evitar la p\u00e9rdida de informaci\u00f3n cuando cesa el suministro del fluido el\u00e9ctrico en el momento del apagado de nuestro ordenador, mantenemos siempre una copia de toda la informaci\u00f3n en dispositivos dise\u00f1ados para tal efecto, como discos duros, CD, DVD o l\u00e1pices de memoria. Esta clase de memoria secundaria comparte un m\u00e9todo de organizaci\u00f3n com\u00fan denominado <em>sistema de ficheros<\/em> (<em>filesystem<\/em>). El tipo de estructuraci\u00f3n de cada volumen puede establecerse en el momento de darle formato. Por regla general cada sistema operativo posee una predisposici\u00f3n hacia un determinado formato, tolerando no obstante la compatibilidad con otros sistemas de almacenamiento. En la tabla 2, encontraremos algunos ejemplos de tipos de <em>filesystem<\/em> por SO.<\/p>\n<div class=\"tabletitle\"><p>Tabla 2. Tipos de formatos de sistemas de ficheros.<\/p>\n<\/div>\n<table width=\"642\">\n<thead>\n<tr>\n<th width=\"321\"><strong>SO<\/strong><\/th>\n<th width=\"321\"><strong>Formato<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td width=\"321\">Linux<\/td>\n<td width=\"321\">EXT2\/3\/4, XFS, JFS, Btrfs<\/td>\n<\/tr>\n<tr>\n<td width=\"321\">Windows<\/td>\n<td width=\"321\">FAT, NTFS, exFAT<\/td>\n<\/tr>\n<tr>\n<td width=\"321\">macOS<\/td>\n<td width=\"321\">HFS, APFS, HFS+<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"tablefooter\"><p>Fuente: elaboraci\u00f3n propia.<\/p>\n<\/div>\n<p>El <em>filesystem<\/em> indexa toda la informaci\u00f3n en un volumen de almacenamiento, incluyendo el tama\u00f1o del archivo, los atributos, la localizaci\u00f3n y la jerarqu\u00eda en el directorio. El <em>filesystem<\/em> tambi\u00e9n especifica la ruta al archivo mediante la estructura de directorios.<\/p>\n<figure id=\"attachment_85\" aria-describedby=\"caption-attachment-85\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-85\" src=\"\/wp-content\/uploads\/sites\/5\/2023\/08\/image001-1024x575.png\" alt=\"\" width=\"800\" height=\"449\" srcset=\"\/wp-content\/uploads\/sites\/5\/2023\/08\/image001-1024x575.png 1024w, \/wp-content\/uploads\/sites\/5\/2023\/08\/image001-300x168.png 300w, \/wp-content\/uploads\/sites\/5\/2023\/08\/image001-768x431.png 768w, \/wp-content\/uploads\/sites\/5\/2023\/08\/image001.png 1486w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-85\" class=\"wp-caption-text\">Figura 1. Estructura del filesystem de Linux. <br \/>Fuente: <a href=\"http:\/\/linuxfoundation.org\" target=\"_blank\" rel=\"noopener\">linuxfoundation.org<\/a><\/figcaption><\/figure>\n<p>El sistema de ficheros dota al usuario de mecanismos l\u00f3gicos para localizar los ficheros a trav\u00e9s de su nombre y de una ruta de acceso (en ingl\u00e9s, <em>path<\/em>). En la figura 1 podemos ver qu\u00e9 estructura comparten los sistemas Linux del sistema de ficheros.<\/p>\n<p>Los usuarios tienen su propia partici\u00f3n (espacio dedicado) dentro de \u00ab\/home\u00bb. Los discos duros externos y l\u00e1pices de memoria son autom\u00e1ticamente localizados (montados) dentro del directorio \u00ab\/media\u00bb en Linux o en el directorio \u00ab\/Volumes\u00bb en Mac OS-X. A diferencia de Microsoft Windows, los dispositivos no reciben una \u00fanica letra como identificador, sino un nombre l\u00f3gico m\u00e1s comprensible.<\/p>\n<p>Los ficheros son agrupados en carpetas o directorios, conformando una jerarqu\u00eda que proporciona una organizaci\u00f3n coherente para el usuario. Para construir una ruta que pase por dos directorios <em>A<\/em> y <em>B<\/em> debe introducirse el car\u00e1cter separador \/, formando la ruta A\/B. En un instante concreto, el directorio en el que el usuario se encuentra recibe la denominaci\u00f3n simb\u00f3lica de \u00ab.\u00bb, mientras que \u00ab..\u00bb representa al directorio inmediatamente anterior en el \u00e1rbol de ficheros. Para acceder a un archivo especificaremos la ruta completa de este (<em>path<\/em> absoluto), es decir, toda la serie de directorios desde la ra\u00edz (<em>root o \/<\/em>) hasta ese punto del sistema de ficheros. Para acceder a cualquier fichero o directorio podemos descender desde este punto a lo largo del sistema de ficheros. Opcionalmente, el usuario puede introducir sencillamente la parte de la ruta necesaria para completar el resto del camino a partir de la ubicaci\u00f3n actual (<em>path<\/em> relativo). Si quisi\u00e9ramos acceder al fichero \/home\/uoc\/master\/notas.txt (<em>path<\/em> absoluto) y estuvi\u00e9semos en \/home\/uoc, simplemente necesitamos indicar .\/master\/notas.txt (<em>path<\/em> relativo). Como hemos mencionado anteriormente, el \u00ab.\u00bb indica el directorio actual que va seguido de la ruta hasta notas.txt.<\/p>\n<p>En UNIX, se accede a los ficheros de una unidad como a cualquier otro dispositivo l\u00f3gico, requiriendo ciertos permisos de seguridad para poder efectuar cualquier operaci\u00f3n sobre estos.<\/p>\n<p>Un programa puede realizar sobre un fichero las siguientes acciones:<\/p>\n<ul>\n<li>Abrir (en ingl\u00e9s, <em>open<\/em>). Para acceder a un fichero, el proceso debe abrirlo previamente y obtener un c\u00f3digo identificador para referirse a este.<\/li>\n<li>Cerrar (en ingl\u00e9s, <em>close<\/em>). Una vez finalizado el acceso, el fichero debe cerrarse para que otro proceso pueda reutilizarlo posteriormente.<\/li>\n<li>Leer (en ingl\u00e9s, <em>read<\/em>). El proceso utiliza el identificador de un fichero para acceder secuencialmente a su contenido.<\/li>\n<li>Escribir (en ingl\u00e9s, <em>write<\/em>). Un proceso puede escribir nueva informaci\u00f3n en un fichero, sobrescribiendo el contenido existente anteriormente.<\/li>\n<li>A\u00f1adir (en ingl\u00e9s, <em>append<\/em>). Un proceso puede escribir nueva informaci\u00f3n a continuaci\u00f3n del contenido registrado con anterioridad.<\/li>\n<\/ul>\n<p>En UNIX todo se reduce a ficheros. Podemos encontrar tres tipos de ficheros:<\/p>\n<ul>\n<li>Archivos regulares<\/li>\n<li>Directorios<\/li>\n<li>Especiales:\n<ul>\n<li><em>Block files<\/em><\/li>\n<li><em>Character device files<\/em><\/li>\n<li><em>Pipe files<\/em><\/li>\n<li><em>Socket files<\/em><\/li>\n<li><em>Symbolic link files<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>De los tipos especiales nos centraremos en los <em>symbolic link files<\/em>. Adem\u00e1s de los ficheros regulares y de los directorios que todos conocemos, se pueden crear enlaces a los ficheros desde otros puntos del sistema de ficheros (en ingl\u00e9s, <em>links<\/em>). De este modo, evitamos introducir la ruta completa de acceso en cada ocasi\u00f3n. Estos enlaces en UNIX pueden contener la ruta de acceso del fichero original (en ingl\u00e9s, <em>soft links<\/em> o <em>symbolic links<\/em>) o proporcionar un acceso f\u00edsico compartido a este con un nombre diferente (en ingl\u00e9s, <em>hard links<\/em>). Los <em>soft links<\/em> equivaldr\u00edan a un acceso directo en Windows. Con este mecanismo, el usuario puede apuntar a un mismo fichero desde varios lugares del sistema, sin la existencia de m\u00faltiples copias de este.<\/p>\n<p>UNIX posee un mecanismo caracter\u00edstico de seguridad para proteger la integridad del sistema de ficheros. \u00danicamente los usuarios autorizados pueden realizar operaciones sobre un fichero o directorio. Seg\u00fan su procedencia, cada usuario del sistema pertenece a uno de estos dominios: el usuario (<em>user<\/em>), el grupo de trabajo (<em>group<\/em>) o el entorno exterior (<em>others<\/em>). Las operaciones permitidas sobre archivos son la lectura (<em>read<\/em>), la escritura\/modificaci\u00f3n\/eliminaci\u00f3n (<em>write<\/em>) y la ejecuci\u00f3n (<em>execute<\/em>). En el caso de los directorios, existen convenciones similares para restringir el acceso a su interior, denotado en este caso con el permiso de ejecuci\u00f3n.<\/p>\n<p>Por regla general, el autor de un fichero posee inicialmente todos los derechos, garantizando la lectura y la ejecuci\u00f3n de este a los miembros de su grupo de trabajo. Seg\u00fan el grado de privacidad permitido por los tenedores de los derechos, un usuario del entorno exterior puede estar habilitado para ver esos ficheros o no. En cualquier contexto, el administrador de la m\u00e1quina (en ingl\u00e9s, <em>root<\/em>) puede revocar los permisos de seguridad de un fichero. Para poder modificar los permisos de ficheros o directorios m\u00e1s adelante veremos la utilizaci\u00f3n del comando <em>chmod<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La memoria de un ordenador almacena temporalmente tanto los programas como sus propios datos durante su ejecuci\u00f3n en el procesador. Para evitar la p\u00e9rdida de informaci\u00f3n cuando cesa el suministro del fluido el\u00e9ctrico en el momento del apagado de nuestro ordenador, mantenemos siempre una copia de toda la informaci\u00f3n en dispositivos dise\u00f1ados para tal efecto, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/82"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/comments?post=82"}],"version-history":[{"count":4,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/82\/revisions"}],"predecessor-version":[{"id":299,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/82\/revisions\/299"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/media?parent=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}