elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Máquina virtual (en C)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Máquina virtual (en C)  (Leído 5,565 veces)
GeorgArming


Desconectado Desconectado

Mensajes: 350


Ver Perfil
Máquina virtual (en C)
« en: 8 Diciembre 2011, 22:25 pm »

¿Sabéis de algún código fuente de una máquina virtual escrita en C?

Es que estoy tratando de hacer un mini sistema operativo. Me basaba en el SO Luxur pero me fallaba al compilar y ahora quiero empezar uno de nuevo, usando GRUB como bootloader.

Bueno, pues ahí van las características que quiero que tenga mi OS:

Quiero que el bootloader cargue un kernel. Dicho kernel, a parte de cordinar y administrar funciones, memoria (en el modo más sencillo y liviano sencillo) ,... cada vez que el usuario lo desee se abra una shell. En cada shell se pueden ejectutar unos comandos para abrir archivos, modificarlos,... pero de manera independiente y virtual (Cada shell es un proceso virtual).

¿Cómo podría hacerlo? ¿Es muy complicado? Yo veo un problema que es que como el sistema operativo sería tipo consolaa (sin GUI ni nada), cómo se podría cambiar de shell, teneindo en cuenta que varias shells se pueden ejecutar al mismo tiempo?


En línea

GeorgArming


Desconectado Desconectado

Mensajes: 350


Ver Perfil
Re: Máquina virtual (en C)
« Respuesta #1 en: 9 Diciembre 2011, 00:53 am »

y si no puede ser una máquina virtual... ¿se podría hacer una shell que se ejecutase dentro de la shell general?


En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Máquina virtual (en C)
« Respuesta #2 en: 9 Diciembre 2011, 01:12 am »

Encontré hace tiempo material en internet sobre maquinas virtuales. El problema es que está en inglés.

Tienes varias opciones. Una es un libro famoso de maquinas virtuales que no me acuerdo como se llama. Por Amazon seguro que encuentras el libro.

Sobre papers he usado los siguientes yo (no son muy completos pero si que te dan más o menos la idea. Si más adelante deseas avanzar, sin duda alguna, un libro):

http://www.codeproject.com/KB/recipes/B32Machine1.aspx
http://en.wikibooks.org/wiki/Creating_a_Virtual_Machine

Ambos están bastante bien.

Y como libro, estaba muy bien el siguiente (tiene una puntuación baja pero no por que sea malo, ni mucho menos. Sencillamente, va dirigido a un público diferente. Quizás te sea útil):

http://www.amazon.com/Virtual-Machine-Design-Implementation-Blunden/dp/1556229038

Un abrazo.

PD: Respecto a códigos fuente de máquinas... Que yo recuerde, en su momento no encontré demasiado. Ahora bien, lo que yo hice es descargarme 'emuladores' de arquitecturas, como ARM o AVR (Atmel) y estudié de ahí. Búscalos.

Suerte. Recuerda que la mayoría de indformación está en inglés. He usado a menudo este link. Quizás te sea útil (The Linux Documentation Project):

http://tldp.org/     ingles
http://es.tldp.org/   español (menos información)
En línea

GeorgArming


Desconectado Desconectado

Mensajes: 350


Ver Perfil
Re: Máquina virtual (en C)
« Respuesta #3 en: 9 Diciembre 2011, 15:33 pm »

muchísimas gracias crack!!!
En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Máquina virtual (en C)
« Respuesta #4 en: 10 Diciembre 2011, 04:28 am »

Nada, a ti. Si tienes alguna duda, contesta este tema, aunque no tengo demasiado conocimiento en la creación de máquinas virtuales y poco puedo hacer.

Un abrazo.
En línea

EvilGoblin


Desconectado Desconectado

Mensajes: 2.323


YO NO LA VOTE!


Ver Perfil
Re: Máquina virtual (en C)
« Respuesta #5 en: 11 Diciembre 2011, 01:04 am »

linux ya posee un metodo para cambiar shells independientes CTRL+ALT+F1,F2,F3...
Son totalmente independientes, solo debes loguear el usuario que deseas
En línea

Experimental Serial Lain [Linux User]
farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Máquina virtual (en C)
« Respuesta #6 en: 11 Diciembre 2011, 02:17 am »

Respecto a la Shell, si, hay 3 o 4 funciones en Linux que lo que hacen es basicamente enviar datos a la terminal (como si lo escribieras) y retornar el valor que te devolveria. De hecho, este es el metodo que usan las terminales graficas. Se llama PSEUDOTERMINALES (terminales falsas, obvio el motivo).

La informacion la puedes encontrar en ingles. Yo siempre he usado como referencia un libro famoso donde viene bien expicadito. Se llama The linux programming interface. He encontrado este link para descargarlo. Deberia funcionar:
http://www.4shared.com/document/22_ypUxB/The_Linux_Programming_Interfac.html

Ultimo capitulo, el 64. Si tienes conocimientos, lo podras aplicar facilmente. Hice un mini proyecto con pseudoterminales hace tiempo. Si te interesa lo posteo, pero deberia buscarlo. Formatee el pc y no se si lo mantengo.

Un abrazo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pregunta sobre Maquina virtual-virtual pc
Software
T0rete 4 2,847 Último mensaje 5 Octubre 2011, 16:10 pm
por zosemu
Mac OS X en Maquina Virtual
Mac OS X
Skeletron 3 7,501 Último mensaje 3 Enero 2011, 21:26 pm
por triplex hack
Maquina virtual
Dudas Generales
Marrec 4 2,788 Último mensaje 20 Noviembre 2010, 15:11 pm
por Marrec
Exponer la memoria en vivo del invitado en Maquina Virtual
Hacking
ChaleYo 0 1,824 Último mensaje 8 Septiembre 2020, 20:55 pm
por ChaleYo
Máquina virtual
Hacking
Tirenex 1 659 Último mensaje 8 Diciembre 2023, 12:36 pm
por .xAk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines