Archivo de la etiqueta: programación

Curso de programación en C para GNU/Linux (final II)

Hace bastante tiempo escribí un curso de programación en C para GNU/Linux, unos años después lo publiqué en este blog, y finalmente colgué un PDF con el curso maquetado.

A la gente le gustó bastante y todavía recibo algunas dudas, correcciones o comentarios sobre el curso, lo que me hace bastante ilusión porque significa que se sigue utilizando 🙂

A raíz de los premios startup2.0, recordé la existencia de bubok, una web en la que subes tu PDF, diseñas una portada y permites que la gente pida copias impresas de tus escritos. Muy buena idea si quieres difundir tus trabajos evitando gastarte mucho dinero al principio. Intenté subir mi documento desde el portátil del trabajo (Debian + Iceweasel) y no me funcionó muy bien la web, así que miré un poco por Internet y vi que Lulu hacía prácticamente lo mismo. Enredé un poco con la web y finalmente subí el curso.

Lo podéis descargar y comprar desde mi tienda en Lulu: http://stores.lulu.com/garaizar. El material es copyleft, la descarga gratuita y si queréis tener las 81 páginas en papel, tendréis que pagar 6 euros, precio amigo ;-D (de esos 6 euros creo que me llevo 0.30 o algo así, intenté poner lo mínimo).

Si alguien se lo compra, que mande una foto de cómo queda, ¿vale? 😉

Actualización: A sugerencia de Angel María, he vuelto a probar en Bubok y de maravilla (ahora con Ubuntu 8.04 y Firefox 3beta5). Aquí tenéis el resultado: http://www.bubok.com/libros/1561/gnulinux-programacion-de-sistemas.

Metaprogramación (IV): Programación de virus para código fuente C

Continuando (y muy probablemente terminando ya) con el tema de la metaprogramación, abordaremos todas las ideas introducidas hasta ahora en un artículo publicado en el e-zine sobre virus informáticos 29a (0x29a en hexadecimal es 666 en decimal ;-)). En él, se nos muestra cómo un programa en C podría ser capaz de infectar a otros programas en C no compilados todavía, incluyendo funciones de infección, es decir, convirtiéndolos así mismo en vectores de infección. El artículo tiene ya su tiempo, pero creo que es un buen broche final a esta serie de comentarios e impresiones sobre la programación de programas que programan ;-D

Sigue leyendo

Meta-programación (III): Colección de quines en C

Siguiendo con los artículos anteriores sobre meta-programación y quines, os dejo una recopilación (extraída de varios sitios de quinéfilos como este ) de unos cuantos programas que generan su propio código en varios lenguajes de programación diferentes, para que veáis cómo se entretienen algunos hackers…

Sigue leyendo

Meta-programación (II): Cómo construir nuestros propios quines

En el anterior artículo ya habíamos avanzado brevemente qué es un quine. Tomando la definición de la Wikipedia, en informática, un quine es un programa (un tipo de metaprograma) que produce su código fuente como única salida. Por diversión, algunos hackers intentan desarrollar el quine más corto posible en cualquier lenguaje de programación. Los quines se llaman así por Willard Van Orman Quine (1908-2000), que hizo un estudio extensivo de autoreferencia indirecta y sugirió un caso famoso de paradoja sin autoreferencia directa: “Da como resultado un enunciado falso si es precedido por su cita”. ¿Estoy confundiéndote con tanta palabrería? Pongámonos manos a la obra…

Sigue leyendo

Meta-programación (I): "Reflexiones sobre confiar en la confianza"

Hace unas semanas recibí un email de un investigador del CERT en México preguntándome sobre cómo Ken Thompson (padre de C y de UNIX, ahí es nada 😉 ) comentó en un discurso tras la entrega de los premios de la ACM cómo pudo haber troyanizado todo sistema existente derivado de UNIX, como comenté en mi artículo sobre Virus en GNU/Linux. Mucha otra gente lo ha preguntado y siempre los he remitido al documento original, pero me voy a permitir la licencia de hacer una traducción informal para quienes no se defiendan bien con la lengua de Shakespeare… (las correcciones a la traducción son MUY bienvenidas ;-).

Sigue leyendo

Módulo del núcleo para Solaris orientado a la seguridad

En el anterior ártículo hicimos una aproximación al mundo de los Loadable Kernel Modules (LKM) en Solaris. En esta ocasión desarrollaremos un módulo del núcleo orientado a mejorar la seguridad del sistema por parte del administrador. Es un módulo muy sencillo, pero sirve para conocer cómo programar módulos más complejos.

Sigue leyendo

Programación de LKMs en Solaris

Como últimamente estoy muy liado (tengo que preparar e impartir clases en la facultad y en el master de seguridad), voy a permitirme rescatar código que tenía por aqui olvidado para no dejar el blog abandonado. Lo que voy a contar no es nada nuevo, pero no hay tampoco mucha documentacion en castellano y quiza a alguien le venga bien. En este texto aprenderemos a programar modulos del nucleo para Solaris y en el siguiente articulo veremos un ejemplo practico. El codigo esta sin tocar desde hace anos, asi que puede que haya algun bug, no estaria de mas que lo comentarais si asi lo veis 😉

Sigue leyendo

Curso de programación en C para GNU/Linux (final)

Durante estas últimas semanas hemos estado viendo poco a poco cómo programar en C para GNU/Linux, con bastantes ejemplos e interminables explicaciones (siento ser tan chapas ;-P). Algunos de vosotros me habéis pedido un formato un poco más manejable para tener todo el curso reunido en un único documento que poder imprimir a gusto y hacer anotaciones, correcciones o lo que sea. Quiero aprovechar la entrada número 50 en mi blog para colgar este curso tanto en ODT como en PDF. ¡Qué lo disfrutéis! 😉

Sigue leyendo

Curso de programación en C para GNU/Linux (VII)

En la pasada entrega utilizamos la forma más rudimentaria de comunicación entre procesos: las señales. Esta vez vamos a analizar una manera mucho más provechosa de comunicar datos entre procesos: las tuberías. También hablaremos de los mecanismos IPC de comunicación entre procesos, pero no lo haremos con tanto detalle O:-)

Sigue leyendo