¡¡IDEAS Y SUGERENCIAS PARA MEJORAR REACTOS!!

Moderators: elhoir, HUMA2000

Post Reply
HUMA2000
Posts: 235
Joined: Sat Nov 27, 2004 1:06 pm
Location: España, al sur con el solecito
Contact:

¡¡IDEAS Y SUGERENCIAS PARA MEJORAR REACTOS!!

Post by HUMA2000 »

En este hilo me gustaria que cada uno posteara sus sugerencias sobre como mejorar este proyecto, así podré comunicarsela a los desarrolladores de una forma coherente y bien explicadas. Venga, ¡animaros y postead!
harry1982
Posts: 16
Joined: Mon Oct 24, 2005 6:34 pm

Post by harry1982 »

Hola HUMA2000.

Windows, Asc... Windows. Bromas a parte.

Un instante que haga recuerto de lo que he revisado de codigo fuente...
Hay varios apartados que teneis que tener en cuenta no solo para mejorar el sistema sino para trasladar los mensajes a archivos .MC y RC (aunque el ultima ya se está haciendo).

MINGW32-MAKE (OBJ-I386 Y OUTPUT-I386):
---------------------------------------------------------------------

Durante el proceso de compilación se crean los directorios... "output-i386" y "obj-i386". Y, dentro de estos, se vuelven a crear la misma escructura de directorios que el oriiginal (\ros-dev\rosapps, \ros-dev\reactos,,...).
Los directorios dichos contiene las mismas escructuras de directorios: output-i386\reactos y obj-i386\reactos. Esto significa que estamos creando doble escructura de directorios para los .o o .obj una escructura y para los ejecutable otra. ¿No sería mas sencillos crear una unica escructura para hacer las doc cosas? Como: E:\ros-dev\reactos\ntoskrnl\ES\obj\i386 o E:\ros-dev\reactos\ntoskrnl\ES\obj-i386.
Creo que cambiando esta parte la compilación, no se hace tantas escructuras de directorios.

¿Es posible ejecutar el programa compilador que compile solamente una parte del proyecto y no todo desde cualquier parte del proyecto?

b) FREELDR.SYS Y SETUPLDR.SYS Y LOS MENSAJES.
-----------------------------------------------------------------------------------------
Hago saber que no he mirado entero el freeldr pero...
En la web he leido que el freeldr.sys se convertirá en RosNTLDR eso, todavia no lo se pero de momento da igual.

Por el tema de los mensajes, las traducciónes etc., el tema de la estructura de directorios sería una buena idea de separa los idiomas.
Al no poder traducir los mensajes pense en el ntoskrnl.exe y el ntdll.dll.
utilizan .MC, una sección de encabezamiento .rsrc entonces dibuje un esquema de las posible soluciónes que podría tener no solos los archivos freeldr.sys y setupldr sino, el resto de los archivos que faltan (de momento sin contar con los drivers).
Explico:
El freeldr.sys debería convertirse en un EXE PE nativo sin GDT, ni LDT ni excepciónes de memoria ni nada, solo el arranque NtProcessStartup.
Con eso consegiremos poder separar los mensajes de los fuentes y utilizar los mensajes gracias a la programación posterior de las funciónes RtlFormatMessage.

ROS_STUB.COM: El Boot Stub sería la solución por parte del boot del sistema. Debería estar combinado y basado por las partes extraidas del FREELDR.SYS, un programa principal del stub que tendría que tener las escructuras de una PE y que pudiera ponerlo en funcionamiento y un ASM que su segmento se colocará al final del todo el COM para poder localizar la aplicación nativa y poderla ejecutar.
Para ponerlo como arranque del sistema bastaría ejecutar:
COPY/B ROS_STUB.COM + SETUPLDR.EXE SETUPLDR.BIN

c) USETUP.EXE (mensajes)
--------------------------------------------

Pienso que sería necesarío recurrir a la instrucción RtlFormatMessage.

De momento con esto, ya hay un rato de que discutir, ¿no?
Yo no se si la idea es buena o no, o si se va ha hacer o no pero, lo unico que espero que el sistema funcióne.

