Se me ha ocurrido una idea muy interesante. Igual la podemos desarrollar.

Iniciado por OmarHack, 3 Julio 2013, 18:55 PM

0 Miembros y 1 Visitante están viendo este tema.

OmarHack

Verdad que es molesto tener que recompilar programas echos en Windows en 20 sistemas más o creados en Linux recompilarlos en Windows, Mac, etc.

Pues se me a ocurrido una idea para que aportemos entre los que quieran realizar el proyecto un formato universal.

Imaginaros. Tenemos un programa .exe. Pues lo cogemos y lo convertimos al formato .universal o como queramos llamarlo con el programa que creemos.

Ese programa será el encargado de convertir el archivo a eses formatos y de ejecutarlos.

Sería un gran aporte para la comunidad Open Source y un gran alivio y tiempo para muchos usuarios y desarrolladores.

¿Qué os parece?  
I like to test things.

z3nth10n


Interesados hablad por Discord.

1mpuls0

La verdad no sé que tanto implique.
Te refieres a una conversión de un programa plataforma n a programa plataforma n-1 o programa plataforma n+1?

Hay que tener en cuenta la cantidad de sistemas operativos, aunque supongamos que iniciamos con 3, windows, mac y linux, ahora sus versiones y después su arquitectura, además de tomar en cuenta el lenguaje de programación con que fue creado.
SO x Ver. x Arq.

No sé la idea no suena nada mal, que se pueda realizar es diferentes.

Todos los programas fueron creados a su manera porque por varias razones, las dos principales es por necesidad y la segunda sería por su plataforma en que se instalaría.

Por cierto me diste una idea para otro proyecto xD

Saludos.
abc

El Benjo

OmarHack, es una muy buena idea; de hecho es tan buena que ya se ha intentado hacer antes pero sin los resultados esperados. Te explico:

JAVA compila con ese formato universal al que tú te refieres, que es un código de bytes que representa operaciones del procesador y los datos que procesará el mismo. Sin embargo hay un problema al hacer esto y es que lógicamente necesitas de un intérprete de esas órdenes que es la máquina virtual de JAVA.
Microsoft fue un paso más allá con el .NET Framework y su compilador JIT (Just In Time) que compila el "código universal" según el procesador y el sistema operativo de la computadora en cuestión, de esta manera se elimina el intérprete (o parte de él) en tiempo de ejecución.

Ahora dime, ¿vas a hacer una máquina virtual desde cero para cada sistema operativo y procesador que se te ocurra? ¿De verdad tienes tantos conocimientos en programación como para intentar hacer al menos la mitad de este proyecto? ¿Ya te has puesto a pensar en el trabajo de adaptar las APIs entre cada sistema operativo o crearlas desde cero en caso de que alguna no exista?

No quiero decirte que no lo hagas, pero de verdad me parece mucho para tan poco, es decir, para mí realmente basta con recompilar para otro sistema operativo y dar a elegir entre dos o más enlaces de descarga.  :huh:

Disculpa, pero hay que ser realistas. Un saludo y suerte si lo piensas hacer.  ;D
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

daryo

se me ocurre la siguente idea :

la extension universal lo abre un interprete
2 el interprete ya conoce el so donde se esta ejecutando
3. el interprete busca en el archivo .universal la version correspondiente a su SO
4.lo descarga
5. lo instala.

suena bastante viable y no es para nada complicado de hacer incluso si los archivos .universal se hacen de forma estandar(usando xml por ejemplo) los interpretes pueden ser programados por quien desee hasta se podrian hacer extensiones de navegador etc.

extiendo un poco mi idea , supongamos que ese interprete trae un compilador como gcc y otro metodo de instalacion que consista en que  dependiendo el so se compile con x o y opcion "claro el interprete deberia facilitar el reconocimiento del so" y en este caso eberia permitir el manejo de instalar librerias como por ejemplo qt o etc

PD: tengan en cuanta que los virus se reproducirian indistintamente el so
buenas

OmarHack

Quizás fallaron por plantearse la solución de esa manera pero seguro que hay muchas más.
Imagínate que quieres abrir un exe en Linux.
Tienes varias opciones. Las primera creo que es la que se ha tomado hasta ahora por esas empresas que mencionas.
·Emular Windows


¿Pero que pasa con las miles de opciones restantes que podrían dar resultado?
Se me ocurren unas cuantas pensándolo fríamente en un par de minutos.

·Que el exe se envíe a un servidor Windows y este inspeccionando los cambios que ha realizado el ejecutable en su sistema devuelva un programa compilado para linux que altere Linux de la misma manera. Es decir, un programa con las mismas condiciones y similar al original. (Demasiado complejo para realizarse pero totalmente posible aún que no viable.)

·Que se recojan todas las instrucciones que el programa realice en código máquina y que se cree un ejecutable. (Demasiado complejo)

Y la última y la mas viable que se me ocurre de momento.
·Recrear en Linux el sistema que abre los exes en Windows.

Si se consiguiese hacer esta última simplemente habría que substituir algunos cambios que se realicen en Windows para Linux. Imaginaros el ejemplo de un programa que abra el disco local C: y copie un archivo dentro. Pues solo habría que indicarle al programa que creemos que sin el programa intenta acceder a la ruta C: pues que en Linux se copie el archivo en Raiz o en donde sea, en vez de en C. Llevaría trabajo, cierto. Podemos ser muchísimos en el proyecto, aún más cierto aún. La mayoría de distribuciones Linux han sido creadas por millones de desarrolladores.

¿Por qué no empezar este proyecto nosotros? Si es viable seguro que se unirían muchos desarrolladores profesionales de distribuciones Linux. Al fin y al cabo esto le quitará mercado a Windows y a Mac y le dará mucho más poder al software libre.

Lo que tu dices daryo también es una opción muy buena. Seguro que hay miles de opciones más, solo hay que estudiarlas, elegir la mejor y ponernos a ello.
I like to test things.


OmarHack

Lo sé, pero veo las 2 como una sola opción.

Creo que es más fácil desarrollar algo así que ir haciendo copias de todos los programas útiles que se vayan creando para Windows y Mac como se lleva haciendo desde siempre en Linux.

I like to test things.

daryo

buenas

El Benjo

Por supuesto, sería MEJOR, pro no es más FÁCIL. Yo veo demasiado complicado por el hecho de que no estamos hablando de desarrollar muchas aplicaciones independiente para un núcleo ya establecido (como indicas que ha ido creciendo linux), sino que hablamos de cientos o miles de programadores trabajando en el mismo código sin una verdadera coordinación, cada uno escribiendo según su visión del proyecto y (en el peor de los casos, pero seguramente) a su conveniencia.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.