Archivo

Entradas Etiquetadas ‘operativo’

Conociendo el proceso que me ha enviado una señal (signal)

Jueves, 24 de Noviembre de 2011 Gaspar Fernández Sin comentarios

Hace tiempo hablábamos de capturar señales, aunque en ocasiones, es necesario saber quién me envía esa señal, si por ejemplo nos envían un SIGINT o SIGTERM, tal vez queremos saber qué proceso nos quiere muerto y qué usuario lo ha invocado. O tal vez estamos esperando una señal de control (SIGUSR1, por ejemplo) por parte de un proceso cliente específico.

El problema es que por nuestro modo actual de direccionar señales (con signal(señal, funcion)) sólo comunicamos el número de señal que se ha recibido, sin más información.

signals_from

Para capturar esta información necesitamos utilizar sigaction para establecer la función a la que llamaremos cuando llegue la señal, para utilizarla podemos utilizar el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>

void recibe_signal(int signum, siginfo_t *siginfo, void *context)
{
  /* Mostramos toda la información necesaria */
  printf ("[%d] Recibida %d (%s) de %d (UID: %d) ¿Error? %d \n",
      getpid(),
      signum,
      strsignal(signum),
      siginfo->si_pid,
      siginfo->si_uid,
      siginfo->si_errno);
}


int main(int argc, char *argv[])
{
    struct sigaction sact;
   
    sigfillset(&sact.sa_mask);
    /* Definimos la función callback */
    sact.sa_sigaction = recibe_signal;
    /* Queremos usar el callback sigaction en lugar del dado por signal() */
    sact.sa_flags     = SA_SIGINFO;

    sigaction(SIGUSR1, &sact, NULL);

    /* Bucle infinito, para cerrar el proceso, utilizar kill -9 PID */
    while (1)
      pause;

    return 0;
}

Como vemos sigaction tiene 3 parámetros:

  • La señal que queremos capturar
  • Un registro de tipo struct sigaction
  • La acción que se ejecutaba antes, por si queremos guardarla para restaurarla más tarde

Dentro del registro, tendremos como valores importantes (struct sigaction act):

  • sact.sa_sigaction : que especifica la función que la llamaremos, esta función será del tipo void funcion(int, siginfo_t*, void*), donde el primer int recibirá la señal que nos han enviado (tal y como hacía la función que asignábamos con signal), el segundo parámetro será información asociada a la señal, y la tercera el contexto de ejecución.
  • sact.sa_handler : será la función a la que se llama, es la misma que cuando hacemos signal(señal, funcion)
  • sact.sa_flags : Es un conjunto de flags, si especificamos SA_SIGINFO, estaremos dando paso a la función especificada por sa_sigaction, si no utilizaremos sa_handler. Aunque esta variable vale para más cosas, para esta práctica nos vale con saber esto. (man sigaction para más info)
  • sact.sa_mask
  • : Nos proporciona una máscara de las señales que serán bloquedas, podemos utilizar sigfillset() para rellenar toda la máscara automáticamente. Si queremos que unas se bloqueen y otras no podemos utilizar sigaddset() y sigdelset()

Ahora bien, la función que se llamará cuando venga una señal tendrá el prototipo que hemos visto antes con tres parámetros: la señal recibida, la información de la señal con un puntero a siginfo_t y el contexto de ejecución, que se pasará con un puntero a void, que por ahora no utilizaremos. La estructura que controla la información de la señal entre otros muchos datos nos facilitará lo siguiente:

  • si_pid : PID que nos envía la señal (y esta acción da título al post)
  • si_uid : Usuario que ejecuta el proceso que nos manda la señal
  • si_errno : Algún error que haya causado la señal
  • … para más información, man sigaction

Para preparar la sentencia tendremos que escribir varias líneas definiendo los valores del registro así como la llamada a la función sigaction(), por lo tanto podremos crear una función que tenga los parámetros más comunes a la hora de definir este tipo de acciones, así lo llamamos como a signal():

1
2
3
4
5
6
7
8
9
10
11
12
int sigact(int signum, void funcion(int, siginfo_t *, void *))
{
    struct sigaction sact;
   
    sigfillset(&sact.sa_mask);
    /* Definimos la función callback */
    sact.sa_sigaction = funcion;
    /* Queremos usar el callback sigaction en lugar del dado por signal() */
    sact.sa_flags     = SA_SIGINFO;

    return sigaction(signum, &sact, NULL);
}

En esta función es importante poner bien el prototipo de la función como parámetro, eso lo comenté en un post anterior sobre callbacks

Ahora, vamos a dejar el código más bonito, este programa implementará el control de errores y nos permitirá salir cuando recibamos 5 SIGINT (pulsemos 5 veces control+C):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>

void error(char *cadena);
int sigact(int signum, void funcion(int, siginfo_t *, void *));
void llegasigint();
void recibe_signal(int signum, siginfo_t *siginfo, void *context);

int main(int argc, char *argv[])
{
  if (sigact(SIGUSR1, recibe_signal)==-1)
    error("No puedo establecer SIGUSR1");

  if (sigact(SIGINT, recibe_signal)==-1)
    error("No puedo establecer SIGINT");
  if (sigact(SIGTERM, recibe_signal)==-1)
    error("No puedo establecer SIGTERM");
  if (sigact(SIGUSR2, recibe_signal)==-1)
    error("No puedo establecer SIGUSR2");
  if (sigact(SIGQUIT, recibe_signal)==-1)
    error("No puedo establecer SIGQUIT");

    /* Bucle infinito, para cerrar el proceso, utilizar kill -9 PID */
    while (1)
      pause();

    return 0;
}

void error(char *cadena)
{
  fprintf(stderr, "ERROR: %s (errno: %d: %s)\n", cadena, errno, strerror(errno));
  exit(1);
}

void llegasigint()
{
  static int num=0;     /* No he querido usar variables globales */

  num++;
  if (num==5)
    {
      printf ("FIN del programa\n");
      exit(1);
    }
}

void recibe_signal(int signum, siginfo_t *siginfo, void *context)
{
  /* Mostramos toda la información necesaria */
  printf ("[%d] Recibida %d (%s) de %d (UID: %d) ¿Error? %d \n",
      getpid(),     /* PID del proceso actual */
      signum,       /* Número de señal recibida */
      strsignal(signum),    /* Señal escrita en texto (inglés) */
      siginfo->si_pid,  /* PID del proceso que nos manda la señal */
      siginfo->si_uid,  /* Usuario que nos manda la señal */
      siginfo->si_errno);   /* Error producido */

  if (signum==SIGINT)
    llegasigint();
}

int sigact(int signum, void funcion(int, siginfo_t *, void *))
{
    struct sigaction sact;
   
    sigfillset(&sact.sa_mask);
    /* Definimos la función callback */
    sact.sa_sigaction = funcion;
    /* Queremos usar el callback sigaction en lugar del dado por signal() */
    sact.sa_flags     = SA_SIGINFO;

    return sigaction(signum, &sact, NULL);
}

Guía de supervivencia para disfrutar de Linux Mint Debian Edition XFCE (I : Instalación)

Viernes, 9 de Septiembre de 2011 Gaspar Fernández 19 comentarios

Me he decidido a escribir esta guía tras hablar con varios de mis alumnos de clases particulares. Siempre les intento explicar de las ventajas de un sistema operativo GNU/Linux y les animo a probarlo. Aunque la instalación generalmente no sea difícil (en las distribuciones tipo Fedora/Mandriva/Ubuntu/Linux Mint/…) siempre es algo nuevo, y supone una gran cantidad de información nueva para una persona que no ha tenido experiencia en estos sistemas, lo cual puede llegar a saturar a cualquiera. Es cierto, que para una primera toma de contacto es conveniente tener una mano amiga cerca para guiarnos durante el proceso, al menos la primera vez.

Las razones por las que he cogido Linux Mint Debian Edition XFCE son:

  • Porque es una distribución que uso, y me gusta
  • Porque muchas de las personas que van a tener una primera experiencia con Linux, suelen hacerlo en un ordenador más antiguo que el principal, y es bueno que la distribución esté optimizada y no consuma demasiados recursos
  • Porque aún hay cosas que tenemos que hacer en terminal, puede parecer un rollo, puede parecer retro, pero tenemos en nuestras manos una de las herramientas más potentes de la informática, disponible para cualquier ordenador, y para todos, sólo tenemos que tocar las teclas adecuadas
  • Porque me parece que tiene una relación velocidad/estabilidad muy buena
  • Porque me parece una buena distribución para embarcarse en el mundo Linux, y para aprender a utilizar el sistema (si queremos ser heavies podemos empezar con Gentoo, pero el usuario medio, incluso con interés puede terminar abandonando).
  • Porque, por todos estos motivos quiero colaborar en su difusión.

¿Qué podemos encontrar en esta primera guía?

  1. Descarga y copia en un soporte externo.
  2. Arranque e inicio de la instalación
  3. Configurar idioma, zona horaria y distribución de teclado
  4. Configurar las particiones
  5. Unos datos más previos a la instalación
  6. Para sentirse como pez en el agua…
  7. Notas finales

Descarga y copia en un soporte externo.

Antes de embarcarnos en la instalación debemos descargarnos la distribución (de forma libre y gratuita), desde algún mirror oficial. Debemos acceder a la descarga en 32bit o 64bit dependiendo de nuestra arquitectura y memoria RAM. Casi todos los procesadores nuevos (de 3 años hasta la actualidad) soportan 64bit (aunque al comprar el ordenador pudiera venir con una versión de 32bit de Windows, eso es lo de menos. Algo muy recomendable es que, independientemente de que nuestro ordenador soporte 64bit, si tenemos menos de 2Gb de RAM es mejor instalar la versión de 32bit.

Una vez descargado el archivo ISO (la imagen de CD o DVD), debemos grabarla en un disco o en una unidad USB flash o pendrive.

Pendrive PingüinoPara la primera opción, si estamos en Windows podemos utilizar alguna de estas utilidades, aunque podemos acceder a esta dirección, donde explican cómo hacerlo con una imagen de Ubuntu.

Si lo que queremos, para no gastar discos es hacerlo desde un pendrive, primero debemos asegurarnos de no tener nada importante dentro, ya que lo más recomendable es formatearlo y ejecutar la utilidad unetbootin, multi-plataforma, y muy fácil de usar.

Arranque e inicio de la instalación

Tal vez, nuestro ordenador cuando arranca, lea de primeras el CD o el puerto USB en busca de un soporte de arranque antes de iniciar el sistema operativo que tenemos instalado, con lo cual no tendríamos que preocuparnos.

Pero en ocasiones esto no es así. Normalmente existe una tecla con la que podemos seleccionar el dispositivo de arranque con un pequeño menú en pantalla (Escape, F1, F2, F5, F8, F10, F12, generalmente es alguna de estas, si no sale el logotipo de la marca normalmente pondrá en la pantalla qué tecla hay que pulsar), o pulsando Del (o Suprimir) para entrar en la configuración de la BIOS donde podremos seleccionar la secuencia de arranque (Boot Order / Boot Sequence) y pulsar F10 (casi siempre, pero mejor, leer la pantalla, que seguro que viene cómo hacerlo) para salvar cambios.

Al iniciar, arrancamos el menú con la opción por defecto y esperamos a que esté totalmente cargado antes de pulsar el icono Install Linux Mint y empezar con la instalación.

Configurar idioma, zona horaria y distribución de teclado

Linux Mint Debian Edition (Configurar idioma)Empezamos con la instalación en serio, y primero vamos a seleccionar nuestro idioma. En mi caso Español (España), aunque la configuración de idioma la terminaremos después de la instalación.

Una vez seleccionado el idioma, pulsamos sobre el botón Forward (Continuar).

LMDE Zona horaria

El siguiente paso será seleccionar la zona horaria. Buscamos el continente y la ciudad más cercana con la misma hora que la nuestra.

Y continuamos (Forward).

LMDE tecladoComo en las pantallas anteriores, aquí seleccionamos nuestra distribución de teclado. Normalmente la que viene por defecto está bien; en el cuadro de abajo podemos probar si el teclado está bien configurado escribiendo letras especiales y símbolos que suelen ser caracteres conflictivos y no en todos los teclados están distribuidos de la misma forma.

Configurar las particiones

Debemos distribuir en nuestro disco duro nuestra nueva instalación. En este punto se decidirá si la distribución se instala sola en el disco duro o debe convivir con otras instalaciones, incluso con Windows.LMDE particiones ISi pulsamos sobre Edit Partitions, tendremos la capacidad de crear, eliminar,  y redimensionar particiones en nuestro sistema, aunque por el momento no voy a tocar esa parte, es un sistema más o menos intuitivo donde podemos ver, como en esta imagen gráficamente el disco duro, y el espacio ocupado. Por ejemplo, si tenemos una partición Windows que ocupa todo el disco, podemos hacerla más pequeña (mejor si hacemos una copia de seguridad antes, aunque nunca pasa nada, seguro que la ley de Murphy juega en nuestra contra si no la hacemos).

LMDE particiones II

En mi caso, yo he creado varias particiones:

  1. Una muy pequeña (de unos 100Mb más o menos) que será para el arranque
  2. Una para intercambio (swap) 2 Gb más o menos. Es importante darle más tamaño que nuestra memoria RAM, ya que si hibernamos el equipo necesitaremos copiar toda nuestra RAM en el disco duro, y puede que necesitemos algo más para trabajar. Además de para hibernar, hablando mal y pronto esta partición nos servirá como RAM cuando ya tenemos llena la RAM.
  3. Partición raíz (yo suelo dar algo más de 1Gb, por lo que pueda pasar con respecto a archivos temporales), aunque no suele tener más de 400Mb siguiendo este sistema de particionado que propongo…
  4. NOTA: Si tienes disco duro libre, estaría bien crear una partición para archivos temporales, sobre todo si vamos a grabar DVDs, podremos almacenar las imágenes ISO de los discos temporalmente en esa partición.
  5. Una partición para los programas. En mi caso con 7.5Gb está bien, nos da para instalar muchos programas y nos sobrará disco, aunque si instalamos juegos o programas muy grandes tal vez se nos quede corta, habrá que ver el uso que vamos a hacer de nuestro Linux.
  6. Una partición de 2Gb para datos variables, estos serán los archivos de instalaciones de paquetes, colas de impresión, informes de sistema (logs) y algunas cosas más.
  7. La partición más grande de todas, para los directorios personales de los usuarios, donde éstos almacenarán sus datos, su configuración, sus descargas, etc.

Una vez hemos terminado de definir las particiones, procesamos los cambios y cerramos la ventana.

El siguiente paso es definir los puntos de montaje y cómo vamos a formatear nuestras particiones.

LMDE Particiones 3 (boot)Asignaremos a cada una de las particiones, un formato y un punto de montaje (este es el que determinará la misión de la partición en nuestro sistema, y será el punto desde el que podremos acceder a ella):

  1. La partición pequeña de arranque, se montará en /boot y será de tipo ext2
  2. A la partición swap no hará falta hacerle nada.
  3. La partición raíz se montará en / y será de tipo ext4
  4. La pertición de programas se montará en /usr y será de tipo ext4
  5. La partición de datos variables se montará en /var y será de tipo ext4
  6. La partición de datos de usuario se montará en /home ; si tienes una instalación anterior y no quieres perder los datos, no debes especificar el tipo, ya que se formatearía, lo dejamos tal cual.
  7. Si tienes  una partición para datos temporales, móntala en /tmp y dale de tipo ext4
  8. Si tienes particiones de una instalación de Windows anterior, puedes dejarlas sin montar, o darles un punto de montaje, por ejemplo /mnt/Windows , /mnt/Documentos_Windows  y no darle tipo, ya que se formatearía como indiqué en el punto 6. Linux Mint se encarga de detectar el tipo de formato de esa partición.

06_particiones_iv_todas

Una vez finalizado el particionado, pulsamos Forward de nuevo.

Unos datos más previos a la instalación

LMDE Nombre y algo másAntes de terminar, debemos especificar nuestro nombre (sólo para que se vea en pantalla, que también puede ser un alias), nuestro nombre de usuario, con el que entraremos al sistema; la contraseña y un nombre para el equipo: vamos sed originales y bautizad vuestro ordenador, empecemos a darle personalidad !!

LMDE GrubDesde esta ventana se instalará el gestor de arranque, un menú que se cargará antes que el sistema operativo y nos permitirá elegir  con qué sistema arrancar, también tendrá una opción de rescate.

LMDE resumenComo última ventana antes de la instalación veremos un resumen de lo que vamos a hacer, debemos prestar especial atención a las particiones , sobre todo si hay alguna que no queramos formatear, porque todavá no se han realizado los cambios (excepto si hemos creado, eliminado o redimensionado alguna partición). Si queremos mantener nuestra partición de Windows, debemos ver que se va a montar (Mount) en algún sitio (aunque no es obligatorio), pero bajo ningún concepto será formateada.

Para sentirse como pez en el agua…

Iniciamos la instalación, a partir de ahora va solo… se formateará, copiarán los archivos y se configurará de forma básica el sistema.

LMDE formateando

Uhmmm… ¿Nunca has instalado una distribución de Linux? Al poco tiempo de estar con el sistema, verás que puedes probar cómo funciona desde el mismo disco de instalación, lo que significa que, mientras se instala (aunque no tarde mucho), podrás navegar por Internet, escuchar música (de tu disco duro, por ejemplo) y hacer mil cosas más, sólo hay que echar un vistazo a los progrmas disponibles. Esto no es exclusivo de Linux Mint, muchas distribuciones lo permiten desde hace mucho tiempo… ¿eso no te lo permite Windows, verdad?

Por ejemplo, podemos configurar la red para navegar un rato por Facebook… (aunque esta configuración no se mantendrá una vez instalado el sistema)

LMDE configurar red
Pasados unos 15 minutos tendremos un sistema Linux Mint Debian Edition operativo; reiniciaremos el sistema, ¡listo!

LMDE reinicio

Notas finales

Una vez hayamos terminado la instalación es recomendable actualizar la distribución. Para ello, nos dirigimos al icono arriba a la derecha, como un escudo, junto al icono de la batería, aunque en la captura no aparecen (yo ya actualicé), nada más instalarla aparecerán algunos paquetes para actualizar.

LMDE Actualización

¡ Ya podéis disfrutar de un nuevo sistema !

¿Por qué enseñar Excel en lugar de enseñar a utilizar una hoja de cálculo?

Miércoles, 26 de Enero de 2011 Gaspar Fernández 1 comentario

Vivimos en una época de cambio. En la que muchas personas invierten dinero y tiempo en cursos para aprender a manejar diferentes programas.
Es cierto, hablando de las herramientas de Microsoft, que el Word o el Excel 95 no se parece en nada al Word o Excel 2007, lo cual provocaría que muchos de los que invirtieron dinero en cursos de la versión antigua, tengan que volver a invertir un dinero en la versión moderna. Recuerdo hace unos años que eran famosos los cursos de Wordperfect y Quattro pro y a día de hoy aunque esos desarrollos siguen vivos (con última versión en 2008) poca gente se acuerda de ellos.

Aunque pueda parecer muy tonto, podríamos pensar que la mayoría de la gente que hace un curso sobre un programa sabría manejar cualquier programa derivado; aunque la experiencia indica lo contrario. Al final, la mayoría de las personas que saben manejar un programa X, cuando se les cambia algo de sitio (cambio de versión, de programa, de SO siendo el mismo programa, en fin, cambios menores) dejan de saber manejar ese software.

A lo que voy es a eso, sé que en algunos sitios ya se aplica y no sugiero una migración total a sistemas libres (OpenOffice.org / LibreOffice aunque en mi opinión en algunos aspectos superan a MS Office, en otros aspectos no), pero en los mismos cursos en los que se enseña uno se podría dar la alternativa, las opciones generales en uno y en otro (o usando como ejemplo alguna otra suite ofimática con el objetivo de tener una información contrastada). La clave es tener unos conocimientos que sirvan el día de mañana, igual que al aprender informática general no podemos limitarnos a un Menu Inicio y una “e” para el navegador porque es importante conocer o al menos que nos suene la imagen reprensentativa de otros navegadores y de otros menúes de “inicio” (he visto a personas que al cambiarle “Inicio” por una K grande ya no saben dónde pulsar ni lo intentan).

Parte del problema es también la colaboración de MS en esos cursos, pero lo realmente grave son los lugares en los que no colabora dicha empresa y se hace publicidad de sus productos, ese es el comienzo de las verdaderas víctimas de la dependencia tecnológica, personas que directamente buscan cursos de estos programas y no de una suite ofimática inconscientes en principio de la droga de la que están siendo presos.

89 segundos. El tiempo medio de arranque de un ordenador…

Miércoles, 22 de Diciembre de 2010 Gaspar Fernández 4 comentarios

Hace poco en la revista Muy interesante leí un dato curioso. La media de tiempo de arranque de un ordenador es de 89 segundos, y eso hace que si lo arrancamos todos los días, perdamos algo más de 9h al año en arranques de ordenador.

Lo curioso es que a mi me parece algo excesivo, ¡89 segundos! Siempre depende del hardware que se tenga y de los servicios que se arranquen, bueno, y del sistema operativo que corra. Me gustaría hacer en los próximos días una pequeña encuesta vía Twitter/Facebook/Blog acerca de los tiempos de arranque de sus ordenadores.

A ver lo que sale… ¿ cuánto tarda tu ordenador en iniciarse ? Dejadlo en comentarios, me gustaría que escribierais el tiempo, el hardware (no muy exhaustivo tampoco CPU y RAM) o el tiempo que tiene el ordenador y el sistema operativo.

¿ Por qué me pasé a Linux ?

Domingo, 7 de Noviembre de 2010 Gaspar Fernández 2 comentarios

Mis andanzas con Linux empiezan en el año 2001, en busca de un sistema operativo nuevo, por descubrimiento e investigación. Todo empezó intentando instalar una Debian en un ordenador que tenía para hacer experimentos, aunque no funcionó (aunque parezca extraño lo primero que vi fue un Kernel Panic, y por aquel entonces no tenía ni idea de por qué). Luego fui probando, e intenté instalar Red Hat, pero no me hallaba con la consola, y luego probé Mandrake, que me funcionó a la primera y con la que estuve un par de años.

La primera impresión que tuve de un GNU/Linux era la de un sistema delicado, tenía esa impresión subjetiva de que iba a tocar algo y todo se iba a fastidiar, luego pasé a tener la impresión de que me ocultaba partes del hardware, yo veía que con MSDOS y Windows accedía a las unidades C: y D: y con Mandrake no encontraba la forma de hacerlo.

Lo primero que intenté hacer, después de ver todos los juegos de KDE (KDE2, por aquel entonces), fue intentar compartir archivos con mi máquina Windows, y preguntando en algunos foros di con SAMBA, y después de una tarde entera investigando y editando smb.conf por fin pude conseguirlo; luego probé CUPS (en principio, sólo quería ver cómo irían mis necesidades básicas) y luego lo utilizaba para conectar al IRC (Internet Relay Chat, que, por aquel entonces estábamos todos muy viciados, más o menos como ahora a Facebook).

Aunque por aquel entonces no avancé demasiado, no tenía mucha idea, y a veces, al mirar los manuales no me enteraba de nada. Así que lo dejé por un tiempo.

Mientras tanto seguí un par de años más con Windows, y llegué al punto de tener que formatear y reinstalar cada tres meses. Un driver de una impresora chocaba con una actualización de Windows que necesitaba para instalar un programa; por otra parte, el ordenador se volvió demasiado lento (tengo que decir que no llegué a ser usuario de Windows XP, lo último que probé fue Windows 2000), me daba problemas con pendrives (al enchufarlos y desenchufarlos), además de llegó un punto en el que perdí información de trabajos para la Universidad por culpa de algún capricho tipo pantalla azul, lo cual me frustró profundamente (Tengo que decir que soy un usuario al que le gusta tener muchas cosas abiertas, escuchar música, navegar por Internet, tener mensajería instantánea (ahora uso más twitter, pero bueno), al mismo tiempo tenía servidor web, de base de datos y algunos programas más abiertos (habría que ver mi Firefox 1.5 con 20 pestañas abiertas)), tengo que confesar que un año antes eliminé definitivamente MS. Office, porque cada vez era más pesado y me resultaba menos útil, porque no había forma de matar al dichoso clip/perro/mago que te “ayudaba”, y porque ocupaba mucho disco duro, por aquel entonces empecé a usar StarOffice. Además, Windows empezó a transmitirme la sensación de un sistema sistema frágil, a medida que lo iba utilizando, se iba haciendo más y más lento (siempre me tomé en serio el tiempo de arranque, aunque soy más de dejar el ordenador todo el día encendido; Windows arrancaba lento y tenía que reiniciar de vez en cuando…). Por otro lado tenemos el tema de antivirus, tenía que tener tiempo para ponerlo al día, y me quitaba recursos de sistema que yo en ocasiones necesitaba…

Por eso a primeros de 2004 decidí darle otra oportunidad a Linux, y mi principal objetivo era aprender, por eso, tras probar Ubuntu y terminar con una sensación de un sistema más delicado, un arranque un poco más rápido que Windows, y la instalación de muchas cosas que no quería decidí probar Gentoo ; por aquel entonces la instalación era más complicada que ahora, e incluso siguiendo el manual, tal vez a la primera no se instalara bien, en dos o tres semanas aprendí muchas cosas sobre el kernel, los componentes del sistema y algunos problemas de optimizar tanto al compilar (puede que a veces el programa no funcione exactamente como se espera), aunque tardé dos semanas, conseguí tener un entorno gráfico listo para empezar a trabajar. Lo más importante: arrancaba en menos de la mitad de tiempo que un Windows recién instalado, las aplicaciones iban mucho más rápido, aprendí a medio-defenderme y lo demás fue buscar aplicaciones que reemplazaran las que yo más utilizaba (o probar con wine a ver si pitaba la flauta).

Como suite ofimática estaba OpenOffice (era muy parecida al StarOffice, de hecho fue precursor; tenía Firefox, y Thunderbird para el correo (lo cambié porque antiguamente utilizando Outlook, porque parece que cada vez que actualizan ese programa dan menos información al usuario); necesité un visor de fotos y encontré gqview y una vez que tenía lo necesario para trabajar encontré una amplia gama de programas para hacer mi experiencia de usuario mucho más llevadera (kontact, xpad, aMSN, xmms, mplayer, y muchos más).
Sólo quedaba un editor de texto, ya que una de mis aficiones preferidas era la programación, y aunque estuve con Kate un tiempo, la que realmente me convenció (aunque fui advertido, de que el camino no sería fácil) fue EMACS (y llevaba un par de años buscando un editor de texto para Windows, aunque sin éxito).

Lo único que echaba de menos son programas para edición de vídeo, y de hecho me he tirado unos cuantos años sin hacer ningún montaje grande por esto mismo (con muchos de los programas existentes se puede montar vídeo, pero no se consigue mucha estabilidad), para mí la balanza no tiraba tanto en ese sentido. Aunque parece ser que ahora con Openshot hay una esperanza.

Tras mi experiencia he de decir que las curvas de aprendizaje de Windows y GNU/Linux son muy diferentes, mientras que en Windows llega un punto en el que te estancas (aunque aprendes algo, pero ya sea por poco interés, por no querer indagar más, pereza, etc, ya no aprendes demasiado), en GNU/Linux nunca dejas de aprender cosas todos los días; aunque lo más importante es que lo considero un sistema altamente productivo: hago más cosas en menos tiempo y además no tengo estrés añadido (como cuando llevaba 3 días con Windows sin reiniciar, ahora mismo tengo un uptime (tiempo encendido) de 25 días y no hay pérdida de rendimiento), es un sistema seguro (en 6 años, sólo he tenido un problema de seguridad en uno de mis equipos directamente conectados a Internet (sin router) y fue por no instalar una actualización crítica del núcleo; en cambio con Windows no era la primera vez que malgastaba una tarde entera (o varios días) en intentar limpiar un virus que acababa de salir a la luz, el antivirus no se había enterado y se iba a comer mis datos; o trabajar durante un día para averiguar qué le pasa a un programa que ha dejado de funcionar de un día para otro y terminar formateando.

Es un sistema que me hace sentir más cómodo trabajando, y en mi tiempo de ocio, apenas hay sorpresas (ojo, que a veces se cuelga, y tiene sus pataletas, pero en mucha menor medida, y el 80% de las veces, en mi experiencia, ha sido problema de hardware; como curiosidad, la última vez que me pasó fue problema de un cable de corriente suelto en un disco duro SATA)

La pesadilla de cambiarse a Windows

Lunes, 13 de Septiembre de 2010 Gaspar Fernández Sin comentarios

No suelo hacer un post sólo para enlazar un artículo, pero este me ha parecido interesante.

Y es que muchos vez un cambio a Linux como algo oscuro y siniestro, pero hay personas que consideramos el cambio a Windows como algo tremendamente difícil.

La pesadilla de cambiarse a Windows - Paraíso Linux

Personalmente, ¿ por qué uso Linux ?

  • Me hace más productivo
  • Me da más sensación de seguridad
  • Me permite hacer más cosas
  • Me gusta aprender algo cada día

Todo va mucho más allá de la filosofía del software libre.

Pequeña reflexión sobre el uso de Linux

Jueves, 15 de Julio de 2010 Gaspar Fernández Sin comentarios

Esto está basado en una conversación real. Hace un tiempo, encontré a una de esas personas, que yo llamo cariñosamente, un gafe informático, tras comprarse el primer ordenador, tuvo mala suerte instalando Windows (Millenium, sé que todos tenemos un amigo de un amigo al que le ha funcionado bien esta versión, pero no fue el caso de esta persona), cada poco tiempo le fallaba casi sin hacer nada, de estas veces que instalas cuatro programas locos que has instalado varias veces en varios ordenadores y en el ordenador de esa persona no entran. El problema no era fácilmente reproducible, ya que sólo pasaba a veces; pero aún así, con muchos problemas, aguantó un año con el ordenador.

Al año siguiente compró otro, y al instalar Windows XP, tuvo varios problemas, y hubo que devolver a la tienda el ordenador por errores de hardware (hasta que al final se lo dieron instalado y todo), y en cuestión de un par de meses, Windows empezó a dar pantallazos azules, al reinstalar, seguía dando pantallazos, esta vez por culpa de la actualización de un driver de la placa base. Sin él, el ordenador funcionaba, aunque el USB2.0 no funcionaba, y el disco duro iba un poco más lento, siguió con el mismo Windows XP que reinstalaba manualmente cada 3 meses (no hacía un uso intensivo del ordenador, no instalaba muchos programas, aunque sí usaba Internet Explorer).

Compró también un portátil, tenía un problema en la RAM, que más tarde verifiqué personalmente; aunque mientras duraba la garantía, los del servicio técnico, en los numerosos partes de reparación (y los numerosos viajes que se pegó el portátil antes de funcionar), decían que le habían cambiado la CPU, el teclado, la placa base (este no me lo creí), la batería un par de veces… (esta historia acabó en denuncia e indemnización)

Fue el momento en que conocí a esta persona, y le propuse una forma de reinstalar Windows más rápida que a la antigua usanza, haciendo imágenes de la partición de sistema (algún día hablaré de esto), el tema es que verifiqué con un live CD de linux, que el USB 2.0 de su ordenador iba perfectamente, la transferencia de datos también, y tras usarlo mi amigo durante un rato, me dijo que su ordenador nunca había ido tan rápido. En este momento, le propuse probar Linux durante un mes y la cosa fue así:
- Es muy difícil - A.
- Sólo cambian los nombres de algunos programas y el botón de Inicio, que no pone Inicio - Yo (le enseñé un sistema KDE)
- Sí, pero la consola es de escribir mucho - A.
- Bueno, pero no hay por qué utilizarla - Yo
- Pero si la tiene, será para algo - A.
- Sí, es como la de Windows, pero ésta hace más cosas - Yo
- Claro, pero hay que aprender más cosas para saber aprovechar todas sus características - A.
- Bueno, pero tienes el registro de Windows, las políticas de acceso, los servicios de sistema, etc; que seguro que ni los has tocado - Yo.
- Cierto, pero al no estar a la vista, no tengo por qué conocerlo - A.

(Por cierto, la A. es de Amigo)

En fin, una conversación que se alargó un poco más de forma improductiva, después de que Linux se ahorrara unas 4 horas al mes en reinstalaciones de disco duro (con lo de la imagen de sistema y partimage), rescatara una partición de Windows cuando XP dejó de detectarla (no lo sé, de un arranque a otro la partición desapareció, pero Testdisk la rescató cuando ningún programa para Windows fue capaz), y sobre todo cuando con Linux, estuve trabajando unas horas con su primer ordenador sin ningún problema.

Me he encontrado a varias personas que no quieren probar Linux, ni algo que no sea Windows, a pesar de las malas experiencias. Aunque los que somos usuarios o conocemos bien este sistema, veamos que para un uso más o menos normal (navegación, ofimática, grabación de discos y alguna cosa más), no se necesita ningún conocimiento especial, ni siquiera hay que mirar la consola. Es más algunas distribuciones nos detectan e instalan el hardware que enchufamos automáticamente, pero aún así, y después de mostrar estas características, muchos se muestran rehacios al cambio; muchos aún son cautivos de la frase: “Más vale malo conocido que bueno por conocer”, sin ninguna razón sólida; aunque cada vez encuentro más personas que se sienten incómodas con el Windows de toda la vida, con el mantenimiento que requiere, y con que se pierde tiempo y energía, y en el que muchas cosas que en cualquier otro sitio se solucionan con un pequeño script, en Windows requieren un programa y varios Megabytes.

Visita otras webs de la red