viernes, octubre 29, 2010

Entrevista a Matías Vara: Creador de Toro Kernel

Una de las cosas fantásticas de viajar por las conferencias es conocer a gente genial. Es cierto, os podéis morir de envidia si queréis. En la última en la BugCON, además de charlar con Armin y Carlos, los dos pájaros encargados de mantener al BugCON, tuve la suerte de conocer a Matías Vara, un argentino entrañable, simpático, educado y brillante de 23 que con toda timidez se excusaba y preocupaba por no hablar de seguridad. "Es que yo sólo hice un kernel, y no vengo a hablar de seguridad".


Matías Vara, creador de Toro Kernel

Sí, la cara que se me quedó es la que podéis imaginar, así que, aparte de querer traérmelo para España al SOCtano, pasamos unas buenas horas tomando cervezas y habladon del kernel, de la comunidad, de los procesos de desarrollo, de como poder ganarse la vida haciendo el kernel, etc... Fue un descubrimiento, por lo que no pude resistirme a hacerle esta entrevista. Matías, eres un cráck!.

Saludos Malignos!


1.- Vale, esto tiene que tener algo de patológico… ¿cómo se acaba programando un kernel?

Bueno yo comencé programando desde muy chico, luego de pasar por muchos lenguajes y realizar aplicaciones simples llegué a una pregunta fundamental, ¿cómo funcionaba un S.O.?, eso me llevo a comenzar a estudiar acerca de Sistemas Operativos, cómo funcionaba internamente un micro, etc... Así me fue llevando mi curiosidad.

2.- Cuando te pregunté que si lo estabas haciendo en C y me dijiste que estabas hecho en Pascal, casi me caigo redondo. Cuéntanos ¿por qué Pascal?

Bueno, no tiene mucha explicación. Cuando se me ocurrió la idea de programar el kernel estaba utilizando Freepascal (compilador de Pascal), luego me dije: “Nadie ha escrito un S.O. en pascal, por qué no probar?”. Resultó que sin querer (como ocurren la mayoría de las cosas en la ciencia) PASCAL resultó ser un excelente lenguaje para el desarrollo del kernel. Primero desde el punto de vista académico, los algoritmos son fáciles de testear y esto es fundamental en un proyecto de estas magnitudes. Segundo, el compilador Freepascal no tiene nada que envidiarle al gcc. El resto queda en manos del programador, no vas a echarle la culpa al lenguaje porque hiciste un kernel que no funciona ;).

3.- ¿Qué has estudiado para llegar a construir un kernel?

Fundamental los manuales de desarrollo de Intel y AMD. Son unos librazos pero tienen todo lo necesario para conocer en profundidad los microprocesadores. Por otro lado, un terrible libro es el de Tanenbaum: “Sistemas Operativos, diseño e implementación”. Ese usa como ejemplo a Minix y al final incluye todo el código fuente. Otro lugar interesante es el código fuente de Linux. Su lectura es un poco tediosa pero se pueden obtener buenas ideas de allí.

4.- ¿Recibes apoyo económico por parte de alguna empresa interesada en tu kernel?

He recibido algún souvenir, pero nada importante. Es difícil transmitir la idea de TORO a la comunidad.

5.- ¿Por qué el nombre de Toro?

Hace un par de años te hubiera dicho porque quería algún animal que identificara mi país. Ahora me doy cuenta que eso es una justificación muy estúpida. Digamos que es porque sí.

6.- Siendo de la Plata y de Estudiantes, este año estarás feliz por ver al equipo puntero, pero… ¿ganará el torneo o habrá una caída al final?

Este año el león (así se llama a Estudiantes de La Plata) va a festejar!

7.- Compilas tu kernel en Windows, ¿por qué te decantaste por este sistema operativo para trabajar?

Bueno, no pensé mucho en el SO. Simplemente busqué la manera más simple de compilar el núcleo fácilmente. Actualmente toda la plataforma de desarrollo está sobre Windows Server 2003 x64.

8.- Y ahora… ya has acabado la ingeniería y Toro funciona pero, como siempre, es ampliable y mejorable… ¿vas a seguir con él o te vas a buscar otra ocupación?

Tengo muchas ganas de dedicarle el 100% de mi tiempo a TORO como lo había hecho antes de comenzar la Universidad. Nada mejor que hacer lo que uno le gusta.

9.- ¿Qué libros hay que leerse sí o sí para aprender a construir un kernel from scratch?

Fundamental el de Tanembaum, te abre la cabeza. Después es mucha imaginación y creatividad. Creo que eso es lo más divertido, el poder inventar métodos.

10.- ¿Te basaste en minix, Linux, hurd u otro kernel o como definiste la arquitectura?

Basicamente, saqué ideas de todos. Luego con papel y lápiz fui diseñando cada algoritmo, y finalmente lo pase a código.

