En el momento de MS-DOS, o en los derivados gráficos (hasta e incluyendo Windows ME), no había ninguna noción de "derechos administrativos".
Aquí hay dos conceptos distintos, que deben ser detallados. La primera es sobre lo que se permite hacer un proceso cuando se pregunta bien. Lo segundo es lo que puede hacer si no es agradable en absoluto.
En MS-DOS, cada proceso toma el control exclusivo de la máquina y puede hacer casi cualquier cosa que desee. Ve toda la memoria RAM, puede hablar con todo el hardware, y así sucesivamente. Además, no hay un programador, por lo que un proceso utiliza la CPU hasta que sale. Es posible hacer que el proceso se prolongue, pero eso es principalmente reservar un poco de RAM y esperar a que se le otorgue el control, generalmente, una interrupción de hardware (los controladores del mouse funcionaron de esa manera).
Con Windows 3.1 en "modo extendido 386" y sus derivados Windows 95, 98 y Millenium (ME), varios procesos pueden ejecutarse simultáneamente, y una parte del sistema operativo entrega la CPU a uno u otro, sin preguntarles. Esto se denomina multitarea preventiva . Cada proceso tiene su propio espacio de memoria, y la MMU atrapa los casos en que un proceso intenta acceder a la memoria de otro. Sin embargo, esto es solo para detectar errores, no para seguridad: todos los procesos aún pueden acceder directamente al hardware, y leer y escribir en la memoria del kernel. Por lo tanto, no hay una noción de "derechos administrativos" que tengan sentido en estos sistemas operativos, y ni siquiera lo intentan.
En el linaje de NT, comenzando con NT 3.51, luego NT 4, Windows 2000, XP y versiones posteriores, existe una protección de memoria real y los procesos no pueden escapar de su espacio de direcciones. No pueden hablar directamente con el hardware y no pueden acceder a la memoria más allá de la que se les asignó explícitamente. Esto implica que cuando necesitan hacer algo que exceda los límites de su espacio de direcciones privadas, ya sea para leer un archivo o mostrar cosas en la pantalla, deben preguntar al sistema operativo. Y el sistema operativo cumplirá, o no, según su propia noción de derechos de acceso. Cualquier proceso puede tener "derechos de administrador" o no; si no lo hace, se rechazarán varias operaciones con un error de "acceso denegado".
Esto se aplica también a los ejecutables de MS-DOS. Bajo la línea de sistemas NT, los ejecutables de MS-DOS trabajan con un modelo de direccionamiento de 16 bits, lo que significa que "ven" un espacio de direcciones de aproximadamente un megabyte (1114096 bytes, precisamente) en el que el sistema operativo emula una versión antigua de MS-DOS - El proceso cree que está solo en la máquina; pero cuando accede a los archivos hablando con ese emulador de MS-DOS, las llamadas se enrutan al núcleo normal (de 32 bits), que decidirá si las acepta o no, según los derechos de acceso otorgados a la cuenta de MS-DOS. proceso, en particular si se ejecutó con derechos de administrador o no.
Tenga en cuenta que la ejecución de código de 16 bits en un sistema operativo de 32 bits requiere el uso del modo VM86 . Este modo es no admitido por la moderna CPU x86 cuando se ejecutan en modo de 64 bits (también conocido como "modo largo"), por lo que la ejecución de procesos MS-DOS de 16 bits no es compatible con las versiones de 64 bits de Windows, a menos que agregue una capa adicional de emulación de CPU como DOSBox .
Resumen: los ejecutables de 16 bits no tienen derechos de administrador automáticos en DOS / Windows. Las versiones anteriores del sistema operativo no tienen tal noción; En las versiones de Windows que admiten un concepto de derechos de administrador, un ejecutable de 16 bits solo tendrá dichos derechos si se concede de forma explícita, si es que puede ejecutarse, lo que ya no es el caso de las arquitecturas de 64 bits.