Espero que me podais decir alguna cosa pronto.
Gracias.
HUMA2000
Posts: 235
Joined: Sat Nov 27, 2004 1:06 pm
Location: España, al sur con el solecito
Contact:

Post by HUMA2000 »

No soy programador, así que me cuesta un poco seguirte, pero vamos a ver si me he enterado:
a) Al compilar se crean estructuras de directorio duplicadas, separando los archivos .o y .obj y otra para los ejecutables segun dices. Bien, esto no se si afecta al tiempo de compilación o no, pero parece lógico, el output que interesa para crear una iso o instalar el sistema son los ejecutables y directamente puedes coger el directorio resultante y convertirlo en una iso sin tener que estar pasando cientos de comandos al makeiso, piensa que si estuvieran juntos todos los archivos deberias ir añadiendo uno a uno los archivos que necesitas a la iso, mientras que si están separados puedes añadirlos usando comodines y ahorrando pasar comandos al interprete (puede que este equivocado).

B) Sobre lo de cambiar el modo de aranque me parece una buena idea, así acercariamos el modelo mas al de windows, usa el NTDETECT.COM para cargar el sistema (lo que seria equivalente a nuestro freeloadr), lo comentare en el irc y posteare la sugerencia en el foro inglés.

c) No se a que te refieres, soy demasiado ignorante para comprender la ventaja o desventaja de esa instruccion, aun así lo comentare.
harry1982
Posts: 16
Joined: Mon Oct 24, 2005 6:34 pm

Post by harry1982 »

Hola.

Haber, La escructura de directorios output-i386 y obj-i386 durante la compilación crea lo sigiente:
output-i386\reactos\boot\freeldr\freeldr.sys
output-i386\reactos\boot\freeldr\i386\...

y en obj-i386\reactos\boot\freeldr\freeldr.o
....
¿Es posible unificar estos dos directorios (al menos) en uno solo?
Para que los ejecutable y los obj queden en una rama de directorios porque de esta forma estamos duplicando (como tu dices) los mis directorios al menos 2 veces y, si no se puede, de tdas formas te lo voy a comentar:
Haber, es cierto que no me he mirado entero todo el codigo y creo que de todo el codigo solo me he mirado el 2% pero, creo que si se va hace lo del RosNTLDR, creo que es buena idea (creo yo) que durante la compilación se separen los dos idiomas, por ejemplo:
output-i386\reactos\boot\osloader\ES\osloader.exe
output-i386\reactos\boot\osloader\EN\osloader.exe
....
Así no se mezclarian los idiomas.

Por parte de freeldr (futuro RosNTLDR),
no es NTDETECT.COM, es RosNTLDR o NTLDR.
Creo que si aceptais esta idea, creo que el ReactOS empezará a parecerse windows pero sin serlo. Tengo muchas ideas pero que muchas pero, creo que prefiero comentarte el tema del RosNTLDR puesto que es el primer archivo del sistema que se ejecuta y despues ntoskrnl.
Hablando del STUB.COM:
Para que funcióne, las partes que se extraiga, debería ser adaptadas a los compiladores de DOS porque estaríamos trabajando en un nuevo sistema de arranque.
Las excepciónes o sea, Protecciónes generales, los accesos a la memoria extendida, etc, debería en un principio debería pasarse a formar parte de la nueva estrucctura del STUB.

Por parte de la función RtlFormatMessage, es una ifunción que utiliza el ntoskrnl para acceder al los messages.
NTOSKRNL tambien debería moverse los mensajes y, NTOSKRNL.MC debería tener multiples archivos para los idistintos idiomas.
Ayer, tuve la oportunidad de probar la versión 0.2.8 RC2 y aun sigo pensando que se debería hacer esos cambios.
Me gustará saber lo que piensan los desarolladores sobre el nuevo RosNTLDR.

Estaré esperando la respuesta.

oh, ya se me olvidaba. Jejeje
De momento no hace falta pero se debería empezar a pensar de implementar las ejecuciónes de programas Windows y de DOS (simplemente como una idea suelta).
En NT tiene el NTIO.SYS y NTDOS.SYS y claro está el COMMAND.COM.
HUMA2000
Posts: 235
Joined: Sat Nov 27, 2004 1:06 pm
Location: España, al sur con el solecito
Contact:

Post by HUMA2000 »

Bueno, además de hacerme algo de lio creo que he entendido algo mejor las cosas. Lo de unificar los directorios sigo sin verlo porque entiendo que los obj/o y los binarios son cosas diferentes, en cambio lo de separar los idiomas en los archivos tipo freeldr, setup y demas me parece muy lógico. Lo comentare este fin de semana en el chat.

Lo de la funcion sigo sin entenderlo, por lo que entiendo lo que propones es acercarnos más al modelo de windows para obtener los mensajes.... pero no llego a entender las diferencias entre ese sistema y el actual, lo siento
(no soy un programador iluminado en los misterios de las funciones
:wink: )

Este fin de semana hablare por el chat con la gente, si estas a lo mejor me hechas un cable apra explicar tus ideas.
harry1982
Posts: 16
Joined: Mon Oct 24, 2005 6:34 pm

Post by harry1982 »

Eso es, ¿no es el proposito del proyecto? Crear un sistema clon de windows.
Si por algun motivo me equivoco, quiero que me lo digais pero... creo que solamente me he equivocado en llos obj-i386 y output-i386.


Por lo de la instrucción, no te preocupes que los programadores seguro que saben lo que es.

Los archivos NTIO.SYS , en realidad lo habia puesto como un simple ejemplo.
El NTVDM.EXE existe, pero no está implementado las ejecuciónes Windows y de DOS a la vez y solo funciónan programas de Consolas.

Si de alguna forma se pudiera cambiar las partes senciales del sistema, entonces la cosa cambiaría un monton y a mejor.
HUMA2000
Posts: 235
Joined: Sat Nov 27, 2004 1:06 pm
Location: España, al sur con el solecito
Contact:

Post by HUMA2000 »

Aunque sea un clon de windwos, tiene que ser un clon mejorado :wink: no siempre el camino de windwos es el mejor ni el peor, aunque tus sugerencias me parecen de lo mas lógico y seguro que mejoran el sistema :lol:
harry1982
Posts: 16
Joined: Mon Oct 24, 2005 6:34 pm

Post by harry1982 »

¡Parece que te ha gustado las ideas segun tus palabras!
Tengo montones de ideas pero todo a su tiempo, lo primero es lo primero , orregir los archivos principales.


Me alegro que que te guste mi idea. :shock:
HUMA2000
Posts: 235
Joined: Sat Nov 27, 2004 1:06 pm
Location: España, al sur con el solecito
Contact:

Post by HUMA2000 »

Siempre es bueno ver gente con buenas ideas, por mi parte lo que más me gustaria modificar es la parte del shell (siempre he odiado el explorer de windows, es lento y con pocas posibilidades de ampliación)., aunque como tu dices, lo primero son los cambios a cosas globales y criticas para el sistema.
Sarocet
Posts: 93
Joined: Thu Dec 23, 2004 9:06 pm
Location: España (Spain)

Post by Sarocet »

harry1982 wrote: b) FREELDR.SYS Y SETUPLDR.SYS Y LOS MENSAJES.
-----------------------------------------------------------------------------------------
Hago saber que no he mirado entero el freeldr pero...
En la web he leido que el freeldr.sys se convertirá en RosNTLDR eso, todavia no lo se pero de momento da igual.

Por el tema de los mensajes, las traducciónes etc., el tema de la estructura de directorios sería una buena idea de separa los idiomas.
Al no poder traducir los mensajes pense en el ntoskrnl.exe y el ntdll.dll.
utilizan .MC, una sección de encabezamiento .rsrc entonces dibuje un esquema de las posible soluciónes que podría tener no solos los archivos freeldr.sys y setupldr sino, el resto de los archivos que faltan (de momento sin contar con los drivers).
Explico:
El freeldr.sys debería convertirse en un EXE PE nativo sin GDT, ni LDT ni excepciónes de memoria ni nada, solo el arranque NtProcessStartup.
Con eso consegiremos poder separar los mensajes de los fuentes y utilizar los mensajes gracias a la programación posterior de las funciónes RtlFormatMessage.

