Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Разное - За что отвечают hal.dll, ntoskrnl.exe, Interrupts?

Ответить
Настройки темы
Разное - За что отвечают hal.dll, ntoskrnl.exe, Interrupts?

Аватара для Котяра

Ветеран


Сообщения: 2907
Благодарности: 331


Конфигурация

Профиль | Отправить PM | Цитировать


Цитата Severny:
А нагрузку дает hal, только куда копать не совсем ясно. »
За что отвечают hal.dll, ntoskrnl.exe, Interrupts? Знаю, что ntoskrnl отвечает за загрузку (там бутскрин).

Отправлено: 23:35, 17-07-2008

 

Ветеран


Сообщения: 3487
Благодарности: 507

Профиль | Сайт | Отправить PM | Цитировать


Цитата Котяра:
Interrupts? »
Ну это и не процесс в нашем понимании..
Цитата:
Определение: Hardware interrupt
Аппаратное прерывание. Прерывание ЦП, генерируемое схемами процессора (или внешнего по отношению к нему контроллера) в ответ на внешние события, такие, как нажатие клавиши, прерывание от периферийного устройства, прерывания по сбою питания, прерывания от схем контроля работы компьютера и т. д., в отличие от программных прерываний, генерируемых по машинной команде типа INT и др.
Цитата Котяра:
hal.dll »
А вот тут и создателю темы не мешает посмотреть.
хотя он там присутствует в последнем посте

-------
Просьба обращаться на "ты".


Отправлено: 23:40, 17-07-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Котяра

Ветеран


Сообщения: 2907
Благодарности: 331

Профиль | Отправить PM | Цитировать


Severny, а за что отвечает hal?

Отправлено: 23:45, 17-07-2008 | #3


Ветеран


Сообщения: 3487
Благодарности: 507

Профиль | Сайт | Отправить PM | Цитировать


Ядро, вернее его часть

-------
Просьба обращаться на "ты".


Отправлено: 23:49, 17-07-2008 | #4


Аватара для Котяра

Ветеран


Сообщения: 2907
Благодарности: 331

Профиль | Отправить PM | Цитировать


Цитата Severny:
Ядро »
А подробнее? Какие функции оно выполняет? Те же, что и ntoskrnl - ядро и загрузка. Знаю, что hal как-то зависит от типа ПК.

Отправлено: 23:51, 17-07-2008 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Котяра:
Какие функции оно выполняет? »
управляет всей работой операционной системы, будь то Поиск, Проводник и т.п. да и не только этим. Тоесть ядро обеспечивает взаимодействие между функциями самой операционной системы и программами. Если я ошибся, пинайте, до тех пор, пока не пойму. (К сожалению, минимум моих знаний, не позволяет объяснить это более профессионально. Хотя для себя я общее назначение кернела, системного ядра знаю.)

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 02:16, 18-07-2008 | #6


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить 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. Асинхронные операции ввода-вывода

-------
Ehhh.. what's up, doc?..

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:48, 18-07-2008 | #7


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Ещё про прерывания и зачем их придумали в статье Прервись на минутку
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:48, 18-07-2008 | #8


Аватара для Котяра

Ветеран


Сообщения: 2907
Благодарности: 331

Профиль | Отправить PM | Цитировать


Цитата mrcnn:
Уровень абстракций железа »
Что он делает?

Отправлено: 14:14, 18-07-2008 | #9


Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


Цитата Котяра:
Что он делает? »
Из википедии:

Hardware Abstraction Layer (HAL, Слой аппаратных абстракций) — слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части ядра операционной системы, таким образом чтобы большая часть кода, работающая в режиме ядра не нуждалась в изменении при её запуске на системах с различным аппаратным обеспечением. На персональных компьютерах HAL, по существу, может рассматриваться как драйвер материнской платы, позволяющий взаимодействовать инструкциям высокоуровневых языков программирования с низкоуровневыми компонентами, такими как аппаратное обеспечение, к примеру напрямую с аппаратным обеспечением.

В операционных системах семейства Windows NT HAL является частью ядра[1][2]. Это обеспечивает портируемость кода ОС Windows NT, работающего в режиме ядра на различные виды процессоров, с различными блоками управления памятью и на ряд систем с различными архитектурами шин ввода/вывода; большая часть этого кода выполняется без изменений на этих системах, при компиляции для системы команд оговоренных выше систем. К примеру рабочие станции, основанные на SGI Intel x86 были не совместимы с IBM PC-совместимыми рабочими станциями, но благодаря HAL Windows NT мог запускаться на них.

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:57, 18-07-2008 | #10



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Разное - За что отвечают hal.dll, ntoskrnl.exe, Interrupts?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - [решено] 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




 
Переход