Lo de "War is over" es relativo según de dónde hablemos, pero el mensaje queda claro.
Etiquetas
importado
(41)
programación
(34)
desahogo
(30)
linux
(28)
cine y TV
(22)
humor
(21)
software libre
(19)
internet
(17)
música
(13)
móviles
(12)
videojuegos
(8)
English
(7)
libros
(6)
vodafone
(6)
google
(5)
java
(5)
libreoffice
(3)
openoffice
(3)
consumismo
(2)
desarrollo con qt en nokia 5800
(2)
economía
(2)
nokia
(2)
qt
(2)
c++
(1)
ciencia
(1)
12/24/2007
12/10/2007
11/16/2007
10/13/2007
Aprenda a tocar Green Eyes
El rasgueo es lo que nunca te suelen explicar en las tablaturas y acordes. Y me encuentro esto en youtube. Qué grande...
Actualización: El video anterior lo quitaron, así que he dejado un tutorial en español más reciente.
Actualización: El video anterior lo quitaron, así que he dejado un tutorial en español más reciente.
10/12/2007
Cine Club Universitario: El Séptimo Sello

El 8 de noviembre, el Cine Club Universitario de Almería proyecta en el Teatro Apolo la película El Séptimo Sello de Ingmar Bergman. Sesiones a las 20:00 y 22:30, entrada por 2,5 euros.
Yo esa película ya la he visto, y es bastante buena, así que iré a verla otra vez (ahora en pantalla grande). Aparte, se puede leer el programa de otoño para ver el resto de películas que se proyectan.
9/05/2007
Libros de programación gratis para descargar
Brutal lista de libros que se han currado los chicos del foro de Ubuntu. La página que más me ha gustado ha sido la de www.freetechbooks.com, por organización y oferta.
Ahora a ver si acabo con los exámenes y le saco provecho a alguno de esos...
Ahora a ver si acabo con los exámenes y le saco provecho a alguno de esos...
9/03/2007
8/02/2007
Llamadas al sistema en el núcleo 2.6 de linux (escrito en octubre del 2005)
Esta mañana hemos realizado en clase de Diseño de Sistemas Operativos la práctica 2, de creación de llamadas de sistema en el núcleo (sin usar módulos).
Aunque el guión estaba preparado para un núcleo 2.4, hemos logrado adaptarlo para el 2.6.13.4 con unos cambios mínimos.
En primer lugar, hay que introducir la entrada de la llamada al sistema en la lista. Anteriormente se introducía en este archivo:
Pero ahora se han separado las entradas de llamadas al sistema en un archivo distinto, que es incluído en el anterior. El nuevo archivo es éste:
La nueva llamada al sistema se introduce al final de la lista, con una entrada así:
El comentario es el número de la llamada al sistema. Es opcional, pero se recomienda incluirlo cada 5 llamadas por legibilidad del código.
Una vez introducida en la tabla de llamadas, debemos introducir su prototipo en la cabecera unistd.h . En mi caso, lo añadí únicamente al unistd.h de la arquitectura i386, localizado en /usr/src/linux/include/asm-i386/unistd.h. El prototipo se incluye con esta entrada, nuevamente al final de la lista y siempre con cuidado de asignarle un número nuevo, no usado:
Justo debajo debería aparecer una línea que indica el número de llamadas al sistema en la lista. Debemos incrementar ese número tantas veces como llamadas nuevas hayamos introducido, o podrían darse problemas una vez compilado el núcleo:
Ahora que la nueva llamada consta en el sistema, podemos introducir el cuerpo de la llamada. Esto podemos hacerlo al final del archivo /usr/src/linux/kernel/sys.c . Por ejemplo:
Ya sólo queda recompilar e instalar el núcleo con los cambios y hacer un programa que pruebe que nuestra llamada funciona.
Antes de ese paso, nos encontramos con problemas ya que el código estaba preparado para el núcleo 2.4, mientras que no era compatible con el 2.6.13. Por ejemplo, el puntero p_pptr (que apunta al padre de un proceso en la estructura task_struct) ahora es llamado parent.
También fue necesario cambiar la función verify_area (deprecada en el 2.6) por access_ok . Los parámetros son los mismos, pero el resultado es justo el contrario (mientras que verify_area devuelve 0 cuando se puede acceder al area de memoria indicada, access_ok devuelve 0 cuando no se puede acceder.
Aunque el guión estaba preparado para un núcleo 2.4, hemos logrado adaptarlo para el 2.6.13.4 con unos cambios mínimos.
En primer lugar, hay que introducir la entrada de la llamada al sistema en la lista. Anteriormente se introducía en este archivo:
/usr/src/linux/arch/i386/kernel/entry.S
Pero ahora se han separado las entradas de llamadas al sistema en un archivo distinto, que es incluído en el anterior. El nuevo archivo es éste:
/usr/src/linux/arch/i386/kernel/syscall_table.S
La nueva llamada al sistema se introduce al final de la lista, con una entrada así:
.long sys_nueva_llamada /* 375 */
El comentario es el número de la llamada al sistema. Es opcional, pero se recomienda incluirlo cada 5 llamadas por legibilidad del código.
Una vez introducida en la tabla de llamadas, debemos introducir su prototipo en la cabecera unistd.h . En mi caso, lo añadí únicamente al unistd.h de la arquitectura i386, localizado en /usr/src/linux/include/asm-i386/unistd.h. El prototipo se incluye con esta entrada, nuevamente al final de la lista y siempre con cuidado de asignarle un número nuevo, no usado:
#define __NR_nueva_llamada 375
Justo debajo debería aparecer una línea que indica el número de llamadas al sistema en la lista. Debemos incrementar ese número tantas veces como llamadas nuevas hayamos introducido, o podrían darse problemas una vez compilado el núcleo:
#define NR_syscalls 376
Ahora que la nueva llamada consta en el sistema, podemos introducir el cuerpo de la llamada. Esto podemos hacerlo al final del archivo /usr/src/linux/kernel/sys.c . Por ejemplo:
asmlinkage long sys_nueva_llamada(void){
printk("Esta llamada es nueva\n");
return 0;
}Ya sólo queda recompilar e instalar el núcleo con los cambios y hacer un programa que pruebe que nuestra llamada funciona.
Antes de ese paso, nos encontramos con problemas ya que el código estaba preparado para el núcleo 2.4, mientras que no era compatible con el 2.6.13. Por ejemplo, el puntero p_pptr (que apunta al padre de un proceso en la estructura task_struct) ahora es llamado parent.
También fue necesario cambiar la función verify_area (deprecada en el 2.6) por access_ok . Los parámetros son los mismos, pero el resultado es justo el contrario (mientras que verify_area devuelve 0 cuando se puede acceder al area de memoria indicada, access_ok devuelve 0 cuando no se puede acceder.
8/01/2007
Escribiendo código portable
Uno de los mayores problemas cuando un proyecto debe funcionar en varios sistemas es ver cómo diferentes compiladores se atragantan en código que funciona bien en otro compilador.
La guía de portabilidad en C++ del proyecto Mozilla es una buena lectura para evitarse quebraderos de cabeza después. Aunque está orientada a C++, tiene aspectos aplicables a C. Por ejemplo no hay que olvidar que el inlining de funciones es una lotería, especialmente en compiladores como el de HP-UX, donde directamente se sugiere aniquilar todo uso de inline.
La guía de portabilidad en C++ del proyecto Mozilla es una buena lectura para evitarse quebraderos de cabeza después. Aunque está orientada a C++, tiene aspectos aplicables a C. Por ejemplo no hay que olvidar que el inlining de funciones es una lotería, especialmente en compiladores como el de HP-UX, donde directamente se sugiere aniquilar todo uso de inline.
7/07/2007
Cuando el diablo no tiene nada que hacer...
De vuelta de Hamburgo con un certificado B1 de alemán debajo del brazo. ¿Ahora qué hace uno para entretenerse?
Pues aprender guitarra por mi cuenta, aprovechando la que mi hermano mayor ya no usa. A los 25 años empiezo un poco tarde, pero aun así me gustaría llegar a tocar como este hombre, aunque tenga 40 cuando lo logre:
No tengo ganas de meterme a cursos sin saber si de verdad sirvo, así que mejor aprender un poco por mi cuenta antes de decidir. De momento recursos en internet no faltan para ir empezando. De lo más decente que he visto ahora mismo es la web de justinguitar.com. Lo mejor es que tiene videotutoriales en youtube que ayudan bastante para saber si la estás fastidiando al tocar un acorde o no. Y gratis, al menos la parte para empezar.
Lo peor ha sido afinar la guitarra, pero gracias a Dios hay programas para afinar bastante buenos.
Veremos si llego a algún sitio con esto, o si la guitarra se queda criando polvo junto al kimono de karate.
Pues aprender guitarra por mi cuenta, aprovechando la que mi hermano mayor ya no usa. A los 25 años empiezo un poco tarde, pero aun así me gustaría llegar a tocar como este hombre, aunque tenga 40 cuando lo logre:
No tengo ganas de meterme a cursos sin saber si de verdad sirvo, así que mejor aprender un poco por mi cuenta antes de decidir. De momento recursos en internet no faltan para ir empezando. De lo más decente que he visto ahora mismo es la web de justinguitar.com. Lo mejor es que tiene videotutoriales en youtube que ayudan bastante para saber si la estás fastidiando al tocar un acorde o no. Y gratis, al menos la parte para empezar.
Lo peor ha sido afinar la guitarra, pero gracias a Dios hay programas para afinar bastante buenos.
Veremos si llego a algún sitio con esto, o si la guitarra se queda criando polvo junto al kimono de karate.
Suscribirse a:
Entradas (Atom)