ROS_STUB.COM: El Boot Stub sería la solución por parte del boot del sistema. Debería estar combinado y basado por las partes extraidas del FREELDR.SYS, un programa principal del stub que tendría que tener las escructuras de una PE y que pudiera ponerlo en funcionamiento y un ASM que su segmento se colocará al final del todo el COM para poder localizar la aplicación nativa y poderla ejecutar.
Para ponerlo como arranque del sistema bastaría ejecutar:
COPY/B ROS_STUB.COM + SETUPLDR.EXE SETUPLDR.BIN
Si no he entendido mal, estás pretendiendo cambiar todo el freeldr para hacer una traducción con los textos en archivos .rc ???
Para eso colocar los textos con defines en archivos .h, y según el idioma, que se cargue uno u otro (tendrías que cambiar un archivo global como mínimo para decidir el idioma).
harry_1982
Posts: 1
Joined: Wed Nov 02, 2005 7:53 pm

Post by harry_1982 »

POR PROBLEMAS DE ACCESO A LA CUENTA DE USUARIO HARRY1982, ME HA SIDO IMPOSIBLE POSTEAR UN NUEVO MENSAJE CON ESE USUARIO AHORA TENGO HARRY_1982.
harry1982
Posts: 16
Joined: Mon Oct 24, 2005 6:34 pm

Post by harry1982 »

Hola a todo el equipo de desarrollo de ReactOS.

Despues de haber estado algun tiempo sin poder postear en condiciones, he vuelto para informar en el estado en que se encuentra el programa, o sea, el nuevo cargador de ReactOS.

El programa está basado en la versión que hay de la revisión 0.2.9 del FREELOADER, he intentado utilizar todo lo que disponia está versión del freeloader y puedo decir que se está acercando a la meta final de programa.
Hasta hace 2 horas aprox. he estádo con el programa y puedo decir que lo tengo entre un 60% y 70% terminado.

El unico problema que aún no se como hacerlo y es a la hora de decidir que lenguage dejar: ¿Ingles?, ¿Español? O los dos. Y... si dejo los 2, como lo hago para decidir si uno o el otro?

Me gustaria que me dierais alguna idea.
Sarocet
Posts: 93
Joined: Thu Dec 23, 2004 9:06 pm
Location: España (Spain)

Post by Sarocet »

Los dos. Como mínimo que se pueda escoger.
Pon los idiomas como archivos .rc, o en su defecto al tratarse de un cargador, usa #defines en archivos aparte.
harry1982
Posts: 16
Joined: Mon Oct 24, 2005 6:34 pm

Post by harry1982 »

Hola Sarocet!

Gracias por contestar.
El problema era que si pongo uno o si pongo el otro o incluso mas idiomas, tendré el mismo problema.
Al ser entre 80% y 90% del freeldr, no se si hacer una ligera modificación del programa e incluir obligatoriamente una nueva instrucción con lo cual me daria la posibilidad de elegir o añadir una tecla de cambio de idiomas aunque lo probaré.

De todas formas, hasta dentro de unos dias no podré empezar a preparar las compilaciónes del osloader y setupldr porque me quiero asegurar de que las modificaciónes de he realizado en freeldr (ahora osloader) esten totalmente sincronizadas para evitar posibles problemas como por ejemplo: Se ha producido un error y para evitar daños se ha pasado el sistema (tipico de windows).

Daré conocer cuando una de las pruebas con (.RC ya incluidas) sea un existo los cambios realizados del freeldr. Al menos los mas importantes.

Si teneis alguna duda, postear.
Sarocet
Posts: 93
Joined: Thu Dec 23, 2004 9:06 pm
Location: España (Spain)

Post by Sarocet »

harry1982 wrote: Daré conocer cuando una de las pruebas con (.RC ya incluidas)
Si no me equivoco, los archivos .rc pueden contener diferentes idiomas, siendo el SO quien luego escoge el adecuado según cómo esté configurado. El problema, obviamente es que al cargarse antes del SO seguramente no se cuenta con esa opción.

Otro sistema sería usar punteros a las cadenas de caracteres y que se pudiera escoger el idioma como un parámetro más en la configuración del arranque.
Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests