descriptor de segmentos

will
12 de Mayo del 2005
muchas gracias no se uqe haria sin vosotros
pero si tienen razon estoy usando el dev-c++ y tengo win xp y al usar esos unteros nera y far me sale un error interno en winxp,
por avor podrias explicarme mas acerca de un descriptor de segmentos que apunte al area que estoy uscando y sus permisos o algun documento donde explique eso, te estare muy agradecido
bye

hiei
12 de Mayo del 2005
Vien, este tema es un poco largo y realmente es para programadores de sistemas (o aquiellos que deceen crear sistemas operativos)
Como primera cosa, si usas WinXP (el primer Windows que veo que se parece "algo" a un sistema operatibo de verdad) no podras acceder a direcciones especificas pues esto conlleva el riesgo de tirar el sistema abajo cuando hacemos algo mal.
Paso a explicarte:
El procesador, cuando entra a modo protegido, restringe el acceso a sus instrucciones y a determinadas areas de memoria (que se descriven en los descriptores) a determinados programas.
Los programas, para acceder a la memoria, necesitan una tabla cruzada llamada Tabla de Descritpores Locales LDT en ingles (existe una global que maneja el sistema operatibo, la GDT) Esta tabla local es creada automaticamente cuando se ejecuta el programa como una tarea previa del sistema operativo y el programa no tiene acceso a ella (ya que se encuentra en el area del OS que solo puede ser accedido con los privilegios de este) asi que la unica manera de acceder a la memoria es pedirselo al sistema operativo y este no dejara acceder a las areas de memoria que el no quiera (de hecho el programa no save en que parte de la memoria se ejecuta realmente porque la direccion que el cree acceder, el OS la transforma por medio de la tabla cursada de descriptores locales a la real direccion fisica)
WinXP, Win2000, WinNT y UNIX (Linux, FreeBSD, OpenBSD, QNX, y otros sistemas operativos de verdad) restringen seriamente el acceso a direcciones specificas de la memoria. Win 95/98/Me tienen menos restricciones en este sentido (por eso son tan inestables)
Si lo que deceases leer algo de la BIOS, no te esfuerses. Cuando Win arranca borra toda esa area porque no necesita mas a la BIOS y se encarga el de todo el maejo de Hardware.

Dinos que quieres hacer leyendo esa zona de memoria porque seguro que habra otra manera de hacerlo... (tal vez mas facil) que no sea accediendo a la memoria directamente.

Si quieres saver mas sobre el modo protegido y su gestion de memoria puedes acudir a la pagina:
http://raster.cibermillennium.com/OS2/CURSO/PM286.HTM
Que empieza con el modo protegido del 286 para luego pasar al de 386 (arquitectura actual de las maquinas hoy como son los Pentium I, II, II y 4, AMD, y X86 compatibles)
Otra direccion tambien muy buena es:
http://www.zator.com/Hardware/H5_1.htm
Que empieza desde la gestion de memoria en modo real y va desglosando todo el tema.
...y como no, la pagina de INTEL (en ingles):
http://developer.intel.com/design/pentium/manuals/