Kit de supervivencia para trabajos prácticos

Listamos aquí un material de referencia sobre un conjunto de conocimientos previos necesarios para la parte práctica de la materia.

Sin prejuicio a talleres puntuales que se planteen sobre la cursada, se recomienda el estudio individual de aquellas herramientas con las que los estudiantes estén menos familiarizados.

Software a instalar

El software indispensable para realizar los trabajos prácticos es:

  • Compiladores GCC (con soporte para 32-bits) y Clang
  • glibc (biblioteca estándar de C) y archivos “include” de Linux
  • gdb, make, git, clang-format

En Debian y distribuciones derivadas, se puede instalar mediante:

1
2
$ sudo apt install make git gdb clang clang-format \
	libbsd-dev gcc-multilib libc6-dev linux-libc-dev

QEMU

Es un software que permite la virtualización de diferentes arquitecturas (similar a VirtualBox). Además permite configurar la imagen de un disco y se conecta fácilmente con GDB.

Es necesario únicamente para la realización del TP2: sched

Además de QEMU es necesario instalar un simulador de BIOS (seabios).

1
$ sudo apt install seabios qemu-system-x86

La versión de QEMU debe ser 2.5 o superior, y la versión de seabios 1.10 o superior.

Existe un known issue relacionado a la versión de QEMU y la distribución del SO que se esté utilizando. Una solución es descargar la versión correcta de QEMU y hacer un downgrade de la versión actual.

Para saber si es necesario hacerlo, se recomienda ejecutar los siguientes comandos y comparar su salida (en especial tener en cuenta el número final de QEMU, en este caso 7.36. La versión de su SO, puede variar):

1
2
3
4
5
6
7
8
9
10
11
$ qemu-system-i386 --version | head -1

QEMU emulator version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.36)

$ gcc --version | head -1

gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

$ gdb --version | head -1

GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1

Si su salida es similar con la que se muestra, entonces es necesario realizar el downgrade de la versión. Se puede hacer de la siguiente forma:

  • Bajar el binario de QEMU
1
$ wget http://launchpadlibrarian.net/508305356/qemu-system-x86_2.11+dfsg-1ubuntu7.34_amd64.deb
  • Realizar el downgrade
1
$ sudo dpkg -i qemu-system-x86_2.11+dfsg-1ubuntu7.34_amd64.deb

Entorno virtual (recomendado)

Si bien la mejor alternativa es siempre correr en una distribución de Linux nativa, recomendamos a aquellos usuarios de Windows o MacOS que configuren un entorno Unix-like mediante el uso de una máquina virtual.

Proveemos un instructivo para configurar una máquina virtual de Ubuntu usando Vagrant y VirtualBox en esta página.

Manejo básico de entornos Unix (WIP)