|
Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Разное - За что отвечают hal.dll, ntoskrnl.exe, Interrupts? |
|
|
Разное - За что отвечают hal.dll, ntoskrnl.exe, Interrupts?
|
Ветеран Сообщения: 2907 |
Профиль | Отправить PM | Цитировать Цитата Severny:
|
||
Отправлено: 23:35, 17-07-2008 |
Ветеран Сообщения: 3487
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Котяра:
Цитата:
Цитата Котяра:
хотя он там присутствует в последнем посте |
|||
------- Отправлено: 23:40, 17-07-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать Severny, а за что отвечает hal?
|
Отправлено: 23:45, 17-07-2008 | #3 |
Ветеран Сообщения: 3487
|
Профиль | Сайт | Отправить PM | Цитировать Ядро, вернее его часть
|
------- Отправлено: 23:49, 17-07-2008 | #4 |
Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать Цитата Severny:
|
||
Отправлено: 23:51, 17-07-2008 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Котяра:
|
|
------- Отправлено: 02:16, 18-07-2008 | #6 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать HAL - код, который обеспечивает независимость ядра, драйверов и управляющей части Windows от определяемых железом различий в платформе.(The hardware abstraction layer (HAL) is a layer of code that isolates the kernel, device drivers, and the rest of the Windows 2000 executive from platform-specific hardware differences (such as differences between motherboards).
Executive (управляющая часть) - содержит базовые системные сервисы, такие как управление памятью, управление потоками и процессами, безопасность, ввод-вывод и взаимодействие между процессами Ядро состоит из низкоуровневых системных функций, таких как запуск потоков, прерывание и обработка исключений, синхронизация между несколькими процессами. Драйвера - транслируют вызовы функций ввода-вывода в специальные запросы драйверов Графическая часть - определяет GUI функции, которая работает с окнами, пользовательским интерфейсом и рисованием. Файлы ядра: Ntoskrnl.exe - управляющая часть и ядро Ntkrnlpa.exe - управляющая часть и ядро с поддержкой до 64 гигов оперативной памяти. Кто тут писал, что Windows XP не поддерживает более 3 гигов оперативы? Может стоило покопаться и ядро поменять? Hal.dll - Hardware abstraction layer - Уровень абстракций железа Win32k.sys - Часть подсистемы win32, работающая на уровне ядра Ntdll.dll - Внутренние функции и системные сервисы, связанные и управляющей частью. (Internal support functions and system service dispatch stubs to executive functions ) Основные библиотеки ядра Win32: Kernel32.dll,Advapi32.dll,User32.dll,Gdi32.dll Прерывания и исключения - это состояния ОС, которые заставляют выйти процессор из нормального режима работы. Термин trap (ловушка) связан с механизмом процессора для захвата и выполнения потока, когда происходит исключение или прерывание и передает управление фиксированной части ОС. Процессор передает управление trap handler (обработчику ловушки), функции специфичной для определенного прерывания или исключения. Прерывание (Interrupt) - это асинхронное событие (которое может случится в любое время), которое не связано с тем, что выполняет процессор в данное время. Прерывания генерируются главным образом устройствами ввода-вывода, тактами процессора или таймерами. Они могут быть выключены или включены. Исключение -это синхронное состояние, которое вызвано исполнением конкретной инструкции. Запуск программы второй раз с тем же набором данных и с теми же условиями может вновь вызвать исключение. Примеры исключений: нарушение зоны доступа к памяти, ошибки деления на ноль и инструкции отладчика. Ядро также отрабатывает вызовы системных сервисов как исключения. Исключения и прерывания могут генерироваться как железом, так и софтом. Когда сгенерировано исключение или прерывание, процессор записывает состояние, чтобы вернуться к этой точке управления потоком и продолжить выполенние так, как будто ничего не произошло. Чтобы сделать это, процессор создает trap frame в стеке ядра прерываемого потока, в котором он сохраняет состояние потока. Железячные прерывания вызываются устройствами ввода-вывода, которые должны уведомить процессор в том, что им необходимо обслуживание. Устройства, управляемые прерываниями, позволяют ОС получить максимальную степень использования процессора, нагружая центральный процесор I/O операциями. Поток начинает передачу данных от или к устройству и затем вполняет другую полезную работу, пока устройство завершает передачу. Когда устройство заканчивает, оно прерывает процессор для обслуживания. Главным образом управляются прерываниями устройства рисования, принтеры, клавиатуры, диски и сетевые кабели. Прерывания могут генерировать системный софт. Ядро может отключить прерывания процессора в критические моменты, когда он обрабатывает исключение или прерывание. Ядро устанавливает interrupt trap handlers, чтобы ответить на прерывания устройств. interrupt trap handlers передают управление либо внешним процедурам (interrupt service routine-ISR), которые обрабатывают прерывание либо внутрненим процедурам ядра, которые отвечают на прерывания. Драйвера обеспечивают ISR для прерываний устройств, а ядро обеспечивает обработку других типов прерываний. На х86 системах внешние I/O прерывания помещаются в одну из линий контроллера прерываний. Когда процессор получает прерывание, он делает запрос контроллеру на получение запроса прерывания (interrupt request, IRQ). Контроллер прерывания транслирует IRQ в определенный номер, помещает этот номер как индекс в структуру IDT (interrupt dispatch table) и передает управление соответствующим процедурам. При загрузке Windows ядро создает IDT с указателями на процедуры ядра, которые обрабатывают каждое прерывание и исключение. Windows создает собственную схему приоритетов прерываний, называемую IRQL ( interrupt request levels). Ядро представляет IRQL в виде чисел от 1 до N, с номерами отображающими степень приоритета прерываний (чем больше номер, те выше приоритет). Хотя ядро определяет стандартный набор IRQL для софтовых прерываний, HAL помещает номера прерываний железа в IRQL.В результате получается таблица вида 31- High 30- Power fail 29- Inter processor interrupt 28- Clock 27- Profile 26- Device n .... 03-Device 1 <- Прерывания железа 02-DPC/Dispatch <- Прерывания софта 01-APC 00-Passive <-Нормальное выполнение потока Прерывания обслуживаются в соответствии с проритетом. Когда случается прерывание с высоким уровнем приоритета, процессор сохраняет состояние прерываемого потока и вызывает trap dispatcher, связанный с прерыванием. trap dispatcher повышает IRQL и вызывает функцию обслуживания прерывания. После завершения работы процедурой, trap dispatcher понижает IRQL до того уровня, где он был до того, как он вызвал прерывание и загружает сохраненное состояние. Прерванный поток продолжает исполнение. Повышение и понижения IRQL происходит с помощью процедур KeRaiseIrql или KeLowerIrql или через вызов функций, которые получают объект синхронизации с ядром. High - полный останов системы на keBugCheckEx и скрытие всех других прерываний Power fail - не используется Inter processor interrupt - запрос к другому процессору на выполнени действий Clock - системные часы Profile Device n....Device 1 - прерывания драйверов в порядке приоритета DPC/Dispatch и APC - прерывания софта, вызываемые ядром и драйверами Passive - нормальное выполнение потока Софтовые прерывания генерируются для следующих задач: 1. Initiating thread dispatching 2. Не критическое по времени обработка прерываний 3. Обработка истечения времени таймера 4. Асинхронное выполнени процедуры в контексте данного потока 5. Асинхронные операции ввода-вывода |
------- Отправлено: 06:48, 18-07-2008 | #7 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Ещё про прерывания и зачем их придумали в статье Прервись на минутку
|
Отправлено: 12:48, 18-07-2008 | #8 |
Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать Цитата mrcnn:
|
|
Отправлено: 14:14, 18-07-2008 | #9 |
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Котяра:
Hardware Abstraction Layer (HAL, Слой аппаратных абстракций) — слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части ядра операционной системы, таким образом чтобы большая часть кода, работающая в режиме ядра не нуждалась в изменении при её запуске на системах с различным аппаратным обеспечением. На персональных компьютерах HAL, по существу, может рассматриваться как драйвер материнской платы, позволяющий взаимодействовать инструкциям высокоуровневых языков программирования с низкоуровневыми компонентами, такими как аппаратное обеспечение, к примеру напрямую с аппаратным обеспечением. В операционных системах семейства Windows NT HAL является частью ядра[1][2]. Это обеспечивает портируемость кода ОС Windows NT, работающего в режиме ядра на различные виды процессоров, с различными блоками управления памятью и на ряд систем с различными архитектурами шин ввода/вывода; большая часть этого кода выполняется без изменений на этих системах, при компиляции для системы команд оговоренных выше систем. К примеру рабочие станции, основанные на SGI Intel x86 были не совместимы с IBM PC-совместимыми рабочими станциями, но благодаря HAL Windows NT мог запускаться на них. |
|
------- Отправлено: 15:57, 18-07-2008 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Загрузка - [решено] Hal.dll отсутствует или поврежден | MozART | Microsoft Windows 2000/XP | 316 | 03-11-2019 21:53 | |
Установка - HAL.DLL | exo | Microsoft Windows 2000/XP | 3 | 20-12-2009 20:12 | |
где найти файлы ntkrnlmp.exe ntkrnlpa.exe ntkrpamp.exe ntoskrnl.exe | krazy | Автоматическая установка Windows 2000/XP/2003 | 4 | 20-11-2008 15:20 | |
Загрузка - hal.dll | 4aki | Microsoft Windows Vista | 1 | 17-07-2008 14:42 | |
Не опознается hal.dll,ntoskrnl.exe,KDCOM.DLL | Igor_strelka | Microsoft Windows 2000/XP | 3 | 12-01-2007 23:23 |
|