El Sun, 31 Jan 2010 16:15:48 +0100, Carlos E. R. escribió:
El 2010-01-31 a las 13:30 -0000, Camaleón escribió:
No obstante, puede emplear algunas funciones de librería que sí les permitirían acceder a trozos de memoria enormes, mapeandolas, y siendo conscientes de ello de alguna forma. Es decir, podría reservar un trozo de 6 GiB dividiendolo en trozos menores y accediendo a cada trozo por separado. Pero no podría emplear la operación del procesador de buscar un string en todo el trozo de 6 gigas, tendría que hacer varias búsquedas, y usar artimañas para buscar el string en las fronteras entre los trozos divididos.
Pues eso, que *sí* pueden.
Que no.
Aquí explicaban cómo hacerlo, con las "artimañas" del mmap(), una pizca de C y ensamblador. En apenas 62 KiB. Y es del año 2005... *** tub -- evade TASK_UNMAPPED_BASE http://www.bitwagon.com/tub.html "(...) tub is a user-mode hack which works around the problem on today's Linux for x86. When linked into the application, then tub intercepts all mmap(0, ...), chooses from its master list the page frames to be used, and calls the kernel with mmap(frame_address,,,MAP_FIXED,,). In effect, tub allows the application to set task_unmapped_base to any address. Setting task_unmapped_base = brk(0); allows for maximum contiguous address space." Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org