11.- ¿Es compatible jugar al ordenador con programar a tan bajo nivel?

Creo que es perfectamente compatible, siempre y cuando no te pases 23hs por día jugando. Tienes que dedicar 4 o 5 horas por día al kernel para lograr avances. Particularmente no me gustan los juegos, no sé si tendrá que ver.

12.- Matías, este año no viniste a la Ekoparty, lo que es para matarte, ¿te animarás a enviar un paper para la del año que viene?

Prometido! no me dedico tanto a la seguridad así que no se si les gustará la idea de que arme una charla. De todos modos creo que podemos negociar el tema de conferencia. Me encantaría exponer allí.

13.- Y aparte de kernelear ¿qué libros de lectura no técnica te han gustado?

Bueno me gusta “El señor de los anillos”, de Filosofía, de Física. Últimamente estaba leyendo la correspondencia entre Einstein y Besso, ambos Físicos, muy interesante.

14.- ¿Crees que hay mercado en Argentina para el desarrollo de kernels?

No estoy seguro acerca del mercado. Creo que TORO puede cubrir una veta que actualmente está vacia, sin compentencia.

15.- ¿Y no ves factible, con el conocimiento de kernels que tienes, caer en el “lado chungo” y acabar haciendo exploits para Inmunity o Core?

Mmmmm, nunca se sabe. De todos modos no funciono en un entorno rutinario, terminaría no haciendo nada y yéndome.

16.- A ver, ahora algo serio… ¿qué hizo mal Argentina en el mundial para no ganar?

Jajjajajajja, más de uno me va a criticar, pero creo que tuvimos un DT pésimo. Y encima ese pulpo de mierda alemán!

17.- Eres de ingeniería y no de informática, ¿hay pique en la plata entre las facultades?

No hay pica directamente, pongámoslo así: Dos facultades que no realizan tareas independientes debido a que la ingeniería se complementa con la informática, en La Plata no existe ningún tipo de colaboración. No sé por qué es, creo que hay que dejar los egos de lado.

18.- Con la de dispositivos empotrados que hay… ¿te ves creando una empresa para intentar comercializar soluciones a medida?

Sí, creo que ese es el futuro de TORO. Hacer versiones del kernel TORO a medida. Estoy pensando portar TORO a arquitecturas ARM y a dispositivos como el BifferBoard.

19.- ¿Cuántas horas has invertido en la creación de Toro?

Comencé en el 2003 y hasta que empecé la facultad en el 2005 le dedicaba de 4 a 5 horas por día. Luego dedique cada vez menos tiempo por los estudios, ahora que egresé quiero ponerme a tiro de nuevo!

20.- Y la última, ¿recibes colaboración o hace falta gente que se anime a colaborar con Toro?

Bueno, siempre busqué colaboración, pero el desarrollo de un kernel no es una tarea muy gratificante. En general pasas mucho tiempo hasta que logras resultados y el proceso de compilación+debug resulta bastante tedioso (estoy trabajando en este momento para que sea mucho más rápido y simple). Esto ha provocado que el desarrollo del kernel no sea una tarea muy popular. De todas formas hay otras actividades relacionadas con el proyecto como: el sitio web, escritura de manuales, traducción del blog al inglés, etc… Cualquier interesado se puede poner en contacto conmigo a través del sitio de TORO: http://www.torokernel.org

Siempre estoy escuchando y prestando atención a los comentarios de la comunidad. En general me encuentro bastante solo en el desarrollo por eso cualquier duda siempre es muy bien recibida.

5 comentarios:

  1. Vaya crá :)

    Muy wapa la entrevista.

    Saludos.
    Manolo

    ResponderEliminar
  2. Menudo crack este Matías. Voy a echarle un ojo al proyecto.
    Me encanta la sección de entrevistas, Maligno. Tienes que publicar más!!

    Un saludo!

    ResponderEliminar
  3. Si señor!, no hay como el Pascal para hacer buena programación estructurada. Fue un grave error de Borland cambiar el nombre a Delphi.

    Aquí buenos motivos para utilizarlo: http://wiki.freepascal.org/Why_use_Pascal

    La entrevista está muy bien y al Toro Kernel hay que echarle un vistazo.

    Saludos.

    ResponderEliminar
  4. Joo! que copada la entrevista che, voy a ver que onda el proyecto, un capo matias.

    Saludos

    ResponderEliminar
  5. Un grande mati... muy bien tipo, buen ingeniero, buen programador y tiburon...
    mas alla de lo personal Toro es un trabajo impresionante y se merece toda la atencion de la comunidad..

    Te felicito Maligno por difundir este tipo de trabajo y celebro la colaboracion.. espero escuchar mas de este tipo de cosas

    saludos a todos!

    ResponderEliminar