# Entorno del curso de Sistemas Operativos: C sobre Linux + xv6-riscv + simuladores de OSTEP.
# Imagen nativa (amd64 o arm64): funciona igual en Linux, Windows (WSL2) y
# macOS, incluido Apple Silicon, sin emulación del contenedor.
FROM ubuntu:24.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential gdb gdb-multiarch make git ca-certificates \
        gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu qemu-system-misc \
        valgrind strace ltrace man-db manpages-dev manpages-posix-dev \
        python3 vim nano less file tmux procps acl whois \
    && rm -rf /var/lib/apt/lists/*

# Para depurar xv6: permitir que gdb cargue el .gdbinit del proyecto.
RUN echo 'set auto-load safe-path /' > /root/.gdbinit

# En Linux y WSL2 los repositorios montados pertenecen a otro usuario; sin esto,
# git (que corre como root) los rechaza por "dubious ownership".
RUN git config --system --add safe.directory '*'

WORKDIR /work
CMD ["bash"]
