One of the books about Linux kernel development that I like the most is Linux Device Drivers 3. In my opinion the best thing about the book is that all the example drivers covered in the book are implemented as memory devices. So one doesn't need special hardware in order to use the example drivers.
With this approach one can understand the ABIs, interfaces and helpers that the kernel offers to driver authors while having drivers for (pseudo) devices to play with.
A different approach is used in the book Essential Linux Device Drivers where the authors explain how drivers for real devices works. I think both approaches and books are complementary.
The problem is that LDD3 book is now a few years old and most of the example drivers do not compile in recent kernels. Also, many new changes were introduced in the kernel since 2.6.10. So examples for many ABIs are not covered in the book, like netlink sockets, threaded interrupt handlers, debugfs, etc.
I started a project to keep the LDD3 examples up-to-date with recent kernels and have plans to include more examples that cover more recent kernel features like the listed before.
The project can be found here.
Saturday, January 1, 2011
Saturday, November 20, 2010
Configuraciones Git
Esta es la lista de opciones de configuración que suelo utilizar en mis repositorios Git.
Información sobre el autor:
Agregar colores a la salida:
Cambiar el editor por defecto a vi:
La opción --global establece la configuración de manera global y no por repositorio.
Algunos comandos útiles
Revertir el último commit
Borrar archivos no versionados
Establecer el repositorio al estado del último commit
Generar parches firmados con los últimos n commits (ejemplo: los últimos 2)
Información sobre el autor:
$ git config --global user.name 'Javier Martinez Canillas'
$ git config --global user.email martinez.javier@gmail.com
Agregar colores a la salida:
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto
$ git config --global color.interactive auto
Cambiar el editor por defecto a vi:
$ git config --global core.editor vim
La opción --global establece la configuración de manera global y no por repositorio.
Algunos comandos útiles
Revertir el último commit
$ git reset --soft HEAD^
Borrar archivos no versionados
$ git clean -f
Establecer el repositorio al estado del último commit
$ git reset --hard
Generar parches firmados con los últimos n commits (ejemplo: los últimos 2)
$ git format-patch -s -2
Saturday, November 13, 2010
@caos.uab.es
Comencé este blog para tener un lugar donde ir documentando mis experiencias con la plataforma Java EE 6 en un proyecto grande. Como en ese entonces la plataforma acabada de salir y no existía mucha documentación al respecto, me pareció interesante escribir sobre lo que iba aprendiendo.
Como comente en mi ultima entrada, me mude a vivir a Barcelona y aunque me ofrecieron seguir en el proyecto como asesor remoto, decidí no continuar para poder dedicar todo mi tiempo y esfuerzo al Máster en Computación de Altas Prestaciones que empecé en la Universitat Autónoma de Barcelona.
Por lo tanto, ya no voy a escribir sobre desarrollo de aplicaciones web ni Java EE 6, lastimosamente no llegue a escribir ni el 10% de lo que quería, tengo una lista de +50 items sobre los que me hubiese gustado escribir.
De todas maneras, me pareció interesante y útil mantener un blog, además de tener un promedio de 600 visitas/mes. Así que voy a continuar con mi blog, solo que de ahora en más probablemente escriba sobre temas relacionados con mi máster, por ejemplo computación paralela, aplicaciones paralelas de pasos de mensajes, evaluación y predicción de rendimientos de aplicaciones paralelas, etc.
Como comente en mi ultima entrada, me mude a vivir a Barcelona y aunque me ofrecieron seguir en el proyecto como asesor remoto, decidí no continuar para poder dedicar todo mi tiempo y esfuerzo al Máster en Computación de Altas Prestaciones que empecé en la Universitat Autónoma de Barcelona.
Por lo tanto, ya no voy a escribir sobre desarrollo de aplicaciones web ni Java EE 6, lastimosamente no llegue a escribir ni el 10% de lo que quería, tengo una lista de +50 items sobre los que me hubiese gustado escribir.
De todas maneras, me pareció interesante y útil mantener un blog, además de tener un promedio de 600 visitas/mes. Así que voy a continuar con mi blog, solo que de ahora en más probablemente escriba sobre temas relacionados con mi máster, por ejemplo computación paralela, aplicaciones paralelas de pasos de mensajes, evaluación y predicción de rendimientos de aplicaciones paralelas, etc.
Sunday, July 18, 2010
mv /home/javier/ /espanya/barcelona/
Empecé este blog para tener un lugar donde escribir sobre los problemas y soluciones con los que me encontraba durante el desarrollo de un sistema empresarial utilizando la plataforma Java EE 6.
Ya que es una plataforma nueva y no hay tanta documentación, me pareció que a alguien le podría servir lo que escribo.
Tengo una lista de temas que me gustaría tocar en el blog y no encuentro el tiempo, mas que nada es sobre JPA 2.0, JSF 2.0, JCDI 1.0, Facelets y Jquery, aunque también hay varios temas que involucran a la plataforma de Liferay e incluso desarrollo para el kernel de Linux.
Lastimosamente no tengo (o no encontré) mucho tiempo para escribir todo lo que quiero. Ahora mismo estoy muy ocupado con la logística para mi próximo viaje a Barcelona e incluso estic estudiant Català (hasta ahora lo que más me gustó es que la ñ no forma parte de su alfabeto). Espero encontrar un poco de tiempo libre para seguir escribiendo sobre todo lo que tengo pendiente de publicar.
Fins la propera!
Ya que es una plataforma nueva y no hay tanta documentación, me pareció que a alguien le podría servir lo que escribo.
Tengo una lista de temas que me gustaría tocar en el blog y no encuentro el tiempo, mas que nada es sobre JPA 2.0, JSF 2.0, JCDI 1.0, Facelets y Jquery, aunque también hay varios temas que involucran a la plataforma de Liferay e incluso desarrollo para el kernel de Linux.
Lastimosamente no tengo (o no encontré) mucho tiempo para escribir todo lo que quiero. Ahora mismo estoy muy ocupado con la logística para mi próximo viaje a Barcelona e incluso estic estudiant Català (hasta ahora lo que más me gustó es que la ñ no forma parte de su alfabeto). Espero encontrar un poco de tiempo libre para seguir escribiendo sobre todo lo que tengo pendiente de publicar.
Fins la propera!
Tuesday, April 20, 2010
Convertir imagen VirtualBox .vdi a Qemu .raw
Me es mas sencillo montar las imágenes de QEMU que las de VirtualBox. Pero no me fue intuitivo como convertir una imagen VirtualBox .vdi en una imagen RAW.
En la mayoría de los blogs y tutoriales hablan de utilizar un binario llamada vditool, el problema es que aparentemente esta herramienta ya no esta soportada por VirtualBox.
Finalmente encontré como convertir la imagen en esta wiki http://en.wikibooks.org/wiki/QEMU/Images#Exchanging_images_with_VirtualBox.
Se utiliza el comando VboxManage
Ahora ya puedo montar mi imagen
y también iniciarla con QEMU
En la mayoría de los blogs y tutoriales hablan de utilizar un binario llamada vditool, el problema es que aparentemente esta herramienta ya no esta soportada por VirtualBox.
Finalmente encontré como convertir la imagen en esta wiki http://en.wikibooks.org/wiki/QEMU/Images#Exchanging_images_with_VirtualBox.
Se utiliza el comando VboxManage
VBoxManage internalcommands converttoraw ubuntu.vdi ubuntu.raw
Ahora ya puedo montar mi imagen
mount -o loop,offset=32256 ubuntu.raw /mnt/diskimage/
y también iniciarla con QEMU
qemu -m 512 -hda ubuntu.raw -boot c
Subscribe to:
Posts (Atom)