Migrando a GNU/Linux (…desde Windows) – Parte II

direcorio.pngEn mi artículo anterior, les hablé sobre las dependencias en sistemas Unix-like como GNU/Linux. Ahora es el turno de hablar de la estructuración de los directorios. La estructuración es bastante distinta entre cada distribución, pero en general comparten características en común que son las que voy a mencionar aquí.

Al contrario de lo que pasa en Windows en que lo más «alto» es el disco duro (por ejemplo C:\) y de ahí cuelgan las distintas carpetas, en el caso de otras unidades, como lectores de CD o pendrives se encuentran «en parelelo» con la unidad C: (como D:, E: y así). En GNU/Linux, todo «cuelga» de lo que se conoce como «raíz», que se identifica con un slash o «barra» (es decir, «/»). Esto significa que nuestro lector de CD o unidad Flash se encuentran dentro de este mismo directorio raíz.

Una diferencia importante a tener en cuenta es que en Windows, para separar directorios (carpetas) se utiliza el backslash («\»). Por ejemplo:

C:\Windows\

Mientras que en GNU/Linux se utiliza el slash:

/home/pablo

Como pueden ver, en el primer caso, La carpeta Windows está dentro de «C:», mientras que en el segundo, la carpeta home, sólo hace referencia al directorio raíz (/).

Otra cosa a tomar en cuenta que es el «primer nivel». Es cualquier directorio que se encuentre a un nivel bajo la raíz, por ejemplo /home. Si digo /home/pablo, estoy hablando de «segundo nivel». En un sistema de archivos de GNU/Linux recién instalado, podemos encontrarnos con una gran cantidad de directorios en la raíz (es decir, de primer nivel). A continuación les indicaré para que sirven, pero antes hay que hacer un pequeño recordatorio.

¿Recuerdan que en GNU/Linux las funciones se comparten?. Para que pueda funcionar de esta manera, no tendría sentido que cada aplicación tuviera su propio directorio (como ocurre en Windows). Traería demasiados problemas. Para evitar esto, las distintas partes de las aplicaciones de GNU/Linux se encuentran en distintos directorios, es decir, todos los ejecutables en un directorio ¿cómo es eso?. Bueno, ahora para entender un poco mejor este concepto les menciono los directorios más comunes.

Los protagonistas

estructura1.png

/bin: En esta carpeta se guardan los archivos ejecutables del sistema que pueden ser ejecutados por cualquier usuario, por ejemplo ls, cd.

/boot: Esta es la primera carpeta que se lee cuando inicia el sistema (en algunas ocasiones el kernel también se ubica aquí), y además se encuentra la configuración de los gestores de arranque, que son los que permiten escoger que Sistema Operativo se inicia cuando se enciende el equipo.

/cdrom: Como se pueden dar cuenta /cdrom es un enlace simbólico a /media/cdrom

/dev: Aquí se almacenan los controladores de dispositivos o periféricos (para los que vienen de Windows, drivers). Esto puede resultar raro, pero en los Unix-like todo lo que no es un directorio es un archivo. Esto significa que el teclado, el monitor y hasta el disco duro, es un archivo.

/etc: Principalmente se guardan los archivos de configuración del sistema.

/home: Directorio de los usuarios, en el SS pueden ver que yo poseo 2, casa y pablo. Esto vendría siendo la carpeta C:\Documents and Settings\Pablo\ en su equivalente en Windows.

/lib: ¿Se acuerdan de las librerías?, bueno, pues aquí se almacenan para que las distintas aplicaciones puedan acceder. Eso sí, tal como ocurre con /bin en esta carpeta sólo se encuentran las librerías del sistema.

/media: Aquí es donde se montan los dispositivos, como el lector de DVD cuando se coloca un disco, (/media/cdrom), dispositivos USB (/media/pablox, en mi caso).

/mnt: Realizar montajes.

/opt: Generalmente instalaciones grandes pueden usar este directorio, o un directorio optional para realizar instalaciones de otros programas.

/proc: Así como /dev es la interfaz entre el hardware y el sistema de archivos, /proc es la interfaz entre los procesos, la CPU y la memoria con el sistema de archivos. Los archivos que están aquí se generan dinámicamente en la medidad que los consultamos.

/root: Esta carpeta es como el directorio /home, pero para el usuario root (el administrador del sistema).

/sbin: Al igual que /bin se almacenan los ejecutables del sistema, con la particularidad que necesitan ser ejecutados con permiso de root, aquí por ejemplo encontramos comandos como modprobe, fsck.

/sys: Archivos que tienen que ver con la configuración del sistema.

