Etiquetas

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...

9/03/2007

I love the sound of you walking away

Franz Ferdinand, responsables de que lleve todo el día con esta canción en la cabeza.

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:

/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.

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.

6/21/2007

John Lasseter, enderezando Disney

Más buenas noticias en cuanto a cine.


Tras la compra de Pixar por parte de Disney, muchos especularon que en realidad lo que se quería era poner a los directivos de Pixar al frente del gigante de la animación occidental. Pues desde luego parece que han acertado.John Lasseter, fundador de Pixar y director de películas de animación tan exitosas como Toy Story, acaba de prohibir los churros directos a video y DVD. Cuando digo churros hablo de secuelas en plan El Rey León 24 o La Sirenita 51. Y es que según afirma Lasseter, semejantes despropósitos hacen que el público pierda el respeto a las grandes producciones que elaboran para la gran pantalla. Personalmente estoy de acuerdo.


¿La gota que colmó el vaso? Una película con animación hecha por ordenador llamada Campanilla. Sí, la de Peter Pan. Y pensada como la primera parte de una serie dedicada a las hadas de Disney, como también se quería hacer con las princesas. Lasseter decidió tras visionar una parte del trabajo cancelar el proyecto así como muchos otros en desarrollo, y despedir a la presidenta de DisneyToon Studios, responsable de la dirección actual.


En unos cuantos años veremos si Disney vuelve a resurgir como un coloso de la animación con la innovación por bandera o se pega un batacazo por no ir en una línea totalmente comercial. Naturalmente deseo lo primero.

Blade Runner: The Final Cut

Warner Bros ya tiene los derechos de distribución. En otoño de este año (coincidiendo con el 25 aniversario) saldrá la edición especial multidisco, incluyendo la versión original estadounidense (1982), la versión internacional (con mínimos cambios respecto a la anterior), el montaje del director (1992) y el montaje final, remasterizado y con escenas nuevas, bajo la supervisión de Ridley Scott.


Y ya ha salido un trailer en la televisión estadounidense:



Ahora podré volver a ver una nueva versión de mi película favorita, y esta vez con la calidad propia de un DVD. No como el que poseo del montaje del director que fue pasado tal cual, sin mejoras en la calidad de imagen ni de sonido.

5/30/2007

Mapas de Google, ahora con visita virtual

Google está empezando a introducir una nueva prestación en Google Maps que permite ver la calle a partir de fotos tomadas desde un automóvil. El sistema es espectacular, permitiendo rotar la cámara, avanzar, etc. De momento sólo hay ciudades estadounidenses, pero seguramente la cosa se extienda a otros países.

Un ejemplo.

5/29/2007

LOLCODE

LOLCODE, un lenguaje de programación creado para adaptarse a la forma cutre de escribir en internet. Hasta el punto de ir todo en mayúsculas. Los if-then-else son la pera. De un ejemplo de la página principal:


HAI
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERROR!"
KTHXBYE

4/14/2007

I <3 U




Esta chorrada me tiene riendo desde hace dos horas. El que no lo entienda, que vea la película.