De Windows a Linux: Estructura de Directorios

  • Categoría: Linux
  • Publicado hace más de 3 años
Este artículo está destinado a quienes han optado por comenzar con Linux y se encuentran -finalizada la instalación de la distribución elegida- por primera vez con lo que podríamos llamar el árbol o estructura típica de directorios de los sistemas operativos Linux. En mi opinión este ?primer encuentro? del usuario que ya ha cristalizado la estructura de archivos de Windows, puede ser muy frustrante: se trata de usuarios con una idea más o menos formada de dónde están las cosas en sistemas Windows. Saben que los ficheros de configuración se localizan en (C:Windows y C:WindowsSystem3264 más específicamente). Conocen además que los programas que han instalado a través de Install Wizards crean carpetas generalmente en C:Archivos de Programas y que pueden encontrar sus documentos y descargas en C:Documents and Settings.

No recuerdo con exactitud el año en que instalé por primera vez Linux aunque podría arriesgar que ésto sucedió en el 1997/98.  Mi distribución elegida entonces fue Slackware (a sabiendas de que era de las más complicadas, quería algo simil UNIX -en rigor, creo que me dieron ese CD y no tuve muchas alternativas-). En aquellos tiempos hacer un Dual Boot con Windows y Linux no era tan simple como hoy debido a que Linux no contaba aún con instaladores gráficos de esos que nos guían practicamente a lo largo de toda la instalación y el Windows de entonces podía con suerte bootearse a si mismo.  Logré -con la ayuda de un amigo linuxero- instalar Linux junto con un Windows (95 o 98, supongo).

Nunca voy a a olvidar el desequilibrio que senti cuando ingresé a Slack por primera vez, me logueé root, hice startx y abrí el explorador de archivos. Mi amigo se habría ido para ese momento porque recuerdo que navegando las carpetas del sistema llegaba al / para encontrarme con un conjunto de directorios del que sabía absolutamente nada. Vale aclarar que en éstos tiempos  yo no tenía aún Dial up en mi casa y la comunidad Linux era un germen de lo que es hoy en día.

En la actualidad Google puede proveer información acerca de lo que sea que queramos entender, pero aún así intentaré en este artículo explicar al usuario que llega de Windows la arquitectura de los ficheros que componen éste enorme sistema operativo llamado Linux como me hubiera gustado que me lo expliquen aquel día.
Puesta esta introducción, comencemos  sin más con nuestro cometido.



LNW: Linux no es Windows
Me voy a permitir la licencia de jugar con este concepto. En la comunidad del Software Libre Richard Stallman (un personaje con que estoy de acuerdo con reservas y a quien considero muy sobrevalorado si tenemos en cuenta con qué contribuyó al mundo de Linux y la posición que ocupa en los medios de comunicación) introdujo el concepto de GNU (GNU is not Unix) para distinguir a Linux en tanto sistema operativo libre de Unix, el sistema operativo a partir del cual Linus Torvalds creó el primer Kernel Linux (si sabés que fue Minix y no Unix quizás este artículo no esté dirigido a vos).

 
Linux no es Windows significa que, tenemos que hacer un esfuerzo tan grande como podamos para olvidar el modo en que Windows se estructura y actua -intentar poner nuestra mente en Tabula rasa, como diría Locke- y preparanos para un sistema operativo que nos brindará lo mismo y más que Windows, pero de otro modo. Si bien las interfaces gráficas (Gnome/KDE  y otras) con que Linux cuenta hoy en día son muy intuitivas para un usuario de Windows, no tardaremos en entender que estás interfaces gráficas corren sobre una estructura totalmente distinta a la acostumbrada en Windows y, a diferencia de la experiencia que podamos tener con el OS de Microsoft, en Linux vamos a encontrarnos con la consola de comandos muy rapidamente. Esto es importante desde que la mayoría de usuarios de Windows en su vida han ejecutado el comando cmd (sí, es la mayoría).
 
Dicho esto, rebooteamos nuestra cabeza y vamos a explicar la arquitectura de Linux y la función de los componentes que la integran.



 El Arbol de Directorios en Sistemas Linux
En resumen, un SO Linux posee una serie de directorios que conforman el sistema de archivos. Estos pueden crearse en una misma partición o disco (los instaladores gráficos de distribuciones actuales recomiendan este esquema para los nuevos usuarios) así como en distintas particiones o discos rígidos. Independientemente del esquema que elijamos (instalar todos los directorios en una misma partición o en distintas) veremos siempre el listado del árbol de directorios como si éstos estuvieran en un mismo disco/partición.


 
1- La raíz del sistema ?/?: en Linux el punto más alto en el árbol de directorios es lo que se denomina root. Podríamos pensarlo como el C: de Windows pero con la distinción de que en Windows podemos tener otras unidades (otros HHDD o lectoras DVD) que se listarán con otra letra como separados de C: en tanto que en Linux cualquier componente estará siempre ubicado en algún punto debajo de la ?/?.

2- El directorio /bin: este fichero contiene binarios ejecutables (es decir, archivos que en windows serían .exe) requeridos en el proceso de boteeo del sistema y utilizados normalmente por los usuarios. Si listamos los archivos de este directorio entenderemos facilmente de qué hablamos: allí residen programas como ls, tar, mkdir, rm, cp y -en líneas generales- ejecutables que utlizamos constantemente en consola.

 
3- El directorio /boot: archivos utilizados en el proceso de booteo del sistema. Encontraremos aquí a nuestro booteador (GRUB o LILO). Este fichero es lo primero que el sistema operativo analiza una vez se ha arrancado la PC y establecido comunicación con el sistema operativo. Generalmente tendremos aquí además una versión comprimida de nuestro Kernel con nombre vmlinuz (en mi Debian Squeeze vmlinuz-2.6.32-5-amd64)

 
4- El directorio /dev: al introducir la raíz del sistema hablamos de que en Linux -a diferencia de Windows- las unidades de almacenamiento y periféricos en general no se listaban en paralelo a la ?/?, sino que estaban en algún punto debajo de ésta. Este punto es, en concreto, el fichero dev cuya misión es la de abstraer los dispositivos de Hardware brindando archivos que permitan manipularlos para cada caso. Si corremos ls en este directorio encontraremos allí archivos que hacen referencia a nuestra lectora DVD, discos rígidos y demás periféricos de que dispongamos. Vale aclarar que dev es abreviatura de devices o dispositivos en español.

 
5- El directorio /etc: este directorio contiene los archivos de configuración de los programas que nuestra distribución traiga y de aquellos que instalemos. Es común que al instalar un nuevo programa en Linux se cree (o uno deba crear manualmente) una carpeta en este directorio que contiene los archivos mediante los cuales podemos controlar el comportamiento del programa en cuestión. Un ls a este directorio nos mostrará carpetas tales como apt, apache2, php5, mysql y demás aplicaciones que posean archivos de configuración editables por el usuario.

 
6- El directorio /home: aquí encontraremos los ficheros de los usuarios creados en el sistema operativo. Por lo pronto, durante el proceso de instalación de tu Linux, habrás creado un usuario root y un usuario con que utilizarás el sistema operativo por defecto  (/home/miusuario). Al bootear tu Linux ingresarás a la interface gráfica y los programas de que esta dispone con los datos de tu usuario no root. Recordemos que Linux es un sistema multiusuario (esto es, pueden haber 5 usuarios distintos en la misma máquina en el mismo momento) y mantiene la información de cada usuario aislada dentro de subdirectorios en home. Cada usuario creado dispone de su carpeta dentro de /home/nombredeusuario en que puede guardar información y configuraciones generales (de la interface gráfica por ejemplo) a la que sólo tendrá acceso él mediante su user y pass. Este es uno de los puntos fuertes de Linux desde hace tiempo. Vale aclarar que el usuario root puede acceder a los datos de cualquier usuario.

 
7- El directorio /lib: este fichero almacena librerías compartidas  para programas del  sistema operativo y módulos del kernel.

 
8- El directorio /mnt: este fichero oficia como punto de montaje para dispositivos tales como lectograbadoras de DVD, USB sticks, particiones de otros OS, etc. Si bien las distribuciones de hoy en día automontan DVDS o USB sticks en la carpeta /media en el pasado (cuando instalé mi primer Slackware,  por ejemplo) uno debía montar manualmente cualquier periférico a través del comando mount y el punto para dicho montaje era siempre el directorio /mnt. Si tenemos un Dual Boot y queremos que nuestras particiones de Windows estén disponibles en Linux podemos montarlas para que se carguen en el proceso de Booteo siguiendo estas instrucciones. Vale aclarar que el tutorial monta en /mnt, pero las particiones podrían ser montadas en cualquier otro sitio (/home/miuser/windows, por ejemplo). Lo cierto es que en distribuciones como la mía (Debian Squeeze) en que al introducir un DVD o un Stick USB el proceso de montaje se raliza automáticamente en /media el directorio /mnt parecería estar presente nada más que por romanticismo. Por suerte soy un romántico y he montado todos mis discos/particiones NTFS en él 

 
 
9- El directorio /root: el rincón del administrador. Este fichero es al usuario root lo que a un usuario no root su fichero /home/nosoyroot. Tiene como finalidad brindarle al administador un espacio propio para trabajar y almacenar separado de los directorios del sistema y de los subdirectorios de usuarios con privilegios inferiores en /home.

 
10- El directorio /sbin: más ejecutables (binarios de sistema o system binaries). Este directorio extiende  la lista de programas disponibles en /bin para ser corridos desde consola, pero  en este caso son programas cuya utilización suele estar reservada para el root user. Un ls al directorio nos mostrará programas como iptables o shutdown que sólo deben estar al alcance de un superusuario o root (imaginen un Linux con 5 usuarios trabajando en que uno de los 5 pudiera apagar el sistema ? not good mate =).

11- El directorio /proc: este directorio provee información sobre el sistema. Podemos, por ejemplo, obtener información sobre nuestro procesador corriendo cat /proc/cpuinfo. Es interesante observar que se trata de archivos inexistentes en el rígido que son llamados desde la memoria RAM. Hagan un ls al dir para ver su contenido y luego un ls -l para ver el peso de los archivos que ls acaba de listar. OMG!

 
 
12- El directorio /usr: este directorio es como ?un lugar más? en que se situan archivos que bien podrían ir en /sbin o /lib. Dicho esto, encontraremos aquí más ejecutables, más librerías, más código fuente (src), mucha documentación acerca de los programas contenidos, etc. Un ls de este directorio nos permitirá ver que, a diferencia de los mencionados anteriormente, aquí poseemos una estructura de subdirectorios que a su vez contienen mucha información. Si tu Linux vino con una serie de programas instalados, éstos se ejecutan -en la mayoría de los casos- desde este directorio. El Konqueror, por ejemplo, tiene su ejecutable en /usr/share/applications/kde4 (uso KDE ¿y qué?)

 
13- El directorio /var: por último, el directorio var -cuyo nombre proviene de variable- almacena una serie de archivos  que, como su nombre lo indica, suelen ser variables. Aquí encontraremos archivos de logs de diversas aplicaciones en constante cambio desde que la actividad en cada aplicación los modifica agregando información de su funcionamiento. Este directorio suele ser el destinado al alojamiento de sitios web (de hecho contiene por defecto una subcarpeta llamada /www). Es importante comprender que, con la excepción de los directorios de usuarios en /home y superusuario en /root, el resto de los directorios que hemos visto suelen mantenerse sin alteraciones (al menos si no instalamos o actualizamos) por lo que un directorio como /var es preciso dado que toda la actividad del sistema debe imprimir huellas en algún sitio y lo hace aquí.



 Aclaraciones
Tenemos la obligación de aclarar que -como es evidente- no hemos hecho más que describir superficialmente los contenidos de cada uno de los directorios que configuran el sistema de archivos en Linux. Sin embargo, se trata de una breve introducción a una ?nueva forma de pensar los cimientos del sistema operativo que utilizaremos? con que me hubiera gustado contar cuando por vez primera le di click al ?subir nivel? hasta el root de mi Slackware y me encontré con esta colección de carpetas en que no estaban ni Documents and Settings ni Application Data.
 
Quizás quienes se inician en el mundo de Linux puedan leer esta pequeña introducción y comenzar a utilizar este gran sistema operativo comprendiendo su estructura mejor de lo que llegaron a entender lo que tuvieron bajo C: durante años. Ojalá así sea.




De Windows a Linux: Estructura de Directorios en Linux
De Windows a Linux: Estructura de Directorios
33 Puntos Score: 5.5/10
Visitas: 1228 Favoritos: 12
Ver los usuarios que votaron...
12 Comentarios De Windows a Linux: Estructura de Directorios
excelente post...
yo tengo rato urgando en LX pero no tenia idea de la estructura...
muchas veces buscaba por ejemplo la USB pero ni idea de donde estaba montada...
sigue asi!
soy nova, sino te dejaba puntos, gracias de menos.  
@ngldj Se agradece tu comentario suerte
    genial amigoooo ! XD
Buena Informacion... Siempre me preguntaba cual es el equivalente de %PROGRAMFILES%
@sexyalo32 Enprimer lugar elpost es mio en segundo lugar si te preocupa tanto busca la respuesta y contestasela vos y tercero porque no te compras una vida gil, que siempre vas por los post tirando mala onda idiota
@iNovaOrion Amigo disculpa que no te conteste antes es que no estoy las 24 hs como quisieran algunos usuarios entrometidos, po cierto aca esta la respuesta a tu pregunta,http://askubuntu.com/questions/27213/what-is-the-equivalent-to-the-windows-program-files-folder suerte gracias por comentar y pasarte por mi post
@rezarpado1 No te preocupes, solo hize un comentario, agradesco tu respuesta. Buen dia
Excelente post, se nota mucho tu dedicaci?
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!