1 puntos por GN⁺ 2024-06-23 | 1 comentarios | Compartir por WhatsApp
  • Andrew S. Tanenbaum, profesor emérito de ciencias de la computación en VU Amsterdam, recibió el ACM Software System Award por MINIX, que influyó en la enseñanza de sistemas operativos y en el diseño de OS
  • MINIX 1.0 fue un sistema operativo UNIX basado en microkernel para IBM PC, creado en 1987 junto con el libro Operating Systems: Design and Implementation
  • El MINIX inicial tenía unas 12,000 líneas de código e incluía microkernel, administrador de memoria, sistema de archivos y utilidades esenciales de UNIX; en 2000 pasó a ser software libre de código abierto
  • MINIX inspiró a Linux, sirvió de base para MeikOS y también se ejecuta dentro de microchips de uso extendido
  • El ACM Software System Award se otorga a sistemas de software con impacto duradero, tiene un premio de 35,000 dólares y cuenta con apoyo financiero de IBM

Premio reconocido por MINIX

  • Andrew S. Tanenbaum, profesor emérito de ciencias de la computación en VU Amsterdam, recibió el ACM Software System Award por MINIX
  • MINIX se ha usado para enseñar principios de sistemas operativos a varias generaciones de estudiantes y también influyó en el diseño de sistemas operativos, incluido Linux

Origen y composición de MINIX 1.0

  • Tanenbaum creó MINIX 1.0 en 1987 para acompañar el libro Operating Systems: Design and Implementation
  • Era un pequeño sistema operativo UNIX basado en microkernel para el entonces popular IBM PC
  • El MINIX inicial estaba compuesto por unas 12,000 líneas de código e incluía los siguientes elementos
    • microkernel
    • administrador de memoria
    • sistema de archivos
    • programas utilitarios esenciales de UNIX
  • MINIX se convirtió en software libre de código abierto en 2000

Impacto en Linux y otros sistemas

  • MINIX no solo respaldó el éxito del libro de Tanenbaum, sino que también dejó una influencia más amplia
  • Inspiró a Linux, que creció hasta convertirse en un exitoso sistema operativo de código abierto que impulsa servidores en la nube, teléfonos móviles y dispositivos de internet de las cosas
  • MINIX sirvió de base para el sistema operativo MeikOS en computadoras basadas en Meikotransputer
  • MINIX también se ejecuta dentro de microchips ampliamente utilizados
  • Una versión posterior, MINIX 3.0, está orientada a computadoras con recursos limitados, computadoras embebidas y aplicaciones que requieren alta confiabilidad

Expansión del diseño de microkernel

  • La defensa del diseño de microkernel por parte de Tanenbaum, aparte de la influencia directa de MINIX, también impactó a varias generaciones de diseñadores de sistemas operativos

Naturaleza del ACM Software System Award

  • El ACM Software System Award se otorga a organizaciones o personas que hayan desarrollado sistemas de software con impacto duradero, ya sea por su contribución conceptual, su adopción comercial o ambas
  • El premio es de 35,000 dólares
  • El apoyo financiero del Software System Award lo proporciona IBM

