Процедура загрузки компьютера под управлением ОС Windows 98.
BIOS (и начальное тестирование POST – Power-On Self Test).
2. Считывание в память внесистемного загрузчика (NSB – Non-System Bootstrap).
3. Считывание и запуск системного загрузчика (SB - System Bootstrap).
4. Io.sys – ядро MS-DOS.
5. Msdos.sys – первый конфигурационный файл.
6. Если нажать клавишу F8 или Ctrl то появляется выбор конфигурации загрузки.
7. Загружается драйвер сжатых дисков.
8. Config.sys – второй конфигурационный файл.
9. Comand.com – командный интерпретатор.
10. Autoexec.bat – файл предназначен для запуска резидентных DOS-программ.
11. Win.com – стартовый файл.
12. Загружается диспетчер виртуальных машин из vmm32.vxd.
13. Статистические драйвера виртуальных устройств из реестра.
14. Загружаются драйвера упакованные внутри vmm32.vxd.
15. Загружаются драйвера из папки C:\Windows\System\VMM32.
16. System.ini – конфигурационный файл.
17. Загружаются динамические драйвера виртуальных устройств.
18. Загружается ядро Windows(файлы krnl386.exe, kernel32.exe, gdi.exe, gdi32.exe, user.exe, user32.exe).
19. Шрифты.
20. Win.ini – последний конфигурационный файл.
21. Загружается графическая оболочка.
22. Запрашивается пароль на вход пользователя в Windows.
23. Формируются параметры интерфейса в соответствии с установками текущего пользователя.
24. Запуск программ, автозагрузка которых прописана в реестре или задана с использованием папки «Автозагрузки» меня «Пуск».
Архитектура Windows NT
Когда в 1989 году Microsoft приступила к разработке Windows NT, было выдвинуто несколько ключевых требований к новой операционной системе. Это должна была быть полностью 32-разрядная ОС, способная работать на многочисленных аппаратных платформах с разной архитектурой.
Кроме того, от NT требовалось выполнение большинства существующих 16-разрядных приложений для MS-DOS и Windows 3.х.
В целях обеспечения эффективности и целостности работы ОС в системе Windows NT реализуются два режима работы (см. рис) :
- режим ядра (kernel mode)
- режим пользователя (user mode)
Режим ядра - это привилегированный режим работы, в котором код получает прямой доступ ко всем аппаратным ресурсам и всей памяти, включая адресные пространства всех процессов режима пользователя. Функциональные возможности компонентов режима ядра включают:
- прямой доступ к оборудованию;
- прямой доступ ко всем видам памяти компьютера;
- озможность работы без передачи на жесткий диск в файл подкачки виртуальной памяти;
- более высокий приоритет исполнения, чем процессы режима пользователя.
Функционирование режима ядра Windows NT обеспечивается исполняющей системой Windows NT (Windows NT Executive), состоящей из следующих компоненто :
- сервис исполняющей системы - управление памятью, процессами, потоками, безопасностью, вводом/выводом, межпроцессорными обменами (см. схему);
- ядро Windows NT (ntoskrnl.exe) выполняет низкоуровневые функции операционной системы: диспетчеризация потоков, прерываний и исключений, синхронизация процессоров, отложенный вызов процедур. В отличие от остальной исполняемой части операционной системы, ядро никогда не выгружается из оперативной памяти, его выполнение никогда не прерывается другими потоками. Код ядра написан в основном на Си, а части, дающие наибольшую нагрузку на процессор, на языке Ассемблера. Ядро расположено между слоем системных служб и HAL;
- слой абстракции от оборудования (HAL - Hardware Abstraction Layer) изолирует ядро, драйверы устройств и исполняемую часть NT от аппаратных платформ, на которых должна работать операционная система. Этот программный слой позволяет скрыть особенности аппаратных платформ, предоставив ОС стандартные точки входа в процедуры, благодаря чему для нее исчезают различия между платформами и архитектурами. Поэтому ОС может функционировать на разных платформах с разными процессорами (остались только Intel и Alpha). Кроме того, Windows NT способна работать на одно- и многопроцессорных компьютерах;
Кроме того в режиме ядра работают :
- драйверы устройств включают как файловую систему, так и аппаратные драйверы, которые транслируют пользовательские вызовы функций ввода/вывода в запросы физических устройств ввода/вывода;
- функции графического интерфейса пользователя работают с окнами, элементами управления и рисунками.
Режим пользователя - менее привилегированный по сравнению с режимом ядра работы процессора.
- не имеет прямого доступа к аппаратуре. Это сделано в целях защиты от неверно работающих приложений или от несанкционированного доступа. Запросы на использование аппаратных ресурсов должны быть разрешены компонентом режима ядра;
- ограничен размерами выделенного адресного пространства, что позволяет обеспечить дополнительную защиту ОС. Системные службы он вызывает через интерфейсы прикладных программ (Application Program Interface - API);
- может быть выгружен из физической памяти в виртуальную память на жестком диске. Виртуальная память (virtual memory, VRAM) использует пространство на жестком диске как дополнительную оперативную память;
- Приоритет процесса пользовательского типа ниже, чем у процессов режима ядра. Поэтому в сравнении с последним ему, как правило, предоставляется меньше процессорного времени. Это предохраняет ОС от снижения производительности или возникновения задержек, связанных с ожиданием завершения работы приложений.
Имеется четыре базовых типа пользовательских процессов :
- Специальные процессы поддержки системы, например, процесс регистрации пользователя и менеджер сессий, которые не являются службами NT;
- Процессы сервера, которые являются службами NT (аналог демонов в ОС Unix). Примером может быть регистратор событий (Event Logger);
- Подсистемы среды, которые обеспечивают пользовательским приложениям среду других операционных систем. Windows NT поставляется с тремя подсистемами: Win32, Posix и OS/2 2.1;
- Пользовательские приложения одного из пяти типов: Win32, Windows 3.1 (Win16), MS-DOS, Posix или OS/2 2.1.