¿Quién mató al switch de red? Una historia de un bug de Hubris
Reacción general a la historia y al trabajo de Oxide
- Muchos lectores encontraron que la explicación de depuración era excepcionalmente clara e inspiradora, elogiando la profundidad de la ingeniería y la estabilidad del sistema a pesar del bug.
- Hubris (el RTOS) se describe como código Rust limpio y bien estructurado, y como un contraste refrescante frente al C de “ifdef soup” en los kernels.
- Algunos señalan que Oxide y herramientas como Tailscale son esfuerzos “de nicho pero impresionantes”; otros objetan que esas herramientas son ampliamente útiles o admirables incluso si no se necesitan personalmente.
Rust, seguridad de memoria y este bug
- Un hilo intenta presentar el incidente como “Rust sigue teniendo bugs de sobrescritura de memoria”, mientras que múltiples respuestas subrayan:
- El bug no era específico de Rust, ni una “nueva clase” de bug.
- Rust elimina muchas clases comunes de errores de memoria, pero no puede impedir todos los errores lógicos.
- Varios señalan que el modo de fallo (crash en lugar de corrupción silenciosa/CVE) es, de hecho, un resultado positivo.
Ética de C, identificadores y comentarios
- Un largo subhilo debate la cultura de C: nombres de variables cortos, funciones concisas de la biblioteca estándar y evitar comentarios.
- Las explicaciones incluyen restricciones históricas (terminales de 80×24, límites de identificadores de 6 caracteres, E/S por teletipo) y compensaciones de legibilidad.
- Otros argumentan que los idioms y la enseñanza importan más que la mecánica del lenguaje; los lenguajes moldean cómo se ve el código “típico”.
- Algunos critican el dogma de “no escribas comentarios”, mientras que otros enfatizan “no confíes en los comentarios”, pero aun así valoran una buena documentación.
Hubris frente a otras pilas Rust embebidas
- Comparación con embassy:
- Hubris usa configuración estática de tareas, anticipada en tiempo de compilación, sin “spawn task” en tiempo de ejecución.
- Hubris evita Rust asíncrono; embassy lo adopta.
- Los comentaristas consideran que resuelven problemas distintos, en lugar de que uno sea superior.
- Se menciona RTIC como “similar a embassy pero sin HAL”, algo más cercano a Hubris en espíritu.
Diseño del kernel y detalles de pruebas
- Se discuten límites de MPU, TLBs y esquemas de TLB “soft-filled”; algunos sostienen que son viables incluso para tiempo real blando, mientras que otros prefieren la simplicidad y la facilidad de depuración.
- Un pequeño detalle de diseño de API deriva en una discusión sobre invariantes, ubicación de la documentación y el valor de constructores que impongan el orden correcto.
- Se debate mover
can_accessa su propia crate para permitircargo testen host; algunos ven “vibras de left-pad”, mientras que otros lo justifican como algo práctico para probar códigono_stdcompilado en cruz.
Organización, cultura y contratación
- La descripción del artículo sobre una colaboración estrecha y sin silos atrae interés.
- Una respuesta detallada explica:
- Sí hay una autoridad final clara (el CEO), pero la cultura enfatiza la autonomía y la apertura.
- Se usa una compensación uniforme para evitar el stack-ranking y las “jerarquías sombra” impulsadas por diferencias salariales.
- La contratación se describe como deliberada y centrada en valores (por ejemplo, en la mentalidad de depuración más que en los años de experiencia con Rust).
- La contratación remota no es solo de EE. UU.; hay empleados en Europa, Canadá y otros lugares, pero se requiere solaparse con la hora del Pacífico durante unas 4 horas, lo que algunos señalan que es difícil con hijos en zonas horarias lejanas.
Notas varias
- Algunos aprecian el sutil aspecto de “estamos contratando” del post como un excelente anuncio de empleo.
- El esquema de nombres (“Hubris” para el SO y “Humility” para el depurador) se percibe como humorístico y autoconsciente.
- La curiosidad por una placa interna de sondeo I2C lleva a aclarar que es una pequeña herramienta de fabricación impulsada por Hubris para programar EEPROMs, no una placa de desarrollo de propósito general.