1 comentarios

 
GN⁺ 2024-06-23
Opiniones en Hacker News
  • Esto es algo que jamás voy a olvidar. Creo que fue en Stanford; estaba escuchando una charla del fundador/CEO de Netflix, Reed Hastings, y él estaba explicando cómo se le ocurrió la idea de Netflix.
    Un estudiante le preguntó: “¿Cuándo se dieron cuenta de que tenían que pasarse a internet?”, y él respondió: “Eso estuvo en la idea desde el principio. Sabíamos que la red llegaría a ser como es hoy. En un libro de texto de ciencias de la computación hay una frase que dice: ‘Nunca subestimes el ancho de banda de un camión lleno de cintas avanzando por la autopista’. Pensamos que, hasta que la red llegara al nivel que queríamos, primero teníamos que enviar DVD por correo”.
    Al verlo pensé: “¡Guau! Recuerdo esa cita y la ilustración”, así que busqué el libro de texto y ahí estaba, tal cual, en el libro de redes de Tanenbaum. Más allá de la anécdota, esta persona tuvo un impacto enorme en toda la industria, por no hablar del debate sobre kernels.

  • Un premio muy merecido para un gran educador, y algo para celebrar. Todavía conservo su libro de texto de sistemas distribuidos que leía antes, y aún pienso que habría sido bueno que Minix hubiera ganado y que ese modelo de microkernel se hubiera convertido en la base del ecosistema FOSS *nix.
    Para quienes no lo sepan, Andrew también administra Electoral Vote [1], un blog de ciencia electoral que analiza y predice elecciones estadounidenses con un modelo de encuestas del Colegio Electoral. Es uno de los sitios bastante buenos sobre política de EE. UU.
    [1]:https://www.electoral-vote.com/evp2024/Info/welcome.html

    • electoral-vote.com ya no es solo un blog de ciencia electoral. Andrew y el coautor Christopher Bates publican cada mañana un resumen muy claro de las noticias políticas del día anterior y de su posible impacto en la política estadounidense.
      Con solo leer esos textos diarios ingeniosos y sin dejarse llevar por la emoción, uno puede mantenerse bastante bien informado como ciudadano estadounidense.
  • Me estaba yendo pésimo en una materia de arquitectura de computadoras, y en un parcial saqué 5%. Cambié el libro recomendado por el de Andrew y no hice nada más que leerlo 2 horas al día; en el final saqué 100%.
    Era un libro increíblemente accesible :-)

    • Hace unos 20 años también usamos libros de Tanenbaum en dos materias de ciencias de la computación. Eran excelentes libros de texto, y a mí también me parecieron bastante fáciles de entender.
    • Guau, ¿qué libro era?
    • Me da curiosidad: ¿cuál era el libro recomendado originalmente?
  • Un premio muy apropiado para un gran educador que hace que la informática sea accesible y disfrutable.
    Structured Computer Organization debería ser un libro de texto, pero está tan bien escrito que terminé leyéndolo de principio a fin como si fuera un thriller.
    Por ejemplo, no hay mucha gente que diga eso de Knuth. Claro que no quiero menospreciar el hecho de que Knuth es extraordinario a su manera.

  • Los libros de AST, especialmente los que tratan directamente sobre Minix, me parecen estar en el mismo plano filosófico que el artículo The Night Watch.
    Al final, ese artículo no trata sobre volverse ignorante por culpa de las abstracciones, sino sobre la comodidad que surge de familiarizarse con lo real; no sobre impotencia, sino sobre una falta de miedo aprendida.
    Casi nunca tendremos que depurar código a nivel de kernel conectando un osciloscopio o una sonda lógica a los pines de un chip de procesador para observar las líneas de datos, pero todos conocemos al menos a una persona que haría algo así sin inmutarse. Aun así, para un desarrollador de software ayuda mucho tener un conocimiento y una familiaridad apenas más cercanos al silicio, una hoja de datos del procesador a mano y cierta sensación de que los modos de segmentación de memoria no son algo ajeno.
    Es un salto que todos deberían intentar alguna vez, porque permite derribar las barreras mentales que impiden entender cómo funcionan realmente las cosas.

  • Tampoco se puede pasar por alto que MINIX está escondido dentro de casi todos los CPU Intel modernos como parte del Management Engine. Este hecho poco conocido lo convierte en uno de los sistemas operativos más ampliamente distribuidos.

    • ¿Por qué usaron Minix y no algo como L4 o seL4?
      También me da curiosidad qué versión de Minix usaron realmente. Minix v3.1 salió en 2005 junto con el libro; 3.2 salió en 2012 y 3.3 en 2014.
    • A veces pienso en cómo sería distinto el mundo hoy si MINIX se hubiera distribuido con una licencia FLOSS similar a la de Linux.
      El debate entre Linus Torvalds y Andrew Tanenbaum pudo haber sido un punto de inflexión importante en la historia de la tecnología, y siento que MINIX perdió una oportunidad enorme de ocupar un lugar más grande en la historia.
    • Me parece que varios microcontroladores ARM y sistemas en chip dominan en volumen, así que me pregunto si esto es realmente cierto.
      Si asumimos que la mayoría de ellos ejecuta alguna forma de Linux o un sistema operativo en tiempo real, me pregunto cuál está más difundido: MINIX o Linux.
    • La ACM debería exigir que AST se distancie de este hecho antes de recibir el premio.
  • Leí Operating Systems: Design and Implementation en 1988 o 1989, y fue una experiencia reveladora y disfrutable.
    En ese momento solo deseaba que algún sistema operativo parecido a Unix estuviera disponible “libremente”. Aquí “libre” era en el sentido intuitivo, no en la definición formal que conocí después. Podría haber sido Minix.

    • Fue el mejor libro de texto que tuve que leer durante mi carrera en los años 80. El código fuente de Minix incluido en el apéndice fue mi primer contacto con una gran base de código C bien escrita.
    • Fue uno de los textos de mi carrera, y lo leí con muchísimo gusto.
  • Su Computer Networks fue uno de mis libros favoritos cuando estudiaba ciencias de la computación.
    Unos años después me tocó dar una clase de sistemas distribuidos en una escuela de negocios, y armé el material tomando ese libro como base. Incluso hoy me sigue pareciendo vigente.

    • Fue mi libro de texto favorito de toda la carrera de ciencias de la computación. Todavía lo tengo en el estante.
      Nunca profundicé demasiado en redes, pero ese conocimiento amplio se me quedó y me ha servido una y otra vez. Puedo decir que eso me diferencia de otros ingenieros.
    • Aunque este es un hilo sobre Tanenbaum, personalmente siento que Data Communications and Networking de Forouzan explica mejor y también cubre mejor los detalles de cada capa de red.
      Dicho eso, Modern Operating Systems es excelente, y cuando se lo recomendé a compañeros en la universidad recibí reacciones parecidas.
  • Me da un poco de pena que, a estas alturas, la investigación en sistemas parezca estar casi detenida.
    Pensé que para 2024 estaríamos usando un sistema operativo distribuido que permitiera mover procesos libremente y sin mayor problema entre el celular, la computadora de escritorio, la laptop y el NAS.

    • Sigue habiendo mucha investigación e innovación, pero no necesariamente aparecen como proyectos de software completamente nuevos. El costo de crear un nuevo sistema operativo es simplemente enorme.
      Si quieres hacer algo que no sea equipo especializado, tiene que ser compatible con el software útil existente. Un nuevo cambio de paradigma que exija modificar el software existente tiene un camino muy difícil hacia el éxito. Aun así, hay muchísimos avances incrementales en los sistemas operativos.
      La idea de un sistema operativo verdaderamente distribuido seguramente se le ha ocurrido a mucha gente. Estoy bastante seguro de que los sistemas operativos actuales terminarán evolucionando en esa dirección. Ya se empiezan a ver piezas aquí y allá.
    • Suena a que, como yo, te quedaste con la perspectiva de Rob Pike de hace mucho tiempo http://www.herpolhode.com/rob/utah2000.pdf
      Han pasado muchas cosas desde ese paper, pero tengo la sensación inquietante de que él tenía razón y de que dejamos de intentar expandir y explorar realmente las posibilidades. Aunque quizá tenga más que ver con el estado de la academia que con el campo en sí.
      Antes de que llegara la ola de hype, tampoco era como si las aplicaciones GPGPU con machine learning recibieran montones de invitaciones a conferencias. Por la hegemonía académica y la fría realidad de perseguir financiamiento, lamentablemente no hubo mucho interés en la investigación de sistemas.
    • No es que la investigación se haya detenido; es que el dominio de las grandes tecnológicas redujo los incentivos para crear dispositivos de consumo.
      Si alguien intentara implementar una de estas ideas interesantes, lo juzgarían duramente porque el resto del stack no podría competir con un Pixel o un iPhone. Basta ver Rabbit.
      Lo que describes es un tema central de la investigación moderna en sistemas, y los grandes proveedores de nube ya implementan internamente todo este tipo de cosas.
    • Hay que ver esto en roles relacionados con infraestructura. Por ejemplo, cuando se vacía una VM o un minion de Kubernetes, la migración en vivo de VM y contenedores ocurre de forma regular.
      En general, a los consumidores les importa más la experiencia de usuario. Un software que sincroniza contenido con un servidor para que esté disponible en todos los dispositivos implica mucha menos carga que intentar mover procesos en vivo sobre una red inestable.
    • Este tipo de cosas siempre me pareció que caía en la categoría de muy genial, pero de utilidad dudosa.
      Muchos investigadores de sistemas estaban completamente obsesionados con el clustering, la transparencia de red y los sistemas distribuidos, y los veían como la cima de los sistemas operativos. Nunca entendí por qué. Entiendo perfectamente que es genial, pero nunca terminé de ver por qué era tan importante que un sistema servidor-laptop-celular-red funcionara como un solo sistema.
      Creo que se desperdició mucho esfuerzo persiguiendo ese dragón. Está bien investigar cosas geniales y seguramente en el proceso se crearon cosas útiles, así que quizá “desperdicio” no sea la palabra exacta. Pero no siento que hubiera una justificación suficiente, y tal vez ese esfuerzo podría haberse usado mejor.
      La alternativa —herramientas y modelos de programación multisistema que permitan administrar varios sistemas sin hacer que parezcan una imagen única en el nivel más bajo— no recibió mucho cariño en la academia después de TCP/IP, y en general fue la industria la que la desarrolló.
  • Otro dato interesante sobre Tanenbaum es que él era la persona detrás de electoral-vote.com.
    Antes de que todos tuvieran su propio modelo y de que Nate Silver —o debería decir Poblano— arrasara en 2008, ese era el sitio al que había que ir para entender la elección presidencial estadounidense de 2004 entre Bush y Kerry. Ayudó muchísimo a mucha gente a entender encuestas y estadísticas.

    • electoral-vote.com sigue activo: https://www.electoral-vote.com/
      Probablemente ya lo sepas, pero quería destacarlo para quienes no.
      El profesor Tanenbaum ahora también tiene como coautor al profesor Bates. Bates es profesor de historia en UCLA/Cal Poly. El sitio publica todos los días; antes publicaba solo entre semana, y solo durante la temporada electoral.