🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónSímbolos y rutas de compilación que quedan a la vista
5 tareas · 40 min · Principiante
Lo que compensa el tamaño de un binario de Go o Rust es todo lo que deja escrito sobre sí mismo. Un ejecutable de Go guarda el nombre del módulo del autor, las versiones de sus dependencias, los ajustes con que se compiló y, salvo que se recorten, las rutas de los archivos fuente del equipo donde se armó. Uno de Rust deja rutas parecidas en los mensajes de error que lleva preparados. En la estación de Colchones Altovelo están las fichas de M-7401 (Go) y M-7402 (Rust): se leen, se saca lo que identifica al proyecto del autor y se decide cuánto pesa cada pista.
Objetivo de la sala
Lo que compensa el tamaño de un binario de Go o Rust es todo lo que deja escrito sobre sí mismo. Un ejecutable de Go guarda el nombre del módulo del autor, las versiones de sus dependencias, los ajustes con que se compiló y, salvo que se recorten, las rutas de los archivos fuente del equipo donde se armó. Uno de Rust deja rutas parecidas en los mensajes de error que lleva preparados. En la estación de Colchones Altovelo están las fichas de M-7401 (Go) y M-7402 (Rust): se leen, se saca lo que identifica al proyecto del autor y se decide cuánto pesa cada pista.En un programa en C, quitar la información de depuración deja al analista con funciones sin nombre. En Go no pasa lo mismo: el runtime necesita saber cómo se llama cada función y en qué archivo y línea está para poder escribir una traza de pila cuando el programa falla, y esa tabla viaja dentro del ejecutable aunque se quite la información de depuración.
Además, Go incrusta un bloque con la información de compilación: la versión del compilador, el paquete principal, el módulo del autor, las dependencias con su versión y ajustes como el sistema operativo de destino o, si el proyecto estaba en un repositorio, la revisión y si había cambios sin confirmar. La herramienta oficial de Go lo muestra con go version -m sin ejecutar el binario.
Responde para continuar
Un binario de Go llega sin información de depuración. ¿Qué sigue pudiéndose leer en él?
Ver pista de ayuda
Piensa en qué necesita el propio runtime para informar de un fallo.
El módulo principal es el nombre que el autor le puso a su proyecto, con forma de ruta. Todo lo que vive dentro de esa ruta es código suyo; lo demás es runtime, biblioteca estándar o dependencias. Ese nombre no es una dirección que se visite: es una etiqueta, y por eso sirve para reconocer otras muestras del mismo proyecto.
Abre el laboratorio y lee la información de compilación de M-7401 con cat compilacion-m7401.txt.
Responde para continuar
Escribe el módulo principal de M-7401, tal como aparece en su información de compilación.
Ver pista de ayuda
Es la línea que viene justo después del paquete principal, sin la indicación de versión.
Si nadie recortó las rutas al compilar, cada archivo fuente queda con la ruta completa que tenía en el equipo del autor: la carpeta de instalación de Go para la biblioteca estándar, la caché de módulos para las dependencias y la carpeta del proyecto para lo propio. En Windows, esas rutas suelen pasar por la carpeta del usuario.
Lee rutas-m7401.txt. Puedes filtrar con grep Users rutas-m7401.txt.
Responde para continuar
Escribe el nombre del usuario de Windows que aparece en las rutas de compilación de M-7401.
Ver pista de ayuda
Busca las rutas que no empiezan por la carpeta de instalación de Go.
Rust deja rutas en otro sitio: en los mensajes que el programa tiene preparados para cuando algo falla. Hay tres tipos de ruta. Las de la biblioteca estándar empiezan por una carpeta del compilador; las de bibliotecas de terceros pasan por la caché de paquetes descargados y llevan el nombre y la versión de cada una; las del proyecto del autor no están en ninguna de las dos.
Lee rutas-m7402.txt y separa los tres grupos.
Responde para continuar
Escribe el nombre de la carpeta del proyecto del autor de M-7402.
Ver pista de ayuda
Descarta las rutas del compilador y las que pasan por la caché de paquetes; queda una carpeta en otra unidad.
Saúl Mantilla, jefe de TI, ve el nombre de usuario y pregunta si con eso ya se sabe quién hizo la muestra. Antes de contestar, compara con cat compilacion-corteplan.txt: la herramienta interna de la empresa no deja ninguna ruta de usuario, y TI explica por qué.
Responde para continuar
¿Qué le contestas sobre el usuario que aparece en las rutas de compilación?
Ver pista de ayuda
Una pista para agrupar no es lo mismo que una identidad, y tampoco es lo mismo que nada.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.