¡Hola a todos! Quisiera crear un programa booteable (que no necesita ningún sistema operativo para iniciarse), que tenga GUI. ¿Qué lenguaje de programación debería utilizar? ¿Podría hacerlo con ASM y C++?
Gracias
| |||
Crear programa booteable ¡Hola a todos! Quisiera crear un programa booteable (que no necesita ningún sistema operativo para iniciarse), que tenga GUI. ¿Qué lenguaje de programación debería utilizar? ¿Podría hacerlo con ASM y C++? Gracias
__________________ 01011111 01000001 01100100 01110010 01101001 01100001 01101110 01011111 |
| |||
Respuesta: Crear programa booteable ¿Te refieres a un programa que se ejecute sin que se inicie el sistema operativo y tenga GUI? Si es así... por poder se puede pero tardarías muchísimo en poder hacer algo medio decente. Hasta donde yo se para hacer programas que se ejecuten sin que se inicie el sistema operativo debe hacerse con ASM y C/C++. Si podrías hacer "fácilmente" un programa en modo consola (lo de fácilmente es en comparación con uno con GUI, porque de fácil no tiene nada jejeje). Si realmente te interesa puedo buscar unos códigos que tenía para que te hagas una idea de la complejidad de lo que pretendes hacer. |
| |||
Gracias por la respuesta. Cita: Así es.Si, por favor, muéstrame unos códigos.
__________________ 01011111 01000001 01100100 01110010 01101001 01100001 01101110 01011111 |
| |||
Respuesta: Crear programa booteable Aquí tienes un código de un programa que abre un fichero, lo lee, lo muestra por pantalla y lo cierra:
Código C:
Ver original Este es un ejemplo muy simple de un programa en modo consola en C. ¿No parece difícil verdad? Lo difícil no es eso, sino lo que voy a comentar a continuación. ¿Qué proceso sigue el código de un programa C? (Como es este caso) Se compila y al final acaba traduciéndose a instrucciones máquina (ASM). En ellas se hacen las llamadas a printf, open, read y close. ¿Cómo es eso en código ASM? Mediante llamadas al sistema (al sistema operativo). PROBLEMA: No hay sistema operativo por lo que las funciones printf, open, read y close ¡¡no existen!! SOLUCIÓN: Debes implementarlas tú. La función printf puede ser más o menos fácil de implementar aunque larga. Las funciones open y close son más cortas, pero la función read te garantizo que es un autentico infierno implementarla (y eso que solo lees 1 byte). Si tienes alguna duda puedo explicártelo con más detalle. Yo no te aconsejo hacer un programa que no necesite del sistema operativo para ejecutarse, al final acabarías implementando tu propio sistema operativo (más o menos). |
| |||
Pues eso es lo que quisiera hacer, un programa parecido a un sistema operativo, pero no tan complejo; sólo poner música, ver imágenes, vídeos y algunas cosas más...
__________________ 01011111 01000001 01100100 01110010 01101001 01100001 01101110 01011111 |
| |||
Respuesta: Crear programa booteable Pues hacer un sistema operativo que maneje texto ya es bastante largo y complicado. Añadirle imágenes, música, vídeos, etc es más complicado aun. ¿Tienes conocimientos sobre como trabaja un sistema operativo? Es decir, como funciona internamente. Un sistema operativo no se hace como un programa normal. Nunca he buscado en Internet tutoriales sobre como hacer un sistema operativo, dudo bastante que si los hay sean buenos, ya que deberían ser muy extensos. Si realmente te interesa hacerlo, te recomiendo que leas mucho sobre sistemas operativos y como funcionan, porque cuando haces un programa normal el sistema operativo te da muchas cosas que si tuvieses que implementar tú seguro que no sabrías como. Te pongo un ejemplo: -Tendrías que encargarte de leer/escribir ficheros y desde teclado como mínimo (y no te sirve la función read() ni similar, tienes que acceder directamente al teclado y al fichero sin usar funciones). -Tendrías que encargarte de mostrar cosas por pantalla (también sin usar funciones, es decir, escribiendo directamente sobre la pantalla). -Ejecutar programas y crearles un proceso, gestionar procesos, y una larguísima lista que no te puedes ni imaginar. Todo para usar solo texto, pantalla y teclado. En tu caso quieres mostrar imágenes, reproducir música (lo que supone acceso a los altavoces) y reproducir vídeo (acceso a pantalla continuo). Además no solo se trata de hacer un sistema operativo, sino de hacerlo bien, porque si lo haces mal habrás dedicado un esfuerzo muy grande para nada. |
| |||
Tienes razón, no tengo suficientes conocimientos para hacer algo tan complejo(aún ), de todas maneras es un proyecto a largo plazo, tengo que aprender más sobre sistemas operativos, C/C++ y ASM. Por cierto, ¿sabes algún libro bueno sobre sistemas operativos? Gracias otra vez.
__________________ 01011111 01000001 01100100 01110010 01101001 01100001 01101110 01011111 |
| |||
Respuesta: Crear programa booteable Este libro puede ser el que necesitas: "Sistemas Operativos: Diseño e Implementación, Andres Tanenbaum (Prentice-Hall)". Explica la teoría sobre sistemas operativos y muestra con ejemplos como implementarlo. Además incluye un CD con el código fuente de un sistema operativo (supongo que básico) para practicar. |
| |||
No creo que es imposible, por ejemplo Splashtop OS se instala en Windows, pero se ejecuta antes de que Windows se inicie.
__________________ 01011111 01000001 01100100 01110010 01101001 01100001 01101110 01011111 Última edición por _Adrian_; 03/09/2011 a las 09:31 |
| |||
Respuesta: Crear programa booteable Splashtop OS efectivamente se ejecuta antes de que cargue Windows, pero de forma visual, cuando se ejecuta ya se ha ejecutado una parte básica de Windows que inicia Splashtop OS, al verlo antes que Windows parece que se ejecuta antes, pero en realidad Windows sigue ejecutándose antes. |
| ||||
Respuesta: Crear programa booteable Bueno la idea de mi proyecto creo que debería ser como funcionan los gestores de arranque, como Grub o Lilo que efectivamente se instalan en el sistema operativo, donde el flujo de control pasa primero por ellos antes del núcleo (Kernel). No necesito que sea algo visual puede ser en linea de comandos pero no estoy segura en como colocar el sonido en ese punto :( |
| |||
Respuesta: Crear programa booteable El gestor de arranque si se inicia antes que cualquier SO. El problema que yo veo (no estoy completamente seguro) es que el lugar donde se instala el gestor de arranque solo puede instalarse 1 programa, y si instalas algo ahí que no sea el gestor de arranque entonces no se iniciará ningún SO. Excepto que crees tu propio gestor de arranque, pero eso ya no se como se hace. |
Etiquetas: |