Debian 6.0 Squeeze estable
Finalmente, después de 24 meses de desarrollo Debian ha publicado la versión 6 de su sistema operativo, bajo el nombre de Squeeze. En el anuncio oficial se informan varias cosas interesantes como son:
- El núcleo estándar es completamente libre, lo que significa que no incluye ningún firmware propietario. En cambio, se puede optar por una versión alternativa que sí los tiene. La intención es cumplir con la política de sistemas realmente libres.
- El nuevo Debian viene en dos versiones: con núcleo Linux (Debian GNU/Linux) y con núcleo de FreeBSD (Debian GNU/kFreeBSD). Este último aún como una versión preliminar de tecnología.
- Se agregaron los sistemas de archivos ext4 y Btrfs, además de ZFS en la versión GNU/kFreeBSD.
- El sistema de arranque se ha modificado para utilizar dependencias, lo que deriva en un inicio más rápido y seguro.
- Se ha mejorado la interfaz para netbooks con la introducción de KDE Plasma.
Además de lo anterior y de varias novedades más, Debian 6 incluye actualizaciones de sus paquetes a versiones más modernas. Para actualizarlo desde Lenny se puede utilizar la herramienta apt-get y para una nueva instalación se pueden descargar las imágenes de CD/DVD por medio de Bittorrent, jigdo o HTTP.
5 razones por las que Debian unstable es para usuarios finales (o no!)
Hoy leí un interesante post de Raphaël Hertzog titulado 5 razones por las que Debian unstable no merece su nombre. En el mismo, esta persona explica los motivos por los que usa Debian Unstable y alega que dicha distribución no es tan inestable como correspondería según su nombre. Incluso insta a las personas a que la utilicen, con la recomendación de no actualizar nunca los paquetes antes de algún evento importante, indicando que siempre se romperá en el momento menos preciso.
Por su parte, Alfie, un mantendedor de Debian publicó otro post bajo el título de 5 razones por las que unstable no es para todos, repasando las mismas 5 razones que dio Hertzog pero desmintiéndolas. Ambos posts son de interesante lectura para tener un panorama por parte de un usuario avanzado y de un mantendedor de la distribución involucrada.
En lo personal me gusta actualizar mis sistemas operativos y aplicaciones a las versiones más recientes posibles. Por ejemplo, el navegador con el que empecé a escribir este post es Chrome en su versión 9 (en desarrollo) y lo estoy terminando con Safari porque dicho navegador se colgó dos veces antes de que pudiera finalizar el post. Por su parte, en mi computadora personal suelo utilizar Ubuntu desde sus versiones Alpha y, aunque últimamente no he tenido dificultades sí he tenido grandes problemas en varias oportunidades. Por eso mi consejo para los usuarios finales sería el mismo que el de Alfie: no actualicen a una versión inestable a menos que sepan cómo arreglar los problemas o estén dispuestos a reinstalar su sistema.
Memoria consumida en Linux
Muchas veces puede ser necesario encontrar la memoria que un proceso o un usuario consumen en el sistema. Lograr esto es bastante sencillo aunque implica hacer algunas cuentas. Por ello es posible simplificar la tarea utilizando algún script que la haga por nosotros. A continuación puede verse primero cómo calcular la memoria física consumida por el proceso Apache y luego por el usuario www-data. La unidad final está dada en MB.
root@server:~# ps -C apache2 -o rss --no-headers | (tr '\n' +; echo 0) | bc | awk '{print $0 "/1024"}' | bc
267
root@server:~# ps -U www-data -o rss --no-headers | (tr '\n' +; echo 0) | bc | awk '{print $0 "/1024"}' | bc
146
Existe otra forma también de chequearlo que es bastante más sencilla y es utilizando la herramienta smem. El problema es que dicha herramienta es compatible sólo con los kernels 2.6.27 o más nuevos. A continuación se puede ver la consulta de cuánto consume el proceso apache2. En este caso, smem mostrará todos los procesos y, al final, la suma de los consumos (debido a la opción -t suministrada). La opción que nos interesa en este caso es RSS, que se ve que da un total de 16720 bytes. Es para tener en cuenta que smem está sumando a lo consumido por el proceso que se le pidió la propia ejecución del comando; esto debería restarse del total para tener una valor más preciso. Daría finalmente 12020 bytes.
root@server:/home/leandro# smem -t -P "apache2" PID User Command Swap USS PSS RSS 10171 root /usr/sbin/apache2 -k start 348 144 248 1328 7173 root /usr/sbin/apache2 -k start 360 172 276 1476 7171 root /usr/sbin/apache2 -k start 364 200 302 1516 7174 root /usr/sbin/apache2 -k start 364 200 302 1516 7175 root /usr/sbin/apache2 -k start 364 200 302 1516 7731 root /usr/sbin/apache2 -k start 364 200 302 1516 7172 root /usr/sbin/apache2 -k start 352 204 306 1520 1816 root /usr/sbin/apache2 -k start 364 180 319 1632 18189 root /usr/bin/python /usr/bin/sm 0 2944 3119 4700 ------------------------------------------------------------------------------- 183 1 2880 4444 5476 16720
Finalmente, debajo se hace la misma consulta pero esta vez preguntando lo consumido por el usuario leandro.
root@server:/home/leandro# smem -t -U "leandro" PID User Command Swap USS PSS RSS 17381 leandro -bash 36 5312 5459 6880 ------------------------------------------------------------------------------- 183 1 36 5312 5459 6880
El archivo /etc/fstab
Introducción.
Un archivo fundamental en cualquier sistema Linux es el /etc/fstab, cuyo nombre es una especie de abreviatura de File System Table. El mismo reune la información sobre los sistemas de archivos y es leído por el demonio init para poder montarlos al bootear el sistema operativo. También se utiliza su información una vez iniciado el sistema al invocar al comando mount.
La estructura del archivo es extremadamente simple y aún así muchas veces confunde o se desconocen sus parámetros. A continuación se puede ver un ejemplo de un archivo /etc/fstab y luego la explicación de cada elemento.
El archivo /etc/fstab.
# /etc/fstab: static file system information. # # file system mount point type options dump pass /dev/sda1 /boot ext4 defaults 1 2 /dev/sda5 / ext4 defaults 1 1 /dev/sda6 /home ext4 defaults 0 0 /dev/sda7 /storage ext4 defaults 1 2 /dev/sda8 swap swap defaults 0 0
Las líneas que comienzan con # son ignoradas como en la mayoría de los archivos de configuración de Linux por tratarse de comentarios. Por lo tanto, la parte interesante arranca a partir de la cuarta línea. Se puede ver que cada una de las líneas del archivo representan un filesystem distinto. A su vez, es sencillo notar que todas las líneas presentan seis columnas cada una, cuyo significado se detalla a continuación:
- Primera: en este campo se indica el dispositivo o la partición donde se encuentra el filesystem.
- Segunda: aquí va el punto de montaje para el dispositivo especificado.
- Tercera: el tipo de sistema de archivos. Puede tomar varios valores, entre los que se destacan: ext2, ext3, ext4, iso9660, nfs, ntfs, reiserfs, smbfs, swap, vfat, xfs.
- Cuarta: en esta columna van las opciones para el montaje del filesystem. Son muchas y a continuación se mencionan las más comunes. Para un listado más completo se pueden leer el manual del comando mount y el del nfs (para los parámetros específicos de nfs).
- async: las escrituras al filesystem se demoran, es decir que no se hacen en el momento sino que se hacen varias escrituras juntas. Esto da un mayor rendimiento, aunque si el sistema se cuelga, apaga o el filesystem se desmonta, los datos se pederán si aún no han sido escritos.
- auto: el sistema de archivos será montado automáticamente al iniciar el sistema o al ejecutar el comando mount -a.
- noauto: debe ser montado explícitamente.
- defaults: utiliza las opciones por defecto, que son rw, suid, dev, exec, auto, nouser, async.
- ro: monta el filesystem como de sólo lectura.
- rw: monta el filesystem como lectura/escritura.
- user: permite que cualquier usuario pueda montar el filesystem.
- nouser: especifica que el filesystem sólo puede ser montado por el usuario root y no por un usuario común.
- sync: todas las escrituras al filesystem se hacen en el momento. Esto da mayor seguridad a los datos pero un menor rendimiento.
- Quinta: esta columna indica a la utilidad dump si debe o no hacer backup del filesystem. Puede tomar dos valores: 0 y 1. Con 0 se indica que no se debe backupear, con 1 que sí se haga. Lógicamente, depende de que se tenga instalado y configurado dump, por lo que en la mayoría de los casos este campo es 0.
- Sexta: en este caso se trata de una indicación para el fsck (comando que chequea el filesystem) y nuevamente se define con un valor numérico. Las posibilidades son 0, 1 y 2. El 0 indica que el filesystem no debe ser chequeado, mientras que el 1 y el 2 le dicen a fsck que sí lo chequee. La diferencia es que el 1 representa una prioridad mayor que el 2, por lo que debe utilizarse para el sistema raíz y el 2 para el resto de los sistemas de archivos.
Referencias.
Existen multitud de documentos a los que acudir para obtener información sobre fstab. Entre ellos recomiendo los manuales de los comandos fstab, mount y nfs. Además hay buena información en la wiki de ArchLinux y en un post en TuxFiles.




