Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«1.Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Windows (Π³Π». 1-4)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 18

Автор ΠœΠ°Ρ€ΠΊ Руссинович

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° POSIX ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сконфигурирована Π½Π° запуск Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° выполнСния прилоТСния POSIX. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, старт подсистСмы POSIX ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, запустив ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ POSIX, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ POSIX ΠΈΠ· Windows Services for UNIX (нСбольшой Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ \Apps\POSIX Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дискС рСсурсов Windows 2000; ΠΎΠ½ΠΈ Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ рСсурсов). Для запуска подсистСмы POSIX слСдуйтС инструкциям, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅.

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

2. Π—апуститС Process Explorer ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ подсистСма POSIX Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° (Ρ‚. Π΅. процСсса Psxss.exe Π² систСмС Π½Π΅Ρ‚). Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Process Explorer ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ список процСссов ΠΊΠ°ΠΊ Π΄Π΅Ρ€Π΅Π²ΠΎ (Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+T).

3. Π—апуститС POSIX-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C Shell ΠΈΠ»ΠΈ Korn Shell, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ с Windows Services for UNIX) ΠΈΠ»ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ POSIX ΠΈΠ· рСсурсов Windows 2000, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ \Apps\POSIX\Ls.exe.

4. Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² Process Explorer ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ процСсс Psxss.exe, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ процСссом Smss.exe (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° подсвСтки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ процСсс).

Для компиляции ΠΈ сборки прилоТСния POSIX Π² Windows Π½ΡƒΠΆΠ½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ POSIX ΠΈΠ· Platform SDK. Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ POSIX ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ подсистСмы POSIX, Psxdll.dll. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Windows ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сконфигурирована Π½Π° запуск подсистСмы POSIX Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС прилоТСния POSIX Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ процСсс подсистСмы POSIX (Psxss.exe). Π•Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ продолТаСтся Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы. (Если Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ процСсс подсистСмы POSIX, запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ POSIX станСт Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы.) ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ POSIX Π½Π΅ выполняСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ; для Π½Π΅Π³ΠΎ запускаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Posix.exe, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ процСсс, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ прилоТСния POSIX.


ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° OS/2

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° окруТСния OS/2, ΠΊΠ°ΠΊ ΠΈ подсистСма POSIX, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ довольно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ лишь 16-разрядныС прилоТСния OS/2 вСрсии 1.2 с ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ»ΠΈ графичСским Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Windows Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ прямой доступ ΠΊ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ поэтому Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ прилоТСния OS/2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ сСгмСнты ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ инструкции IN/OUT (для доступа ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ устройствам). ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ CLI/STI, ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Windows, Π½ΠΎ Π½Π° врСмя выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ STI всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прилоТСния OS/2 Π² систСмС ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ процСссов OS/2, Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ CLI, ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 2–5, подсистСма OS/2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ 32-разрядноС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ адрСсноС пространство Windows, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ прилоТСниям OS/2 вСрсии 1.2 Π΄ΠΎ 512 Мб памяти, снимая Ρ‚Π΅ΠΌ самым исходноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ этой вСрсии Π½Π° объСм адрСсуСмой памяти (Π΄ΠΎ 16 Мб).

ΠœΠΎΠ·Π°ΠΈΡ‡Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ (tiled area) β€” это 512 Мб Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ адрСсного пространства, ΠΎΡ‚ΠΊΡƒΠ΄Π° пСрСдаСтся ΠΈ ΠΊΡƒΠ΄Π° возвращаСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ, выдСляСмая ΠΏΠΎΠ΄ сСгмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ 16-разрядныС прилоТСния. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса подсистСма OS/2 Π²Π΅Π΄Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… дСскрипторов (local descriptor table, LDT), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сСгмСнты раздСляСмой памяти Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ LDT-слот для всСх процСссов OS/2.

Как Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 6, ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнтами выполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ΠΊ процСссору ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ схСмС). B OS/2 всСго 64 уровня ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² (ΠΎΡ‚ 0 Π΄ΠΎ 63), Π° Π² Windows β€” 32 (ΠΎΡ‚ 0 Π΄ΠΎ 31). НСсмотря Π½Π° это, 64 уровня ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² OS/2 ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° динамичСскиС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Windows с 1-Π³ΠΎ ΠΏΠΎ 15-ΠΉ. ΠŸΠΎΡ‚ΠΎΠΊΠΈ OS/2, выполняСмыС Π² Windows, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (16–31).

Как ΠΈ подсистСма POSIX, подсистСма OS/2 автоматичСски запускаСтся ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ OS/2-совмСстимого ΠΎΠ±Ρ€Π°Π·Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСй систСмы.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ POSIX ΠΈ OS/2 Π² Windows см. Π³Π»Π°Π²Ρƒ 6.


Ntdll.dll

Ntdll.dll β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° систСмной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, нуТная Π² основном ΠΏΡ€ΠΈ использовании DLL подсистСм. Она содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²:

β€’ интСрфСйсы диспСтчСра систСмных сСрвисов (system service dispatch stubs) ΠΊ сСрвисам ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы Windows;

β€’ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ подсистСмами, DLL подсистСм ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠŸΠ΅Ρ€Π²Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСдоставляСт интСрфСйс ΠΊ сСрвисам ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. Π’Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ 200, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ NtCreateFile, NtSetEvent ΠΈ Ρ‚. Π΄. Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… доступно Ρ‡Π΅Ρ€Π΅Π· Windows API (ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для примСнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ самой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы).

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ntdll сущСствуСт Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Код Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ содСрТит ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΡƒΡŽ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌ ядра для Π²Ρ‹Π·ΠΎΠ²Π° диспСтчСра систСмных сСрвисов (ΠΎ Π½Π΅ΠΌ рассказываСтся Π² Π³Π»Π°Π²Π΅ 3), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΆΠ΅ настоящий сСрвис Ρ€Π΅ΠΆΠΈΠΌΠ° ядра ΠΈΠ· Ntoskrnl.exe.

Ntdll Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Ldr), диспСтчСр ΠΊΡƒΡ‡, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для взаимодСйствия с процСссом подсистСмы Windows (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Csr), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° выполнСния (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Rtl). Π’Π°ΠΌ ΠΆΠ΅ находится диспСтчСр APC (asynchronous procedure call) ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈ диспСтчСр ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. (ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± APC ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… см. Π³Π»Π°Π²Ρƒ 3.)


Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма

Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма (executive) находится Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Ntoskrnl.exe (ядро располагаСтся Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅). B Π΅Π΅ состав входят Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°.

β€’ ЭкспортируСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, доступныС для Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ систСмными сСрвисами ΠΈ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Ntdll. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сСрвисов доступно Ρ‡Π΅Ρ€Π΅Π· Windows API ΠΈΠ»ΠΈ API Π΄Ρ€ΡƒΠ³ΠΈΡ… подсистСм окруТСния. Однако Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… нСдоступны Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ LPC, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ запросов Π²Ρ€ΠΎΠ΄Π΅ NtQueryInformationProcess, спСциализированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° NtCreatePagingFile ΠΈ Ρ‚. Π΄.).

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² устройств, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DeviceIoCont-rol. ПослСдняя являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ интСрфСйсом ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊ Ρ€Π΅ΠΆΠΈΠΌΡƒ ядра для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… устройств, Π½Π΅ связанных с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ записью.

β€’ ЭкспортируСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, доступныС для Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Windows DDK ΠΈΠ»ΠΈ Windows Installable File System (IFS) Kit (см. wwwmicrosoft.com/whdc/ddk/ifskit.default.mspx).

β€’ ЭкспортируСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, доступныС для Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра, Π½ΠΎ Π½Π΅ описанныС Π² Windows DDK ΠΈΠ»ΠΈ IFS Kit (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° этапС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΈ Ρ‡ΡŒΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Inbv).

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅, Π½ΠΎ Π½Π΅ экспортируСмыС символы. Π’ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² Ntoskrnl; ΠΈΡ… ΠΈΠΌΠ΅Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Iop (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ диспСтчСра Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°) ΠΈΠ»ΠΈ с Mi (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ).

β€’ Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ символы. Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассматриваСтся Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΊΠ½ΠΈΠ³ΠΈ).

β€’ ДиспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (см. Π³Π»Π°Π²Ρƒ 4), ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ систСмным рССстром.

β€’ ДиспСтчСр процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (см. Π³Π»Π°Π²Ρƒ 6), ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ процСссы ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. НизкоуровнСвая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ядрС Windows, Π° ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма дополняСт эти Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ своСй сСмантикой ΠΈ функциями.

β€’ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ состояния Π·Π°Ρ‰ΠΈΡ‚Ρ‹ (см. Π³Π»Π°Π²Ρƒ 8), Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Он охраняСт рСсурсы ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, осущСствляя Π°ΡƒΠ΄ΠΈΡ‚ ΠΈ контролируя доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ выполнСния.

β€’ ДиспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° (см. Π³Π»Π°Π²Ρƒ 9), Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимый Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° пСрСсылку Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π½ΡƒΠΆΠ½Ρ‹ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌ устройств для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

β€’ ДиспСтчСр Plug and Play (см. Π³Π»Π°Π²Ρƒ 9), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ устройства, ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΈΡ…. ВрСбования ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… рСсурсах ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² процСссС пСрСчислСния. B зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства диспСтчСр PnP распрСдСляСт Ρ‚Π°ΠΊΠΈΠ΅ рСсурсы, ΠΊΠ°ΠΊ ΠΏΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, IRQ, ΠΊΠ°Π½Π°Π»Ρ‹ DMA ΠΈ области памяти. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° посылку ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± измСнСниях Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ обСспСчСнии систСмы (ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ устройств).