48.Адресное пространство w9х
Раздел от 0x00000000 до 0x003FFFFF
Этот регион размером 4 Мб в нижней части адресного пространства процесса необходим Windows 95 для поддержки совместимости с MS-DOS и 16-разрядной Windows. He пытай-тесь обращаться к нему из Win32-пpилoжeний. В идеале процессор должен был бы генери-ровать нарушение доступа при обращении потока к этому участку памяти, но по техничес-ким причинам Microsoft не смогла заблокировать эти 4 Мб адресного пространства. Доступ запрещен лишь к нижним 4 Кб. И если поток Вашего процесса попытается прочесть или записать данные по одному из адресов в диапазоне от 0x00000000 до OxOOOOOFFF, процессор сгенерирует нарушение доступа. Защита этого четырехкилобайгового региона чрезвычайно полезна для выявления нулевых указателей.
Довольно часто в программах, написанных на С, отсутствует скрупулезная обработка ошибок. Например, в следующем фрагменте кода ее вообще нет: int* pnSomelnteger
pnSomelnteger = (int*)malloc(sizeof(int)) *pnSomeInteger = 5
При нехватке памяти malloc вернет NULL. Но код не учитывает эту возможность и при ошибке обратится к памяти по адресу 0x00000000. А поскольку нижние 4 Кб адресного пространства заблокированы, возникнет нарушение доступа, и данный процесс завершится. Эта особенность помогает программистам находить «жучков» в своих приложениях.
Раздел от 0x00400000 до Ox7FFFFFFF
В этом разделе размером 2 143 289 344 байтов (2 Гб за вычетом 4 Мб) располагается закрытое (неразделяемое) адресное пространство процесса. Ни один Win32-пpoцecc не может получить
Рис. 5-1. Win32-разделы в Windows95
доступ к данным другого процесса, размещенным в этом разделе. Основной объем данных, принадлежащих Win32-пpoцeccy, хранится именно здесь. Поэтому Win32-приложения менее зависимы от взаимных «капризов», да и вся система функционирует устойчивее.
Раздел от 0x80000000 до OxBFFFFFFF
В этом разделе размером 1 Гб система хранит данные, доступные всем Win32-процессам. Сюда загружаются, например, системные DLL: KERNEL32.DLL, USER32.DLL, GDI32.DLL и ADVAPI32.DLL. Соответственно эти DLL доступны всем выполняемым Win32-процессам, и для каждого процесса они загружаются по одному и тому же адресу. Кроме того, на этот раздел отображаются все проецируемые в память файлы (о них см. главу 8).
Раздел от ОхСООООООО до OxFFFFFFFF
В этом разделе размером 1 Гб находится код операционной системы, в том числе систем драйверы виртуальных устройств, код низкоуровневого управления памятью и файловой стемой. Как и в предыдущем разделе, расположенный здесь код доступен всем Win32 -прои сам. К сожалению, этот раздел не защищен — любое Win32-приложение может считать и записать в него какие-нибудь данные, что в принципе грозит крахом операционной системы.
- 2. Теневая память
- 6.Недостатки ms-dos и пути их преодоления
- 7.Структура conventional памяти
- 9. Обработчики 09h и 16h клавиатуры
- 10. Extended память
- Expanded память
- Upper память
- 14.Структура данных на магнитных дисках
- 15. Клавиатура. Scan-код
- 16. Распределение памяти в реальном режиме
- Адресация озу при использовании сегментации в защищённом режиме
- 19. Hma память
- Механизм страничной адресации
- 23.Тест клавиатуры
- 24. Прерывания bios
- Преобразование логического адреса в физический при включённой страничной адресации
- 26. Исключения и их обработка
- 27. Управление клавиатурой
- 28. Приоритет обработки прерываний
- Привилегии и защита программ
- 30.Механизм виртуальной памяти
- 31.Дескрипторы сегментных регистров
- 32.Кэш память
- 33.Таблицы локальных и глобальных дескрипторов
- 34.Cga, vga адаптеры
- Характеристики vga адаптеров
- 35.Таблица дескрипторов idt
- 37.Шлюзы и их применение
- 38.Понятие дескриптора
- 39. Адаптер дисплея
- 40.Функции dos и bios для клавиатуры
- 41 Пять компонентов защиты
- 42.Виртуальный 8086
- 43.Классы приоритетов
- 44.Многозадачный режим. Статические и динамические наборы
- 45.Шлюз задач
- 46. Библиотеки dll
- Явная компоновка
- 47.Виртуальная память процессора
- 48.Адресное пространство w9х
- 49.Адресное пространство nt
- 51. Файл подкачки страниц
- 52. Два процесса – один ехе файл.
- 53. Физическая память и страничный файл
- Физическая память в страничном файле не хранится
- 54. Алгоритм загрузки программ
- 56. Переданная и зарезервированная память
- 57.Разделы ехе файла
- 58. Проецируемые в память файлы
- 59.Механизмы работы с файлами больших размеров
- 60. Различия в обработке прерываний и исключений