Foro de elhacker.net

Sistemas Operativos => Windows => Mensaje iniciado por: macshivi en 22 Abril 2017, 16:47 pm



Título: Diferencia entre %SystemRoot%\System i %SystemRoot%\System32?
Publicado por: macshivi en 22 Abril 2017, 16:47 pm
He buscado en internet y no encuentro nada razonable.

Agradeceria mucho una respuesta simple, muchas gracias.


Título: Re: Diferencia entre %SystemRoot%\System i %SystemRoot%\System32?
Publicado por: WHK en 22 Abril 2017, 17:30 pm
La carpeta system la utilizaba antiguamente en windows de 16 bits como windows 98 y versiones inferiores, windows cada ves que lanza nuevas verisones también acarrea funcionalidades antiguas, por ejemplo versiones antiguas de regedit estaban duplicadas en la carpeta windows y system32, por esto ambas carpetas aun existen en las últimas versiones de windows, mas que nada porque les da flojera tener que rehacer todo el kernel nuevamente, simplemente reutilizan agregando nuevas features. system32 se supone que debiera contener solo binarios de 32 bits y system solo de 16 aunque en la práctica no siempre se cumple cuando instalas drivers o softwares de terceros. Mas que nada también se mantiene por un tema de compatibilidad. Yo opino que fue una mala organización por parte de microsoft de los archivos del sistema.


Título: Re: Diferencia entre %SystemRoot%\System i %SystemRoot%\System32?
Publicado por: macshivi en 22 Abril 2017, 17:49 pm
Muchas gracias!


Título: Re: Diferencia entre %SystemRoot%\System i %SystemRoot%\System32?
Publicado por: Randomize en 22 Abril 2017, 20:36 pm
Palabra de WHK.



Título: Re: Diferencia entre %SystemRoot%\System i %SystemRoot%\System32?
Publicado por: juanse96152 en 2 Mayo 2017, 18:05 pm
HOLA Buen dia  la diferencia esta en lo bits  ya que system I maneja 16bit y system32 maneja 32bit .. saludos


Título: Re: Diferencia entre %SystemRoot%\System i %SystemRoot%\System32?
Publicado por: #!drvy en 2 Mayo 2017, 18:40 pm
Cabe destacar que esto es un poco más complicado en las versiones de 64 bits de Windows. System sigue siendo una referencia para ejecutables de 16 bit pero, ahora System32 contiene ejecutables de 64 bits mientras que SySWOW64 contiene los de 32 bits.

En Windows 10 64 bits,

Si me voy a %SystemRoot%/System32 y abro el diskpart.exe veré que tiene el header PE  d† lo cual indica que es un programa de X64.
Si me voy a %SystemRoot%/SysWOW64 y abro el diskpart.exe veré que el tiene el header PE  L el cual indica que es un programa X86.


Va un poco al revés la cosa, pero la culpa realmente es de desarrolladores de terceros que hardcodearon las rutas de sus programas. Windows tiene una API la cual todo el mundo debería utilizar. Las funciones como SHGetKnownFolderPath() (https://msdn.microsoft.com/en-us/library/bb762188(v=vs.85).aspx) y GetSystemDirectory() (https://msdn.microsoft.com/en-us/library/ms724373(v=vs.85).aspx) están ahí para darte la dirección correcta a usar cuando necesitas algo. Sin embargo, muchos programadores prefieren hardcodear las rutas y cuando salieron las versiones de 64 bits y les toco actualizar sus programas, no cambiaron las rutas.. así que sus programas, buscaban librerías y ejecutables de 64 bits en el directorio que se supone que es de 32 bits. Microsoft decidió entonces que todo lo relacionado a 64 bit estaría en System32 y todo lo relacionado a 32 bit estaría en SySWOW64.

Cosas de mala organización y malas practicas.

Saludos