/tmp: Archivos temporales, la misma idea de C:\Windows\Temp.

/usr: Este directorio merece una explicación aparte, ya que sus subdirectorios son importantes.

/usr/bin: Al igual que /bin contiene los ejecutables, pero los almacenados aquí son de las aplicaciones que hemos instalado (quizá lo más cercano a C:\Archivos de Programa) o que no son del sistema. Acá encontraríamos los ejecutables mplayer y evince, por ejemplo. (Siempre que los tuviéramos instalados claro está).

/usr/lib: Igual que /lib, pero indica que no son librerías del sistema. Ahí podemos encontrar librerías de Firefox (/usr/lib/firefox).

/usr/sbin: Más comandos administrativos.

/usr/share: Como su nombre lo indica, archivos compartidos, como imágenes e iconos (de hecho, al menos en Ubuntu los temas de iconos están en /usr/share/icons).

/var: Como /usr, sus distintos subdirectorios son importantes y sirven para distintas cosas, en general, son archivos de registro.

/var/cache: Se usa de almacén temporal.

/var/cache/apt/archives: Nombro este directorio porque varias veces me han preguntado: «¿Dónde se guardan los «debs» que descarga Synaptic?» (o apt-get en su defecto). Bueno, adivinaste, es en este directorio.

/var/lock: Se guardan archivos que impiden que exista más de una instancia de la aplicación en cuestión (¿les suena un error con /var/lock al tratar de tener abiertas 2 instancias de Synaptic?)

/var/log: Esta es importantísima, en esta carpeta se guardan los distintos registros del sistema, del kernel y de los demonios por ejemplo.

Palabras finales

Esos son los directorios que me parecen importantes, sin duda lo que me parece más importante de esto es cambiar el switch de Windows esperando que los programas estén en «una» carpeta. Recordemos, estamos usando GNU/Linux.

¿Desorden?

Quizá lo más confuso sea el tema de los ejecutables, no dudo que en una primera ocasión nos puede parecer incómodo. Pero tiene una gran ventaja, independiente del lugar que me encuentre si en una terminal ejecuto un comando, por ejemplo, firefox lo buscará en las carpetas de ejecutables (en este caso estaría en /usr/bin) y se lanzaría Firefox.

Es probable que en este momento estés pensando que es desordenado. Pero no es así, cuando en la próxima entrega conversemos sobre los sistemas de paquetes y repositorios te darás cuenta que ni siquiera era necesario preocuparse del «lugar» donde se instalan las cosas…

Puedes ver la tercera parte aquí.

15 comentarios en “Migrando a GNU/Linux (…desde Windows) – Parte II

  1. Bueno, a veces meterse en afirmaciones demasiado contundentes del tipo «no tendría sentido que cada aplicación tuviese su propio directorio» puede ser contraproducente. Hay gente que critica el sistema clásico (conocido con el nombre de LHS) de ordenar las cosas en un GNU/Linux, e incluso hay una distribución de GNU/Linux que sigue una organización completamente distinta: GoboLinux (http://en.wikipedia.org/wiki/GoboLinux y http://gobolinux.org/)

    Saludos.

    Me gusta

  2. Si, sabía de esa distro, pero no la he usado.

    La afirmación de «no tendría sentido que cada aplicación tuviese su propio directorio». Lo digo en el caso de cuando uno comparte las librerías y demás aplicaciones, sería poco práctico que al instalar una aplicación, cada «dependecia» quedara en cada directorio. ¿Cómo sabría GNU/Linux que la dependencia está instalada? Bueno, quizá el gestor de paquetes podría ir regitrándolo, pero ¿qué pasa si no tienes usas una?. Pero si esto se hiciera el sistema quedaría muy desordenado.

    Por otra parte, una organización «tipo Windows» no sería lógica, si para ejecutar una aplicación no basta más que escribir un comando. ¿Para que quieres navegar hasta el directorio?.

    Me gusta

  3. David: ¡Muchas gracias! =). Mantente sintonizado que ya haré una cuarta parte…

    Alex: Si lo sé, en el primer artículo hice una aclaración respecto a eso. De todas formas, en Wikipedia dice que se acepta usar cualquiera de las dos palabras.

    Me gusta

  4. llevo desde que tenia 4 años con DOS y luego con windows, ahora tengo 23, desarrollo programas en windows, y siempre tuve un sistema «Estable»,
    En pocas palabras, Linux es un milagro, no puedo creer mi ignorancia durante todo este tiempo. :(
    Muy buen articulo! Muy buen SO!

    Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.