in

GeekyGeeky

MenuetOS: Sistema operativo en assembler

En varias ocasiones hemos visto diferentes tipos de sistemas operativos aquí en NeoTeo. Desde versiones desconocidas de Windows hasta variadas distros de Linux, e incluso algunos que no tienen nada ni de uno ni del otro. En esta ocasión hemos encontrado un proyecto de sistema operativo extremadamente liviano y eficiente, que obtiene estas dos deseadas virtudes gracias a su programación: El sistema operativo está hecho completamente en lenguaje ensamblador.

Cuando uno piensa en lenguaje ensamblador lo recuerda en aquellas historias que nos contaban antes de irnos a la cama, sobre un lenguaje difícil e implacable que sólo los verdaderos maestros del teclado podían dominar. Para referencia de los más jóvenes debemos decir que el lenguaje ensamblador no es ningún mito, y no es lo que se dice sencillo de aprender (el material de aprendizaje está disponible, aunque aquellos que realmente conocen el lenguaje son cada vez menos) pero todo el esfuerzo que demanda en aprendizaje y tiempo de programación es devuelto con software increíblemente rápido, aún en sistemas que tienen varios años encima, y que además ocupa muy poco espacio.

MenuetOS es el ejemplo perfecto de que el lenguaje ensamblador aún puede utilizarse en estos días de forma práctica. El sistema cuenta con su propio entorno gráfico, soporte para dispositivos USB, e incluso posee algunos efectos de transparencias en su entorno. También tiene capacidades de red y puede navegar por Internet. Como si eso fuera poco, Menuet también puede ejecutar programas que no hayan sido escritos en lenguaje ensamblador. Tiene versiones de 32 y 64 bits, y cuenta con soporte de hardware para varios componentes de alto nivel, aunque ese campo en específico aún es un trabajo en progreso.

El otro día vimos a alguien lo suficientemente loco como para crear un cliente de Twitter compatible con una Commodore 64. De repente, el ver a alguien que hace un sistema operativo de la nada con lenguaje ensamblador, no parece tan descabellado. Como suele suceder en estos casos, la funcionalidad del sistema operativo depende del hardware compatible y de las necesidades del usuario, pero nadie puede negar que MenuetOS es un excelente proyecto en sí mismo, y que el lenguaje ensamblador, por más mala reputación que pueda tener, sigue siendo increíblemente poderoso.

Reportar

¿Qué te pareció?

Escrito por Lisandro Pardo

31 Comments

Leave a Reply
  1. SE ve interesante pero se puede instalar en una PC virtual como Virtual BOX, trate pero no supe como hacerlos T-T
    Baje la imagen de disket, respondí todo ese menús de configuración, al final decía que por donde instalar desde el disket o el ejecutable. escogí el primero y quedo pantalla negra.

  2. IMPRESIONANTE.
    Para los que conocen minimamente este lenguaje, van a pensar lo mismo. Estaremos viendo el esqueleto de un nuevo sistema operativo ??

  3. Quizas estoy un perdido eneste tema, pero este SO al estar realizado en lenguaje ensamblador ¿se puede cargar sobre cualquier tipo de CPU?

  4. impresionante un trabajo asi
    ojala la comunidad se uniera a este tipo de trabajos
    que son practicamente artisticos
    y sacar adelante otro sistema operativo limpio de
    lo que ya todo el mundo conoce o ha escuchado

  5. NO MAMES

    Se ve padrisimo, a nivel funcional sepa como vaya, como siempre el problema es la compatibilidad con hardware… que ensamblador no es la pasta mágica con la que esta hecho windows?

  6. muy bueno, ahora tengo una pregunta para hacer, al correr programas de 32 o 64 bits, q no están en ensamblador, ¿estos programas corren más lentos?

  7. Me parace mas MAC que otro sistema operativo, (En entorno grafico), me a ganas de probarlo, pero no quiero ariesgar mi compu y veo que un comentario no pudo virtualizarlo asi que mejor no lo hago, espero que alguien lo hayga logrado y nos comente.

  8. ¿Lenguaje ensamblador mala reputación y en desuso? Vaya panda de ignorantes. El lenguaje ensamblador es el núcleo de los sistemas operativos cualesquiera que sean. Los drivers se siguen escribiendo en ensamblador, las tareas de bajo nivel siguen necesitando ensamblador e incluso los compiladores de C y otros tantos lenguajes, traducen el código a código máquina que no deja de ser ensamblador. No se de dónde sacáis que es un lenguaje mítico con una casi prehistórico, cuando es algo que se usa todos los días.

    • Tercer renglon del primer texto:
      "Para referencia de los más jóvenes debemos decir que el lenguaje ensamblador no es ningún mito".
      Saludos.

  9. claro, windows y en general casi todos los sistemas importantes de hoy en dia estan escrito en C-C++ que al final general codigo maquina que puede ser facilmente traducido a ensamblador, recordemos que ensamblador no es mas que ponerle nombres a los conjuntos de bits que entiende un procesador y al final llamamos instrucciones.
    Ademas para escribir C se tuvo que usar ensamblador, es decir, aunque la mayoria de programadores hoy en dia no lo usen directamente pues tienen compiladores de alto nivel, en realidad ensamblador sigue siendo la base de nuestros sistemas y nuestros compiladores lo siguen generando.

    • Compañero, la nota hace referencia, que no se usa en el mercado laboral el lenguaje asm.
      Es cierto que todavia se usa, y de hecho lo hace a cada momento que se usa el ordenador, pero esta en un nivel de capa muy lejos de un usuario comun, esta casi a nivel maquina, entonces con eso de que ya casi ni se usa, se refieren que las compañias de desarrollo no se ponen a desarrollar sus aplicaciones bajo este lenguaje, ya que seria algo asi como "suicida" y contraproducente, si sabemos que tienen tiempos "x" de entrega de un producto (salvo excepciones, como ser drivers, y cosas muy puntuales).
      En la epoca del dos, yo usaba Turbo C++ 3.0 y rutina de codigo embebido en asm, para hacer manejo del mouse, y la libreria grafica. Pero eran cosas muy puntuales, para poder trabajar en equipos viejos con menos potencia de proceso. Hoy en los tiempos que corren, usar asm para desarrollo de aplicaciones robustas… yo no lo usaria.

      Difiero con vos con respecto a "todos los sistemas importantes de hoy en dia estan escritos en C-C++", no todos los "sistemas importantes" estan escritos en C-C++, en mi trabajo desarollamos software que los consideramos importantes, ya que manejan el sistema de transporte de la ciudad donde vivo, y los desarrollamos J2EE, PHP, VB.NET, Delphi entre otros. No necesariamente un software bien hecho e importante, esta hecho en C/C++.
      Saludos.

  10. guau! por fin hablan de este sistema operativo, llevaba tiempo esperando,
    pero olvidaron mencionar varias cosas:

    cabe en diskette de 3 1/2. (desde el cual arranca)

    puede iniciarse desde pendrive.

    es un proyecto de origen ruso.

    menuet, en sus versiones de 32 y 64 es de código cerrado y software de pago (se vende en un cd repleto de aplicaciones, como un FPS en 3d)

    tiene una contraparte open source llamada kolibrí formada por una comunidad de usuarios que no estubieron deacuerdo con el cierre del código.

    me gustaría que también hicieran un reportaje sobre kolibrí y que además dieran tips de su instalación y narraran la experiencia de uso (tal y como lo hacen con las distros de linux)

  11. Claro que es poderoso. Con el ensamblador se pueden manejar directamente el hardware, quién va a decir que NO es poderoso? Pero todo este poder tiene una contra parte: el desarrollo en ASM es MUY lento, y se necesita invertir mucho mas tiempo y recursos (y no hablo de recursos de hardware) en desarrollar algo que se podría hacer en mucho menor tiempo con un poco de C. Y al final, la diferencia de rendimiento tampoco es muy grande. Yo, me quedo con este ultimo.
    Como curiosidad, este lenguaje se sigue utilizando para programar microcontroladores. Supongo que ya saben de lo que hablo.

    • Es para defender el mensaje. Porque le ponen un punto negativo a lo que dice, si es verdad?
      Totalmente de acuerdo contigo.
      Saludos.

  12. Programar en ensamblador hoy en día no suele ser necesario para mejorar la eficiencia de nuestros programas. Es más a veces hasta es contraproducente. Los compiladores modernos crean binarios aprovechando muchísima información del código y de la arquitectura/procesador en concreto que les permite optimizarlo de formas que el humano no podría, pues es muy difícil tener en cuenta todas esas variables. Ensamblador está bien para optimizar fragmentos de código pequeños, pero para hacer un SO es una locura. ¿Luego quién va a mantener ese código? ¿Dios?

    • No yo no lo voy a mantener al codigo! Demasiado tengo ya, atendiendo las solicitudes de todos los mortales en sus vidas cotidianas.
      jajaja
      Saludos.

  13. Hola a todos , quiero decirle que el cpu solo entiende las (instrucciones simples) las cuales se les asigna en ensamblador una palabra que las sustituye (nemonicas)

    (http://es.wikipedia.org/wiki/Nem%C3%B3nico) para poder recordar mejor cual es su función.
    Con esas instrucciones en binario es que trabaja el CPU (http://es.wikipedia.org/wiki/CPU) y en ensamblador con Nemonicas .Es cierto que programar en ensamblador no es fácil pero trae sus ventajas en rapidez , uso de memoria , cpu , determinadas tareas que no se pueden realizar con lenguajes de (alto nivel) (http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel) , al final todos los programas están hechos en ENSAMBLADOR porque el cpu no entiende instrucciones como

  14. Este sistema lo conocí hace unos 4 años, y lo probé en mi difunto celeron a 450 MHz, booteando de un diskete. Me impresionó lo que se podía hacer con 1.44 MB !!
    Esa vez me puse a jugar con su codigo fuente (en ensamblador) con cosas sencillas, como traducir los textos del menu principal a español, corregir las fuentes de texto,y otras cosas que no recuerdo. Tambien le eché un vistazo al codigo fuente del kernel, lo que encontré una "obra de arte", equilibrio de sencillez y funcionalidad, y claridad del código (mis experiencias hasta esa fecha era ensamblador para microcontroladores PIC).
    En ese tiempo el código lo mantenia su creador original, Ville Turjenmaa (India), pero despues lo delegó a otro…
    Tal vez no sea un sistema robusto para implementaciones serias, pero, segun mi humilde opinion, es ideal para la enseñanza en universidades e institutos como introducción a los sistemas operativos.

  15. Yo también lo conocí hace unos 4 años, pues aun siendo Administrador de Empresas me ha interesado los Sistemas en cuanto a software y hardware, por lo que soy autodidacta en el tema, claro con algunos cursos cortos realizados en instituciones de mi país. El punto es que para una persona como yo, con deseos de aprender, pero con muchísimas limitaciones en el tema, me sorprendió gratamente lo que habían realizado con esto y me entusiasmé a intentar utilizarlo, además a mostrárselo al resto de mortales no Ingenieros de sistemas, quienes quedaron igualmente sorprendidos. Bueno, hace rato ya que no había vuelto a indagar por la evolución de Menuetos y veo, sorprendido nuevamente, que su diseño es mas acorde con los tiempos que surcamos, pero con tristeza registro que en adelante es de código cerrado y que tomo rumbos comerciales.

  16. El lenguaje ensamblador es un conjunto limitado de instrucciones básicas que un procesador puede realizar y cada procesador tiene diferentes instrucciones. El lenguaje ensamblador es facil de entender, porque son muy pocas instrucciones a comparación con un lenguaje de alto nivel. Al ser tan básicas las instrucciones se debe crear todo desde cero, no existen librerias ni funciones. Esto trae consecuencias buenas y malas, por un lado aumenta considerablemente el tiempo de desarrollo al tener que crear todo y es dificil el mantenimiento, pues el código es demasiado monotono y poco entendible si no eres quien desarrolló el proyecto, por otro lado reduce tremendamente el tamaño de los archivos generados, pues al tener que hacer todo desde cero, queda todo a la medida de lo que se esta programando (no resultan funciones que no se utilizan y que de cualquier forma se incluyen al utilizar bibliotecas) uno puede darse cuenta de ello con solo ver que MenuetOS cabe en un diskette O.o. En definitiva usar ensamblador es lo mejor si se desea mejor rendimiento y cualquier lenguaje de alto nivel si se desea reducir tiempo de programación

  17. Hola Gente, yo lo probe sobre QEMU y funciona solo en algunas computadoras grandes (de las nuevas) porque en las que son menor a 1Ghz de velocidad no funciona ni con un mega de ram virtual. Viene bien la iniciativa pero le falta depurar varias cosas aun.

  18. Orale, eso si es saber programar.
    por cierto, será que alguien me puede ayudar, estoy en tercer semestre de tecnologia en sistemas y tengo un proyecto de sistemas operativos, y no se como hacerlo.
    Se agradece cualquier colaboracion.

  19. estimados!!! estoy buscando programadores para desarrollar un OS Nuevo para una nueva linea de computadoras ya tengo el hardware

  20. Yo lo he probado, use la configuración de mi windows en cuanto a pantalla resolución y la memoria ram, resto casi todo fue 1, y me funcionó el de 32 bits lo instalé en mi disco duro usando el programa unetbtin desde mi windows vista, así me deja instalar como segundo sistema operativo cualquier segundo sistema operativo .img .iso espero que alguien me aporte información para configurar mi wifi que es lo unico que me falta.

Responder a kaiser Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ordenadores reconocerían monumentos (Google)

El G-8 quiere frenar el cambio climático