1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
Post on 06-Jul-2018
219 Views
Preview:
Transcript
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
1/38
Àííîòàöèÿ: Êíèãà ïîñâÿùåíà âíóòðåííåìó óñòðîéñòâó è àëãîðèòìàì ðàáîòû îñíîâíûõ êîìïîíåí Íàçâàíèÿ âñåõ êîìàíä, äèàëîãîâûõ îêîí è äðóãèõ èíòåðôåéñíûõ ýëåìåíòîâ îïåðàöèîííîé ñèñ Âåðñèÿ Fb2 ðåäàêöèè 1.5 . Îá îøèáêàõ ïðîñüáà ñîîáùàòü ïî àäðåñó general2008@ukr.n
---------------------------------------------
Ì.Ðóññèíîâè÷, Ä.Ñîëîìîí Âíóòðåííåå óñòðîéñòâî Microsoft Windows (ãëàâû 14)
Windows Server 2003, Windows XP è Windows 2000 4-å èçäàíèå
Ïðåäûñòîðèÿ
ß âíîâü ïðèçíàòåëåí Äýâèäó Ñîëîìîíó (David Solomon) è Ìàðêó Ðóññèíîâè÷ó (Mark Russinov Ïåðåä àâòîðàìè ñòîÿëè äâå çàäà÷è, êîòîðûå ïîñòîÿííî óñëîæíÿþòñÿ: îòñëåæèâàíèå ýâîëþöèî(Ñëåâà íàïðàâî) Äýâèä Ñîëîìîí, Äýâèä Êàòëåð è Ìàðê Ðóññèíîâè÷Âïåðâûå ÿ ïîçíàêîìèëñÿ ñ Äýâèäîì Ñîëîìîíîì, êîãäà åìó áûëî âñåãî 16 ëåò, à ÿ ðàáîòàë â Èñòîêè Windows NT âîñõîäÿò ê îêòÿáðþ 1988 ãîäà, êîãäà áûëî ðåøåíî ñîçäàòü ïåðåíîñèìóþ
Ïîíà÷àëó ìû ïîëàãàëè, ÷òî ñóìååì ñîçäàòü Windows NT çà ïàðó ëåò, íî â äåéñòâèòåëüíîñòè Ïåðâàÿ âåðñèÿ Windows NT ïîëó÷èëàñü áîëåå ãðîìîçäêîé è ìåäëåííîé, ÷åì îæèäàëîñü, òàê ÷ Òîë÷êîì ê ñîçäàíèþ ñëåäóþùåé âåðñèè Windows NT ñòàëî æåëàíèå ñäåëàòü ïîëüçîâàòåëüñêèé Íàçâàíèå ñëåäóþùåé âåðñèè NT áûëî èçìåíåíî íà Windows 2000. Îíà ñòàëà ïîñëåäíåé ñèñòåì B êîíöå ðàçðàáîòêè Windows 2000 ìû ïðèñòóïèëè ê ðàáîòå íàä àìáèöèîçíûì ïëàíîì ðåàëèçàö Ýòà êíèãà åäèíñòâåííàÿ, ãäå òàê ãëóáîêî è ïîëíî ðàññìîòðåíû âíóòðåííèå ñòðóêòóðû è ïðè2003. Êðîìå òîãî, îíà ïðåäëàãàåò çàãëÿíóòü â áóäóùåå ïåðåâîä Windows íà 64-ðàçðÿäíûå Àðõèòåêòóðà õ64 ýòî íà÷àëî íîâîé ýðû äëÿ Windows NT â òîò ìîìåíò, êîãäà âðåìÿ àðõèòåÕîòÿ íàçâàíèå NT-ñèñòåìû çà ïîñëåäíèå íåñêîëüêî ëåò íåîäíîêðàòíî ìåíÿëîñü, îíà ïî-ïðåæ Äýâèä H. Êàòëåð, çàñëóæåííûé ñòàðøèé èíæåíåð êîðïîðàöèè Microsoft
Ïðåäèñëîâèå
Microsoft Windows áûëà ÷àñòüþ ìîåé æèçíè öåëûõ 14 ëåò. Çà ýòî âðåìÿ îò âåðñèè ê âåðñ Ýòî ôóíäàìåíòàëüíàÿ êíèãà î âíóòðåííåì óñòðîéñòâå áàçîâûõ êîìïîíåíòîâ Windows. Åñëè âû Åñëè âû âðîäå ìåíÿ, çíà÷èò, âàì òîæå íðàâèòñÿ ðàçáèðàòüñÿ â òîì, êàê óñòðîåíû âåùè. ×ò Äýâèä è Ìàðê ïðîäåëàëè ïðåâîñõîäíóþ ðàáîòó, íàïèñàâ êíèãó î òåõíè÷åñêîé «èçíàíêå» Wind Ýòî áûë äîëãèé ïóòü è îí âñå åùå ïðîäîëæàåòñÿ. Òàê ÷òî îòêðûâàéòå êíèãó, à çàîäíî è Äæèì Îë÷èí, âèöå-ïðåçèäåíò ãðóïïû ïëàòôîðì êîðïîðàöèè Microsoft
Áëàãîäàðíîñòè
B ïåðâóþ î÷åðåäü ìû õîòèì îñîáî ïîáëàãîäàðèòü ñëåäóþùèõ ëþäåé. Äýéâà Êàòëåðà (Dave Cutler), çàñëóæåííîãî ñòàðøåãî èíæåíåðà è ïåðâîãî àðõèòåêòîðà
Äæèìà Îë÷èíà Jim Allchin), íàøåãî ãëàâíîãî ñïîíñîðà, çà ïðåäèñëîâèå ê ýòîé êíèãå Ðîáà Øîðòà (Rob Short), âèöå-ïðåçèäåíòà, êîòîðûé ïîçàáîòèëñÿ î òîì, ÷òîáû íàì ïðåä Ìû òàêæå âûðàæàåì ïðèçíàòåëüíîñòü äâóì ðàçðàáîò÷èêàì èç îòäåëà Windows çà ïîäãîòîâêó í Àäðèàíó Ìàðèíåñêó (Adrian Marinescu), êîòîðûé íàïèñàë çàìåòíî ðàçðîñøèéñÿ ðàçäåë ï Ñàìåðó Àðàôåõó (Samer Arafeh), êîòîðûé ïðåäîñòàâèë ìàòåðèàëû ïî Wow64. Ñïàñèáî íàøåìó ñòàðîìó ïðèÿòåëþ, Äæåôôðè Ðèõòåðó Jeffrey Richter), ñ êîòîðûì ìû ÷àñòî B ýòîé êíèãå íå áûëî áû òàêîé ãëóáèíû è òî÷íîñòè èçëîæåíèÿ òåõíè÷åñêèõ ñâåäåíèé áåç ïî Áûëè è äðóãèå, êòî îòâå÷àë íà íàøè âîïðîñû â êîðèäîðàõ èëè êàôåòåðèÿõ, åñëè ìû âàñ ï Ìû òàêæå âûðàæàåì áëàãîäàðíîñòü Äæåéìè Õàíðàõàí Jamie Hanrahan) èç Azius Developer TraÑïàñèáî Äýéâó Ïðîáåðòó (Dave Probert) çà òî, ÷òî ðàçìåñòèë â ñåòè íàøè ÷åðíîâûå ìàòåðè
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
2/38
Áëàãîäàðèì Äæîíàòàíà Ñëàâçà (Jonathan Sloves) èç AMD, ñ ïîìîùüþ êîòîðîãî íàì ïðåäîñòàâ Íàêîíåö, ìû õîòèì âûðàçèòü áëàãîäàðíîñòü ñëåäóþùèì ñîòðóäíèêàì Microsoft Press çà èõ â Ðîáèíó Âàí-Øòååíáåðãó (Robin van Steenburgh), ðåöåíçåíòó èçäàòåëüñòâà, çà òåðïåíèå Ñàëëè Ñòèêíè (Sally Stickney), êîòîðàÿ íà ïåðâûõ ïîðàõ ïî-ïðåæíåìó áûëà ðåäàêòîðîì Âàëåðè Âóëëè (Valerie Woolley), êîòîðàÿ ïðèíÿëà áðàçäû ïðàâëåíèÿ îò Ñàëëè è ñòàëà Ðîäæåðó Ëåáëàíêó (Roger LeBlanc), êîòîðûé îäîëåë âñå ãëàâû è ñóìåë ñîêðàòèòü â íèõ
Äýâèä Ñîëîìîí è Ìàðê Ðóññèíîâè÷ ñåíòÿáðü 2004 ã.
Ââåäåíèå
×åòâåðòîå èçäàíèå ýòîé êíèãè îðèåíòèðîâàíî íà êâàëèôèöèðîâàííûõ ñïåöèàëèñòîâ (ïðîãðàìì
Ñòðóêòóðà êíèãè
Ïåðâûå äâå ãëàâû çàêëàäûâàþò ôóíäàìåíò, ââîäÿ òåðìèíû è êîíöåïöèè, èñïîëüçóåìûå âî âñå
Èñòîðèÿ íàïèñàíèÿ êíèãè
Ýòî ÷åòâåðòîå èçäàíèå êíèãè, êîòîðàÿ èçíà÷àëüíî íàçûâàëàñü «Inside Windows NT» (Micros
Îñîáåííîñòè ÷åòâåðòîãî èçäàíèÿ Íîâîå èçäàíèå äîïîëíåíî èíôîðìàöèåé îá èçìåíåíèÿõ â ÿäðå, êîòîðûå áûëè âíåñåíû â WindoÒàê êàê îòëè÷èÿ íîâûõ âåðñèé Windows îò Windows 2000 îòíîñèòåëüíî íåâåëèêè (ïî ñðàâíåí
Èíñòðóìåíòû äëÿ ïðîâåäåíèÿ ýêñïåðèìåíòîâ
Äàæå áåç äîñòóïà ê èñõîäíîìó êîäó ñóùåñòâóþùèå èíñòðóìåíòû âðîäå îòëàä÷èêà ÿäðà ïîçâîë
Òåìàòèêà, íå ðàññìàòðèâàåìàÿ â êíèãå
Windows áîëüøàÿ è ñëîæíàÿ îïåðàöèîííàÿ ñèñòåìà. Íåëüçÿ îáúÿòü íåîáúÿòíîå, è ïîýòîìó Ïîñêîëüêó íàøà êíèãà î âíóòðåííåì óñòðîéñòâå Windows, à íå î òîì, êàê ïîëüçîâàòüñÿ ýòî
Ïîäâîäíûå êàìíè
B êíèãå îïèñûâàþòñÿ íåäîêóìåíòèðîâàííûå âíóòðåííèå ñòðóêòóðû è ôóíêöèè ÿäðà, àðõèòåêòó Ãîâîðÿ «ìîæåò èçìåíèòüñÿ», ìû íå èìååì â âèäó, ÷òî äåòàëè óñòðîéñòâà ñèñòåìû îáÿçàòåëü
Òåõíè÷åñêàÿ ïîääåðæêà
Ìû ïðèëîæèëè ìàêñèìóì óñèëèé, ÷òîáû íå äîïóñòèòü íåòî÷íîñòåé è îøèáîê â êíèãå. Åñëè ó
Îò àâòîðîâ
Ýòà êíèãà îòíþäü íå ñîâåðøåííà. Íåñîìíåííî â íåé åñòü êàêèå-òî íåòî÷íîñòè; ìîæåò áûòü,
Îò Microsoft Press
Microsoft ïóáëèêóåò èñïðàâëåíèÿ ê êíèãàì ïî àäðåñó http://www.microsoftcom/learning/s
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
3/38
B ïåðåâîäå ó÷òåíû èñïðàâëåíèÿ, îïóáëèêîâàííûå íà ýòîé Web-ñòðàíèöå, ïî ñîñòîÿíèþ íà 1
ÃËABA 1 Êîíöåïöèè è èíñòðóìåíòû
B ýòîé ãëàâå ìû ïîçíàêîìèì âàñ ñ îñíîâíûìè êîíöåïöèÿìè è òåðìèíàìè îïåðàöèîííîé ñèñòåì Âû äîëæíû õîðîøî ïîíèìàòü âñå, ÷òî íàïèñàíî â ýòîé ãëàâå, â îñòàëüíîé ÷àñòè êíèãè ìû
Âåðñèè îïåðàöèîííûõ ñèñòåì Windows
Ýòà êíèãà îõâàòûâàåò òðè ïîñëåäíèå âåðñèè îïåðàöèîííîé ñèñòåìû Microsoft Windows, îñíî
Windows NT è Windows 95
Ïðè ïåðâîì âûïóñêå Windows NT êîìïàíèÿ Microsoft äàëà ÿñíî ïîíÿòü, ÷òî ýòî äîëãîñðî÷íà Windows NT ïîääåðæèâàåò ìíîãîïðîöåññîðíûå ñèñòåìû, a Windows 95 íåò. Ôàéëîâàÿ ñèñòåìà Windows NT ïîääåðæèâàåò ñðåäñòâà çàùèòû, íàïðèìåð óïðàâëåíèå èçáèð Windows NT ïîëíîñòüþ 32-ðàçðÿäíàÿ (à òåïåðü è 64-ðàçðÿäíàÿ) îïåðàöèîííàÿ ñèñòåìà Windows NT ïîëíîñòüþ ðååíòåðàáåëüíà, à ìíîãèå ÷àñòè Windows 95 íåðååíòåðàáåëüíû (â
Windows NT ïîçâîëÿåò âûïîëíÿòü 16-ðàçðÿäíûå Windows-ïðèëîæåíèÿ â âûäåëåííîì àäðåñí Ðàçäåëÿåìàÿ (îáùàÿ) ïàìÿòü ïðîöåññà â Windows NT âèäíà òîëüêî òåì ïðîöåññàì, êîòîðû Íåêîòîðûå êðèòè÷åñêè âàæíûå ñòðàíèöû ïàìÿòè, çàíèìàåìûå îïåðàöèîííîé ñèñòåìîé Windo
Áàçîâûå êîíöåïöèè è òåðìèíû
B êíèãå áóäóò ÷àñòî âñòðå÷àòüñÿ ññûëêè íà êîíöåïöèè è ñòðóêòóðû, ñ êîòîðûìè íåêîòîðûå
Windows API
Ýòî ñèñòåìíûé èíòåðôåéñ ïðîãðàììèðîâàíèÿ â ñåìåéñòâå îïåðàöèîííûõ ñèñòåì Microsoft Win
s CE â ýòîé êíèãå íå ðàññìàòðèâàþòñÿ. ÏÐÈÌÅ×ÀÍÈÅ Windows API îïèñûâàåòñÿ â äîêóìåíòàöèè Platform Software Development Kit Äî ïîÿâëåíèÿ 64-ðàçðÿäíûõ âåðñèé Windows XP è Windows Server 2003 èíòåðôåéñ ïðîãðàììèð Windows API âêëþ÷àåò òûñÿ÷è âûçûâàåìûõ ôóíêöèé, êîòîðûå ñãðóïïèðîâàíû â ñëåäóþùèå îñíî áàçîâûå ñåðâèñû (Base Services); ñåðâèñû êîìïîíåíòîâ (Component Services); ñåðâèñû ïîëüçîâàòåëüñêîãî èíòåðôåéñà (User Interface Services); ñåðâèñû ãðàôèêè è ìóëüòèìåäèà (Graphics and Multimedia Services); êîììóíèêàöèîííîå âçàèìîäåéñòâèå è ñîâìåñòíàÿ ðàáîòà (Messaging and Collaboration); ñåòè (Networking); Web-ñåðâèñû (Web Services). Îñíîâíîå âíèìàíèå â íàøåé êíèãå óäåëÿåòñÿ âíóòðåííåìó óñòðîéñòâó êëþ÷åâûõ áàçîâûõ ñåðâ
Êàê íàñ÷åò. NET è WinFX?
NET Framework ñîñòîèò èç áèáëèîòåêè êëàññîâ, íàçûâàåìîé Framework Class Library (FCL), CLR ðåàëèçîâàíà êàê êëàññè÷åñêèé ÑÎÌ-ñåðâåð, êîä êîòîðîé õðàíèòñÿ â ñòàíäàðòíîé WindowWinFX «íîâûé Windows API». Ýòî ðåçóëüòàò ýâîëþöèîííîãî ðàçâèòèÿ. NET Framework, êîòî
Èñòîðèÿ ñîçäàíèÿ Win32 API
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
4/38
Èíòåðåñíî, ÷òî ïîíà÷àëó Win32 íå ðàññìàòðèâàëñÿ êàê èíòåðôåéñ ïðîãðàììèðîâàíèÿ äëÿ Mic Õîòÿ â Windows API äîëæíî áûëî ïîÿâèòüñÿ ìíîãî íîâûõ ôóíêöèé, îòñóòñòâóþùèõ â Windows
Ñåðâèñû, ôóíêöèè è ïðîöåäóðû
Íåñêîëüêî òåðìèíîâ â äîêóìåíòàöèè Windows äëÿ ïîëüçîâàòåëåé è ïðîãðàììèñòîâ èìååò ðàçí Ôóíêöèè Windows API Äîêóìåíòèðîâàííûå, âûçûâàåìûå ïîäïðîãðàììû â Windows API, íàïð Íåóïðàâëÿåìûå («ðîäíûå») ñèñòåìíûå ñåðâèñû (èëè èñïîëíÿåìûå ñèñòåìíûå ñåðâèñû) Íåä
Ôóíêöèè (èëè ïðîöåäóðû) ÿäðà Ïîäïðîãðàììû âíóòðè îïåðàöèîííîé ñèñòåìû Windows, êîò Windows-ñåðâèñû Ïðîöåññû, çàïóñêàåìûå äèñïåò÷åðîì óïðàâëåíèÿ ñåðâèñàìè â Windows. DLL (äèíàìè÷åñêè ïîäêëþ÷àåìàÿ áèáëèîòåêà) Íàáîð âûçûâàåìûõ ïîäïðîãðàìì, âêëþ÷åííûõ
Ïðîöåññû, ïîòîêè è çàäàíèÿ
Õîòÿ íà ïåðâûé âçãëÿä êàæåòñÿ, ÷òî ïðîãðàììà è ïðîöåññ ïîíÿòèÿ ïðàêòè÷åñêè îäèíàê çàêðûòîå âèðòóàëüíîå àäðåñíîå ïðîñòðàíñòâî äèàïàçîí àäðåñîâ âèðòóàëüíîé ïàìÿòè,
èñïîëíÿåìóþ ïðîãðàììó íà÷àëüíûé êîä è äàííûå, ïðîåöèðóåìûå íà âèðòóàëüíîå àäðåñíî ñïèñîê îòêðûòûõ îïèñàòåëåé (handles) ðàçëè÷íûõ ñèñòåìíûõ ðåñóðñîâ ñåìàôîðîâ, êîìì êîíòåêñò çàùèòû (security context), íàçûâàåìûé ìàðêåðîì äîñòóïà (access token) è óíèêàëüíûé èäåíòèôèêàòîð ïðîöåññà (âî âíóòðèñèñòåìíîé òåðìèíîëîãèè íàçûâàåìûé èäåíò ìèíèìóì îäèí ïîòîê. Êàæäûé ïðîöåññ òàêæå óêàçûâàåò íà ñâîé ðîäèòåëüñêèé ïðîöåññ (ïðîöåññ-ñîçäàòåëü). Îäíàê
ÝÊÑÏÅÐÈÌÅÍÒ: ïðîñìîòð äåðåâà ïðîöåññîâÁîëüøèíñòâî óòèëèò íå îòîáðàæàåò òàêîé óíèêàëüíûé àòðèáóò, êàê èäåíòèôèêàòîð ðîäèòåëüñ Âçàèìîîòíîøåíèÿ ïðîöåññîâ (äî÷åðíèé-ðîäèòåëüñêèé) Tlist ïîêàçûâàåò îòñòóïàìè. Èìåíà ïð 1. Îòêðîéòå îêíî êîìàíäíîé ñòðîêè. 2. Íàáåðèòå start cmd äëÿ çàïóñêà âòîðîãî îêíà êîìàíäíîé ñòðîêè. 3. Îòêðîéòå äèñïåò÷åð çàäà÷. 4. Ïåðåêëþ÷èòåñü íà âòîðîå îêíî êîìàíäíîé ñòðîêè. 5. Ââåäèòå mspaint äëÿ çàïóñêà Microsoft Paint. 6. Ùåëêíèòå âòîðîå îêíî êîìàíäíîé ñòðîêè. 7. Ââåäèòå exit. (Çàìåòüòå, ÷òî îêíî Paint îñòàåòñÿ.) 8. Ïåðåêëþ÷èòåñü â äèñïåò÷åð çàäà÷. 9. Îòêðîéòå åãî âêëàäêó Applications (Ïðèëîæåíèÿ).10.Ùåëêíèòå ïðàâîé êíîïêîé ìûøè çàäà÷ó Command Prompt (Êîìàíäíàÿ ñòðîêà) è âûáåðèòå Go
11. Ùåëêíèòå ïðîöåññ Cmd.exe, âûäåëåííûé ñåðûì öâåòîì. 12. Ùåëêíóâ ïðàâîé êíîïêîé ìûøè, âûáåðèòå êîìàíäó End Process Tree (Çàâåðøèòü äåðåâî ïðîöåññîâ). 13. B îêíå Task Manager Warning (Ïðåäóïðåæäåíèå äèñïåò÷åðà çàäà÷) ùåëêíèòå Yes (Äà) Ïåðâîå îêíî êîìàíäíîé ñòðîêè èñ÷åçíåò, íî âû ïî-ïðåæíåìó ñìîæåòå íàáëþäàòü îêíî Paint, Äëÿ ïðîñìîòðà (è ìîäèôèêàöèè) ïðîöåññîâ è èíôîðìàöèè, ñâÿçàííîé ñ íèìè, ñóùåñòâóåò öåë Âåðîÿòíî, íàèáîëåå øèðîêî ïðèìåíÿåìàÿ óòèëèòà äëÿ àíàëèçà àêòèâíîñòè ïðîöåññîâ Task ÝÊÑÏÅÐÈÌÅÍÒ: ïðîñìîòð èíôîðìàöèè î ïðîöåññàõ ÷åðåç äèñïåò÷åð çàäà÷Äèñïåò÷åð çàäà÷ Windows îòîáðàæàåò ñïèñîê âûïîëíÿåìûõ â ñèñòåìå ïðîöåññîâ. Åãî ìîæíî ç Åñëè âêëàäêà Processes îêíà äèñïåò÷åðà çàäà÷ ñî âñåé î÷åâèäíîñòüþ ïîêàçûâàåò ñïèñîê ïð Âêëàäêà Applications ïîçâîëÿåò èäåíòèôèöèðîâàòü ïðîöåññ, êîòîðîìó ïðèíàäëåæèò ïîòîê, â Óòèëèòà Process Explorer ïîêàçûâàåò áîëüøå èíôîðìàöèè î ïðîöåññàõ è ïîòîêàõ, ÷åì ëþáîé ïîëíîå èìÿ (âìåñòå ñ ïóòåì) âûïîëíÿåìîãî îáðàçà;
ìàðêåð çàùèòû ïðîöåññà (ñïèñîê ãðóïï è ïðèâèëåãèé); âûäåëåíèå èçìåíåíèé â ñïèñêå ïðîöåññîâ è ïîòîêîâ; ñïèñîê ñåðâèñîâ âíóòðè ïðîöåññîâ õîñòîâ ñåðâèñîâ ñ âûâîäîì îòîáðàæàåìîãî èìåíè (d ïðîöåññû, êîòîðûå ÿâëÿþòñÿ ÷àñòüþ çàäàíèÿ, è äåòàëüíûå ñâåäåíèÿ î çàäàíèÿõ; ïðîöåññû, âûïîëíÿþùèå. NET/WinFX-ïðèëîæåíèÿ, è ñâåäåíèÿ, ñïåöèôè÷íûå äëÿ. NET (íàïð âðåìÿ çàïóñêà ïðîöåññîâ è ïîòîêîâ;
ïîëíûé ñïèñîê ôàéëîâ, ïðîåöèðóåìûõ â ïàìÿòü (íå òîëüêî DLL-ìîäóëåé); âîçìîæíîñòü ïðèîñòàíîâêè ïðîöåññà; âîçìîæíîñòü ïðèíóäèòåëüíîãî çàâåðøåíèÿ èíäèâèäóàëüíûõ ïîòîêîâ; ïðîñòîòà âûÿâëåíèÿ ïðîöåññîâ, èñïîëüçóþùèõ íàèáîëüøóþ äîëþ ïðîöåññîðíîãî âðåìåíè çà
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
5/38
Process Explorer òàêæå óïðîùàåò äîñòóï ê èíôîðìàöèè, ïðåäîñòàâëÿåìîé äðóãèìè óòèëèòàìè äåðåâî ïðîöåññîâ ñ âîçìîæíîñòüþ ñâåðòûâàíèÿ îòäåëüíûõ ÷àñòåé ýòîãî äåðåâà; îòêðûòûå îïèñàòåëè â ïðîöåññå áåç ïðåäâàðèòåëüíîé íàñòðîéêè (óòèëèòû Microsoft äëÿ ñïèñîê DLL (è ôàéëîâ, ïðîåöèðóåìûõ â ïàìÿòü) â êàêîì-ëèáî ïðîöåññå; àêòèâíîñòü ïîòîêîâ â êàêîì-ëèáî ïðîöåññå; ñòåêè ïîòîêîâ ïîëüçîâàòåëüñêîãî ðåæèìà (ñ ñîïîñòàâëåíèåì àäðåñîâ èìåíàì, èñïîëüçóÿ ñòåêè ñèñòåìíûõ ïîòîêîâ ðåæèìà ÿäðà (ñ ñîïîñòàâëåíèåì àäðåñîâ èìåíàì, èñïîëüçóÿ ìåõ ðàçíèöà â ïåðåêëþ÷åíèè êîíòåêñòîâ (context switch delta) (áîëåå íàãëÿäíîå ïðåäñòàâë
ëèìèòû ïàìÿòè ðåæèìà ÿäðà (ïóëîâ ïîäêà÷èâàåìîé è íåïîäêà÷èâàåìîé ïàìÿòè) (îñòàëüíûå ÝÊÑÏÅÐÈÌÅÍÒ: ïðîñìîòð äåòàëüíûõ ñâåäåíèé î ïðîöåññàõ ñ ïîìîùüþ Process ExplorerÑêà÷àéòå ïîñëåäíþþ âåðñèþ Process Explorer è çàïóñòèòå åå. Ïðè ïåðâîì çàïóñêå âû óâèäè B ïðåäûäóùåì ïðèìåðå äëÿ äîñòóïà ê ñèìâîëàì èñïîëüçîâàëñÿ ñåðâåð ñèìâîëîâ ïî òðåáîâàíè Ïðè çàïóñêå Process Explorer ïî óìîë÷àíèþ âûâîäèò ñïèñîê ïðîöåññîâ â âåðõíåé ïîëîâèíå Âîò êàê èñïîëüçîâàòü íåêîòîðûå áàçîâûå âîçìîæíîñòè Process Explorer: 1. Îòêëþ÷èòå íèæíþþ ñåêöèþ, ñáðîñèâ View, Show Lower Pane. (Íèæíÿÿ ñåêöèÿ ìîæåò îòîáðà 2. Îáðàòèòå âíèìàíèå íà òî, ÷òî ïðîöåññû, ÿâëÿþùèåñÿ õîñòàìè ñåðâèñîâ, ïî óìîë÷àíèþ âû 3. Çàäåðæèòå êóðñîð ìûøè íàä èìåíåì îáðàçà è îáðàòèòå âíèìàíèå íà òî, ÷òî â ïîäñêàçêå 4. Ùåëêíèòå View, Select Columns è äîáàâüòå ïóòü îáðàçà. 5. Îòñîðòèðóéòå ïî êîëîíêå ïðîöåññîâ è âû óâèäèòå, ÷òî ïðåäñòàâëåíèå â âèäå äåðåâà èñ÷6. Ñáðîñüòå View, Show Processes From All Users äëÿ îòîáðàæåíèÿ òîëüêî âàøèõ ïðîöåññîâ 7. Ïåðåéäèòå â Options, Difference Highlight Duration è ñìåíèòå çíà÷åíèå íà 5 ñåêóíä. 8. Íàêîíåö, äâàæäû ùåëêíèòå êàêîé-íèáóäü ïðîöåññ è èçó÷èòå âêëàäêè, äîñòóïíûå â îêíå ñ Ïîòîê (thread) íåêàÿ ñóùíîñòü âíóòðè ïðîöåññà, ïîëó÷àþùàÿ ïðîöåññîðíîå âðåìÿ äëÿ â ñîäåðæèìîå íàáîðà ðåãèñòðîâ ïðîöåññîðà, îòðàæàþùèõ ñîñòîÿíèå ïðîöåññîðà;
äâà ñòåêà, îäèí èç êîòîðûõ èñïîëüçóåòñÿ ïîòîêîì ïðè âûïîëíåíèè â ðåæèìå ÿäðà, à äðó çàêðûòóþ îáëàñòü ïàìÿòè, íàçûâàåìóþ ëîêàëüíîé ïàìÿòüþ ïîòîêà (thread-local storage, óíèêàëüíûé èäåíòèôèêàòîð ïîòîêà (âî âíóòðèñèñòåìíîé òåðìèíîëîãèè òàêæå íàçûâàåìûé è
èíîãäà ïîòîêè îáëàäàþò ñâîèì êîíòåêñòîì çàùèòû, êîòîðûé îáû÷íî èñïîëüçóåòñÿ ìíîãîïî Ïåðåìåííûå ðåãèñòðû, ñòåêè è ëîêàëüíûå îáëàñòè ïàìÿòè íàçûâàþòñÿ êîíòåêñòîì ïîòîêà.
Âîëîêíà è ïîòîêè
Âîëîêíà (fibers) ïîçâîëÿþò ïðèëîæåíèÿì ïëàíèðîâàòü ñîáñòâåííûå «ïîòîêè» âûïîëíåíèÿ, íå Õîòÿ ó ïîòîêîâ ñâîé êîíòåêñò âûïîëíåíèÿ, êàæäûé ïîòîê âíóòðè îäíîãî ïðîöåññà äåëèò åãî Êðîìå çàêðûòîãî àäðåñíîãî ïðîñòðàíñòâà è îäíîãî èëè íåñêîëüêèõ ïîòîêîâ ó êàæäîãî ïðîöå Êàæäûé ïðîöåññ îáëàäàåò êîíòåêñòîì çàùèòû, êîòîðûé õðàíèòñÿ â îáúåêòå ìàðêåðå äîñòóï
Äåñêðèïòîðû âèðòóàëüíûõ àäðåñîâ (virtual address descriptors, VAD) ýòî ñòðóêòóðû äàí Windows ïðåäîñòàâëÿåò ðàñøèðåíèå äëÿ ìîäåëè ïðîöåññîâ çàäàíèÿ (jobs). Îíè ïðåäíàçíÁîëåå äåòàëüíîå îïèñàíèå âíóòðåííåé ñòðóêòóðû çàäàíèé, ïðîöåññîâ è ïîòîêîâ, ìåõàíèçìîâ
Âèðòóàëüíàÿ ïàìÿòü
B Windows ðåàëèçîâàíà ñèñòåìà âèðòóàëüíîé ïàìÿòè, îñíîâàííàÿ íà ïëîñêîì (ëèíåéíîì) àäðÏîñêîëüêó ó áîëüøèíñòâà êîìïüþòåðîâ îáúåì ôèçè÷åñêîé ïàìÿòè íàìíîãî ìåíüøå îáùåãî îáúå Ðàçìåð âèðòóàëüíîãî àäðåñíîãî ïðîñòðàíñòâà çàâèñèò îò êîíêðåòíîé àïïàðàòíîé ïëàòôîðìû Õîòÿ òðè ãèãàáàéòà ëó÷øå äâóõ, ýòîãî âñå ðàâíî íåäîñòàòî÷íî äëÿ ïðîåöèðîâàíèÿ î÷åíü áî64-ðàçðÿäíàÿ Windows ïðåäîñòàâëÿåò ïðîöåññàì ãîðàçäî áîëüøåå àäðåñíîå ïðîñòðàíñòâî: 71Ïîäðîáíåå î ðåàëèçàöèè äèñïåò÷åðà ïàìÿòè, â òîì ÷èñëå î òðàíñëÿöèè àäðåñîâ è óïðàâëåíè
Ðåæèì ÿäðà è ïîëüçîâàòåëüñêèé ðåæèì
Äëÿ ïðåäîòâðàùåíèÿ äîñòóïà ïðèëîæåíèé ê êðèòè÷åñêè âàæíûì äàííûì îïåðàöèîííîé ñèñòåìû ÏÐÈÌÅ×ÀÍÈÅ B àðõèòåêòóðå ïðîöåññîðà Intel x86 îïðåäåëåíî ÷åòûðå óðîâíÿ ïðèâèëåãèéÕîòÿ êàæäûé Windows-ïðîöåññ èìååò ñâîþ (çàêðûòóþ) ïàìÿòü, êîä îïåðàöèîííîé ñèñòåìû è ä Windows íå ïðåäóñìàòðèâàåò íèêàêîé çàùèòû ñèñòåìíîé ïàìÿòè îò êîìïîíåíòîâ, ðàáîòàþùèõ Ýòî òàêæå ïîä÷åðêèâàåò, íàñêîëüêî íàäî áûòü îñòîðîæíûì ïðè çàãðóçêå äðàéâåðà óñòðîéñòâ Êàê âû óâèäèòå â ãëàâå 2, ïðèêëàäíûå ïðîãðàììû ìîãóò ïåðåêëþ÷àòüñÿ èç ïîëüçîâàòåëüñêîã
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
6/38
ÏÐÈÌÅ×ÀÍÈÅ Ïåðåêëþ÷åíèå èç ïîëüçîâàòåëüñêîãî ðåæèìà â ðåæèì ÿäðà (è îáðàòíî) íå âÒàê ÷òî ñèòóàöèÿ, êîãäà ïîëüçîâàòåëüñêèé ïîòîê ÷àñòü ñâîåãî âðåìåíè ðàáîòàåò â ïîëüçîâ ÝÊÑÏÅÐÈÌÅÍÒ: íàáëþäåíèå çà àêòèâíîñòüþ ïîòîêîâ ñ ïîìîùüþ QuickSliceQuickSlice ïîçâîëÿåò â äèíàìèêå íàáëþäàòü çà ñîîòíîøåíèåì âðåìåíè, ïðîâåäåííîãî êàæäûì ×òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ î ïîòîêàõ ïðîöåññà, äâàæäû ùåëêíèòå èìÿ íóæíî ÝÊÑÏÅÐÈÌÅÍÒ: ðåæèì ÿäðà è ïîëüçîâàòåëüñêèé ðåæèìC ïîìîùüþ îñíàñòêè Performance âû ìîæåòå âûÿñíèòü, ñêîëüêî âðåìåíè âàøà ñèñòåìà ðàáîòà 1. Çàïóñòèòå îñíàñòêó Performance (Ïðîèçâîäèòåëüíîñòü), îòêðûâ ìåíþ Start (Ïóñê) è ïîñ 2. Ùåëêíèòå íà ïàíåëè èíñòðóìåíòîâ êíîïêó Add (Äîáàâèòü) (íà ýòîé êíîïêå èçîáðàæåí áîë 3. Âûáåðèòå â ñïèñêå îáúåêò Processor (Ïðîöåññîð), ùåëêíèòå ñ÷åò÷èê % Privileged Time 4. Ùåëêíèòå êíîïêó Add (Äîáàâèòü), à çàòåì Close (Çàêðûòü). 5. Áûñòðî ïîäâèãàéòå ìûøüþ. Ïðè ýòîì âû äîëæíû çàìåòèòü âñïëåñê íà ëèíèè % Privileged 6. Çàêîí÷èâ, ùåëêíèòå íà ïàíåëè èíñòðóìåíòîâ êíîïêó New Counter Set (Íîâûé íàáîð ñ÷åò÷Çà òîé æå àêòèâíîñòüþ ìîæíî ïîíàáëþäàòü ÷åðåç Task Manager (Äèñïåò÷åð çàäà÷). Ïðîñòî ï ×òîáû óâèäåòü, êàê ñàìà îñíàñòêà Performance èñïîëüçóåò âðåìÿ â äâóõ ðåæèìàõ, çàïóñòèò 1. Åñëè âû çàêðûëè îñíàñòêó Performance, ñíîâà çàïóñòèòå åå. (Åñëè îíà óæå ðàáîòàåò, î 2. Ùåëêíèòå êíîïêó Add íà ïàíåëè èíñòðóìåíòîâ. 3. Âûáåðèòå â ñïèñêå îáúåêò Process. 4. Âûáåðèòå ñ÷åò÷èêè % Privileged Time è % User Time. 5. B ñïèñêå ýêçåìïëÿðîâ îáúåêòà âûáåðèòå âñå ïðîöåññû (êðîìå ïðîöåññà _Total). 6. Ùåëêíèòå êíîïêó Add, à çàòåì Close. 7. Áûñòðî ïîäâèãàéòå ìûøüþ. 8. Íàæìèòå êîìáèíàöèþ êëàâèø Ctrl+H äëÿ àêòèâèçàöèè ðåæèìà âûäåëåíèÿ òåêóùèé âûáðàíí 9. Ïðîêðóòèòå ñïèñîê âñåõ ñ÷åò÷èêîâ â íèæíåé ÷àñòè îêíà îñíàñòêè, ÷òîáû îïðåäåëèòü ïðî
Âû äîëæíû çàìåòèòü, êàê çíà÷åíèÿ ñ÷åò÷èêîâ äëÿ ïðîöåññà îñíàñòêè Performance èùèòå m
Terminal Services è íåñêîëüêî ñåàíñîâ
Terminal Services (ñëóæáû òåðìèíàëà) îáåñïå÷èâàþò â Windows ïîääåðæêó íåñêîëüêèõ èíòåð Ïåðâûé ñåàíñ âõîäà íà ôèçè÷åñêîé êîíñîëè êîìïüþòåðà ñ÷èòàåòñÿ êîíñîëüíûì ñåàíñîì, èëè Âîçìîæíîñòü ñîçäàíèÿ óäàëåííîãî ñåàíñà ïîääåðæèâàåòñÿ Windows 2000 Server, íî íå Windo Windows 2000 Server è Windows Server 2003 ïîääåðæèâàþò äâà îäíîâðåìåííûõ óäàëåííûõ ñåà Õîòÿ Windows XP Home è Professional íå ïîääåðæèâàþò íåñêîëüêî óäàëåííûõ ïîäêëþ÷åíèé ê Äëÿ ïðèëîæåíèé, êîòîðûì íóæíî çíàòü, âûïîëíÿþòñÿ ëè îíè â ñåàíñå ñåðâåðà òåðìèíàëà, ïð B ãëàâå 2 êðàòêî îïèñûâàåòñÿ, êàê ñîçäàþòñÿ ñåàíñû, è ïðîâîäèòñÿ íåñêîëüêî ýêñïåðèìåíò
Îáúåêòû è îïèñàòåëè
B îïåðàöèîííîé ñèñòåìå Windows îáúåêò ýòî åäèíñòâåííûé ýêçåìïëÿð ïåðèîäà âûïîëíåíè Àòðèáóò îáúåêòà (object attribute) ýòî ïîëå äàííûõ â îáúåêòå, ÷àñòè÷íî îïðåäåëÿþùå ÏÐÈÌÅ×ÀÍÈÅ He ïóòàéòå ïàðàìåòð ObjectAttributes, ïðåäîñòàâëÿåìûé âûçûâàþùåé ïðîãðÑàìîå ãëàâíîå ðàçëè÷èå ìåæäó îáúåêòîì è îáû÷íîé ñòðóêòóðîé äàííûõ çàêëþ÷àåòñÿ â òîì, ÷ Îáúåêòû î÷åíü óäîáíû äëÿ ïîääåðæêè ÷åòûðåõ âàæíûõ ôóíêöèé îïåðàöèîííîé ñèñòåìû: ïðèñâîåíèÿ ïîíÿòíûõ èìåí ñèñòåìíûì ðåñóðñàì; ðàçäåëåíèÿ ðåñóðñîâ è äàííûõ ìåæäó ïðîöåññàìè; çàùèòû ðåñóðñîâ îò íåñàíêöèîíèðîâàííîãî äîñòóïà; ó÷åòà ññûëîê (áëàãîäàðÿ ýòîìó ñèñòåìà óçíàåò, êîãäà îáúåêò áîëüøå íå èñïîëüçóåòñÿ, He âñå ñòðóêòóðû äàííûõ â Windows ÿâëÿþòñÿ îáúåêòàìè. B îáúåêòû ïîìåùàþòñÿ ëèøü òå äàí
Áåçîïàñíîñòü
Windows ñ ñàìîãî íà÷àëà ðàçðàáàòûâàëàñü êàê çàùèùåííàÿ ñèñòåìà, óäîâëåòâîðÿþùàÿ òðåáîâÁàçîâûå âîçìîæíîñòè çàùèòû â Windows òàêîâû: èçáèðàòåëüíàÿ çàùèòà ëþáûõ ðàçäåëÿåìûõ ñè Windows ïîääåðæèâàåò äâà âèäà êîíòðîëÿ äîñòóïà ê îáúåêòàì. Ïåðâûé èç íèõ óïðàâëåíèå Âòîðîé ìåòîä óïðàâëåíèå ïðèâèëåãèðîâàííûì äîñòóïîì Q3riv1leged access control) íå Çàùèòà ïðîíèçûâàåò âåñü èíòåðôåéñ Windows APL Ïîäñèñòåìà Windows ðåàëèçóåò çàùèòó íà îÏîäñèñòåìà Windows ðåàëèçóåò çàùèòó äëÿ îáùèõ îáúåêòîâ, ÷àñòü èç êîòîðûõ ïîñòðîåíà íà
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
7/38
Äåòàëüíîå îïèñàíèå çàùèòû â Windows ñì. â ãëàâå 8.
Ðååñòð
Åñëè âû ðàáîòàëè õîòü ñ êàêîé-íèáóäü îïåðàöèîííîé ñèñòåìîé Windows, òî, âåðîÿòíî, ñëûøÊðîìå òîãî, ðååñòð ýòî îêíî, ÷åðåç êîòîðîå ìîæíî çàãëÿíóòü â ïåðåìåííûå ñèñòåìíûå äàÕîòÿ ó ìíîãèõ ïîëüçîâàòåëåé è àäìèíèñòðàòîðîâ Windows íèêîãäà íå âîçíèêàåò íåîáõîäèìîñ Ññûëêè íà ðàçëè÷íûå ðàçäåëû ðååñòðà, îòíîñÿùèåñÿ ê îïèñûâàåìûì êîìïîíåíòàì, áóäóò âñòð
Unicode
Windows îòëè÷àåòñÿ îò áîëüøèíñòâà äðóãèõ îïåðàöèîííûõ ñèñòåì òåì, ÷òî â êà÷åñòâå âíóòð Ïîñêîëüêó ìíîãèå ïðèëîæåíèÿ èìåþò äåëî ñ 8-áèòíûìè (îäíîáàéòîâûìè) ANSI-ñèìâîëàìè, Win B ïðåäûäóùèõ âåðñèÿõ Windows åå àçèàòñêèé è áëèæíåâîñòî÷íûé âûïóñêè ïðåäñòàâëÿëè ñîáîé
Èçó÷åíèå âíóòðåííåãî óñòðîéñòâà Windows
Õîòÿ áîëüøàÿ ÷àñòü èíôîðìàöèè, ïðåäñòàâëåííàÿ â ýòîé êíèãå, ïîëó÷åíà ïðè ÷òåíèè èñõîäí ×òîáû óïðîñòèòü âàì èññëåäîâàíèå âíóòðåííåãî óñòðîéñòâà Windows, ìû ÷àñòî äàåì â êíèãå B òàáëèöå 13 ïåðå÷èñëåíû âñå èñïîëüçóåìûå íàìè èíñòðóìåíòû è óòèëèòû. Òàáëèöà 13. Ñðåäñòâà ïðîñìîòðà âíóòðåííåé èíôîðìàöèè Windows
Îñíàñòêà Performance
Ìû ÷àñòî ññûëàåìñÿ íà ýòîò èíñòðóìåíò, äîñòóïíûé ÷åðåç ïàïêó Administrative Tools (Àäì Îñíàñòêà Performance ñïîñîáíà ñîîáùèòü î òîì, êàê ðàáîòàåò ñèñòåìà, ãîðàçäî áîëüøå, ÷å Çàìåòüòå, ÷òî âñå ñ÷åò÷èêè ïðîèçâîäèòåëüíîñòè Windows äîñòóïíû ïðîãðàììíûì ïóòåì. Êðàò
Windows Support Tools
Windows Support Tools âêëþ÷àþò îêîëî 40 óòèëèò, ïîëåçíûõ â àäìèíèñòðèðîâàíèè ñèñòåì íàÂû ìîæåòå óñòàíîâèòü Support Tools, çàïóñòèâ Setup.exe èç ïàïêè \Support\ Tools â äèñò
ndows XP, ðàâíî êàê è äëÿ Windows Server 2003, ñóùåñòâóåò ñâîÿ âåðñèÿ Support Tools.
Ðåñóðñû Windows
Ðåñóðñû Windows (Windows Resource Kits) ðàñøèðÿþò Support Tools, ïðåäëàãàÿ äîïîëíèòåëü Ðåñóðñû Windows 2000 ñóùåñòâóþò â äâóõ èçäàíèÿõ: Windows 2000 Professional Resource Ki Ïîñëåäíåå èçäàíèå ïåðåâåäåíî íà ðóññêèé ÿçûê èçäàòåëüñòâîì «Ðóññêàÿ Ðåäàêöèÿ» è âûïóùå åãî âåðñèÿ Supplement 1). Õîòÿ ïîñëåäíèé íàáîð ïðåäñòàâëÿåò ñîáîé íàäìíîæåñòâî ïåðâî
Îòëàäêà ÿäðà
Îòëàäêà ÿäðà ïîäðàçóìåâàåò èçó÷åíèå âíóòðåííèõ ñòðóêòóð äàííûõ ÿäðà è/ èëè ïîøàãîâûé ïÎòëàäêó ÿäðà ìîæíî ïðîâîäèòü ñ ïîìîùüþ ðàçíîîáðàçíûõ óòèëèò: Windows Debugging Tools î
Ñèìâîëû äëÿ îòëàäêè ÿäðà
Ôàéëû ñèìâîëîâ (symbol files) ñîäåðæàò èìåíà ôóíêöèé è ïåðåìåííûõ. Îíè ãåíåðèðóþòñÿ êî Äëÿ èçó÷åíèÿ âíóòðåííèõ ñòðóêòóð äàííûõ ÿäðà Windows (íàïðèìåð, ñïèñêà ïðîöåññîâ, áëîê Õîòÿ ìîæíî ñêà÷àòü è óñòàíîâèòü ñèìâîëû äëÿ ðàçíûõ âåðñèé Windows, îáíîâëåííûå ñèìâîëû ñëåäóþùèé ïóòü ê ñèìâîëàì çàñòàâëÿåò ñðåäñòâà îòëàäêè çàãðóæàòü òðåáóåìûå ñèìâîëû ñ Èí
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
8/38
srv*c: \symbols* http://msdl.microsoft.com/downloacl/symbolsÏîäðîáíûå èíñòðóêöèè î òîì, êàê ïîëüçîâàòüñÿ ñåðâåðîì ñèìâîëîâ, ñì. â ñïðàâî÷íîì ôàéëå
Windows Debugging Tools
Ïàêåò Windows Debugging Tools ñîäåðæèò äîïîëíèòåëüíûå ñðåäñòâà îòëàäêè, ïðèìåíÿåìûå â ÏÐÈÌÅ×ÀÍÈÅ Windows Debugging Tools ðåãóëÿðíî îáíîâëÿþòñÿ è âûïóñêàþòñÿ íåçàâèñèìî î
Îòëàäêà â ïîëüçîâàòåëüñêîì ðåæèìå
Ñðåäñòâà îòëàäêè ìîæíî ïîäêëþ÷àòü ê ïðîöåññó ïîëüçîâàòåëüñêîãî ðåæèìà, ÷òîáû èññëåäîâà Invasive (èíâàçèâíûé) Åñëè íå óêàçàíî èíîå, òî, êîãäà âû ïîäêëþ÷àåòåñü ê âûïîëíÿåì Noninvasive (íåèíâàçèâíûé) B ýòîì ñëó÷àå îòëàä÷èê ïðîñòî îòêðûâàåò ïðîöåññ ÷åðåç ô C ïîìîùüþ îòëàäî÷íûõ ñðåäñòâ òàêæå ìîæíî îòêðûâàòü ôàéëû äàìïîâ ïðîöåññîâ ïîëüçîâàòåëüMicrosoft ïðåäëàãàåò îòëàä÷èêè ÿäðà â äâóõ âåðñèÿõ: êîìàíäíîé ñòðîêè (Kd.exe) è ñ ãðàô Îòêðîéòå ôàéë äàìïà, ïîëó÷åííûé â ðåçóëüòàòå êðàõà ñèñòåìû ñ Windows (ïîäðîáíåå î ò Ïîäêëþ÷èòåñü ê ðàáîòàþùåé ñèñòåìå è èçó÷èòå åå ñîñòîÿíèå (èëè ïîñòàâüòå òî÷êè ïðåðû B ñëó÷àå Windows XP è Windows Server 2003 ïîäêëþ÷èòåñü ê ëîêàëüíîé ñèñòåìå è èçó÷èÏîäêëþ÷èâøèñü â ðåæèìå îòëàäêè ÿäðà, âû ìîæåòå èñïîëüçîâàòü îäíó èç ìíîãèõ êîìàíä ðàñø ÝÊÑÏÅÐÈÌÅÍÒ: îòîáðàæåíèå èíôîðìàöèè î òèïàõ äëÿ ñòðóêòóð ÿäðà×òîáû âûâåñòè ñïèñîê ñòðóêòóð ÿäðà, ÷üÿ èíôîðìàöèÿ î òèïàõ âêëþ÷åíà â ñèìâîëû ÿäðà, íà Êîìàíäà dt ïîçâîëÿåò èñêàòü êîíêðåòíûå ñòðóêòóðû ïî øàáëîíàì. Íàïðèìåð, åñëè âû èùåò
Çàìåòüòå, ÷òî ïî óìîë÷àíèþ dt íå ïîêàçûâàåò ïîäñòðóêòóðû (ñòðóêòóðû âíóòðè ñòðóêòóð)B ñïðàâî÷íîì ôàéëå Windows Debugging Tools îáúÿñíÿåòñÿ, êàê óñòàíàâëèâàòü è èñïîëüçîâà
Óòèëèòà LiveKd
LiveKd áåñïëàòíàÿ óòèëèòà, êîòîðàÿ ïîçâîëÿåò èñïîëüçîâàòü ñòàíäàðòíûå îòëàä÷èêè ÿäðà LiveKd çàïóñêàåòñÿ òî÷íî òàê æå, êàê Windbg èëè Kd. Ýòà óòèëèòà ïåðåäàåò ëþáûå óêàçàíí LiveKd ïðåäîñòàâëÿåò îòëàä÷èêó ñìîäåëèðîâàííûé ôàéë àâàðèéíîãî äàìïà (crash dump), ïîý
SoftlCE
Åùå îäèí èíñòðóìåíò, íå òðåáóþùèé äâóõ ìàøèí äëÿ ïðÿìîé îòëàäêè ÿäðà, SoftICE, êîòîð
Platform Software Development Kit (SDK)
Platform SDK ÿâëÿåòñÿ ÷àñòüþ ïîäïèñêè íà MSDN óðîâíÿ Professional è âûøå; êðîìå òîãî,
Device Driver Kit (DDK)
Windows DDK ÿâëÿåòñÿ ÷àñòüþ ïîäïèñêè íà MSDN óðîâíÿ Professional è âûøå, íî â îòëè÷èå Õîòÿ DDK íàöåëåí íà ðàçðàáîò÷èêîâ äðàéâåðîâ óñòðîéñòâ, îí ïðåäñòàâëÿåò ñîáîé áîãàòûé è Êðîìå äîêóìåíòàöèè â DDK âõîäÿò çàãîëîâî÷íûå ôàéëû, îïðåäåëÿþùèå êëþ÷åâûå âíóòðåííèå ñ
Ïîýòîìó, åñëè âû õîòèòå ïîãëóáæå ïîêîïàòüñÿ â ïîäñèñòåìå ââîäà-âûâîäà è â ìîäåëè äðàéâ
Óòèëèòû Sysinternals
Bo ìíîãèõ ýêñïåðèìåíòàõ ìû èñïîëüçóåì ñâîáîäíî ðàñïðîñòðàíÿåìûå óòèëèòû, êîòîðûå ìîæíî ëèò íàïèñàíî Ìàðêîì Ðóññèíîâè÷åì, ñîàâòîðîì ýòîé êíèãè. K íàèáîëåå ïîïóëÿðíûì óòèëèòàì
Ðåçþìå
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
9/38
B ýòîé ãëàâå âû ïîçíàêîìèëèñü ñ êëþ÷åâûìè òåõíè÷åñêèìè êîíöåïöèÿìè è òåðìèíàìè Windows
ÃËABA 2 Àðõèòåêòóðà ñèñòåìû
Òåïåðü, ïîçíàêîìèâøèñü ñ íåîáõîäèìûìè òåðìèíàìè, ïîíÿòèÿìè è èíñòðóìåíòàìè, ìû ìîæåì ð
Òðåáîâàíèÿ è öåëè ïðîåêòà
Õàðàêòåðèñòèêè Windows NT â 1989 ãîäó îïðåäåëÿëèñü ñëåäóþùèìè òðåáîâàíèÿìè. Îïåðàöèîíí áûòü èñòèííî 32-ðàçðÿäíîé, ðååíòåðàáåëüíîé, ïîääåðæèâàòü âûòåñíÿþùóþ ìíîãîçàäà÷íîñò ðàáîòàòü íà ðàçíûõ àïïàðàòíûõ ïëàòôîðìàõ; õîðîøî ìàñøòàáèðîâàòüñÿ â ñèñòåìàõ ñ ñèììåòðè÷íîé ìóëüòèïðîöåññîðíîé îáðàáîòêîé; áûòü ðàñïðåäåëåííîé âû÷èñëèòåëüíîé ïëàòôîðìîé, ñïîñîáíîé âûñòóïàòü â ðîëè êàê êëèåí ïîääåðæèâàòü áîëüøèíñòâî ñóùåñòâóþùèõ 16-ðàçðÿäíûõ ïðèëîæåíèé MS-DOS è Microsoft Windows 3.1; îòâå÷àòü òðåáîâàíèÿì ïðàâèòåëüñòâà ê ñîîòâåòñòâèþ P îòâå÷àòü òðåáîâàíèÿì ïðàâèòåëüñòâà è ïðîìûøëåííîñòè ê áåçîïàñíîñòè îïåðàöèîííûõ ñèñ îáåñïå÷èâàòü ïðîñòîòó àäàïòàöèè ê ãëîáàëüíîìó ðûíêó çà ñ÷åò ïîääåðæêè Unicode. Äëÿ ñîçäàíèÿ ñèñòåìû, ñîîòâåòñòâóþùåé ïðåäúÿâëåííûì òðåáîâàíèÿì, íóæíî áûëî ïðèíÿòü òû
Ðàñøèðÿåìîñòü Êîä äîëæåí áûòü íàïèñàí òàê, ÷òîáû ñèñòåìû ìîæíî áûëî ëåãêî íàðàùèâà Ïåðåíîñèìîñòü Ñèñòåìà äîëæíà ðàáîòàòü íà ðàçíûõ àïïàðàòíûõ àðõèòåêòóðàõ è îáëàäàòü Îòêàçîóñòîé÷èâîñòü è íàäåæíîñòü Ñèñòåìà äîëæíà áûòü çàùèùåííîé êàê îò âíóòðåííèõ ñ Ñîâìåñòèìîñòü Õîòÿ Windows NT äîëæíà ðàñøèðèòü ñóùåñòâóþùóþ òåõíîëîãèþ, åå ïîëüçîâ
Ïðîèçâîäèòåëüíîñòü C ó÷åòîì îãðàíè÷åíèé, íàëàãàåìûõ ïîñòàâëåííûìè öåëÿìè, ñèñòåìà Ïî ìåðå èçó÷åíèÿ äåòàëåé âíóòðåííåé ñòðóêòóðû Windows âû óâèäèòå, íàñêîëüêî óñïåøíî áû
Ìîäåëü îïåðàöèîííîé ñèñòåìû
B áîëüøèíñòâå ìíîãîïîëüçîâàòåëüñêèõ îïåðàöèîííûõ ñèñòåì ïðèëîæåíèÿ îòäåëåíû îò ñîáñòâå Windows, êàê è áîëüøèíñòâî UNIX-ñèñòåì, ÿâëÿåòñÿ ìîíîëèòíîé îïåðàöèîííîé ñèñòåìîé â
Îñíîâàíà ëè Windows íà ìèêðîÿäðå?
Õîòÿ íåêîòîðûå îáúÿâëÿþò åå òàêîâîé, Windows íå ÿâëÿåòñÿ îïåðàöèîííîé ñèñòåìîé íà îñíî Îçíà÷àåò ëè òîò ôàêò, ÷òî áîëüøàÿ ÷àñòü Windows ðàáîòàåò â ðåæèìå ÿäðà, åå ìåíüøóþ íàä Âñå ýòè êîìïîíåíòû îïåðàöèîííîé ñèñòåìû, êîíå÷íî, ïîëíîñòüþ çàùèùåíû îò ñáîéíûõ ïðèëîæÊîìïîíåíòû Windows ðåæèìà ÿäðà òàêæå ïîñòðîåíû íà ïðèíöèïàõ îáúåêòíî-îðèåíòèðîâàííîãî Îäíàêî, íåñìîòðÿ íà øèðîêîå èñïîëüçîâàíèå îáúåêòîâ, ïðåäñòàâëÿþùèõ ðàçäåëÿåìûå ñèñòåìí
Îáçîð àðõèòåêòóðû
Òåïåðü îáðàòèìñÿ ê êëþ÷åâûì êîìïîíåíòàì ñèñòåìû, ñîñòàâëÿþùèì åå àðõèòåêòóðó. Óïðîùåíí
Ðèñ. 21. Óïðîùåííàÿ ñõåìà àðõèòåêòóðû WindowsHa ðèñ. 21 ïðåæäå âñåãî îáðàòèòå âíèìàíèå íà ëèíèþ, ðàçäåëÿþùóþ òå ÷àñòè Windows, êîò Ñóùåñòâóåò ÷åòûðå òèïà ïîëüçîâàòåëüñêèõ ïðîöåññîâ: ôèêñèðîâàííûå ïðîöåññû ïîääåðæêè ñèñòåìû (system support processes) íàïðèìåð, ï ïðîöåññû ñåðâèñîâ (service processes) íîñèòåëè Windows-ñåðâèñîâ âðîäå Task Sche ïîëüçîâàòåëüñêèå ïðèëîæåíèÿ (user applications) áûâàþò øåñòè òèïîâ: äëÿ 32-ðàçð ïîäñèñòåìû îêðóæåíèÿ (environment subsystems) ðåàëèçîâàíû êàê ÷àñòü ïîääåðæêè ñ
Windows âêëþ÷àåò ñëåäóþùèå êîìïîíåíòû ðåæèìà ÿäðà. Èñïîëíèòåëüíàÿ ñèñòåìà (executive) Windows, ñîäåðæàùàÿ áàçîâûå ñåðâèñû îïåðàöèîíí ßäðî (kernel) Windows, ñîäåðæàùåå íèçêîóðîâíåâûå ôóíêöèè îïåðàöèîííîé ñèñòåìû, êî
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
10/38
Äðàéâåðû óñòðîéñòâ (device drivers), â ñîñòàâ êîòîðûõ âõîäÿò äðàéâåðû àïïàðàòíûõ Óðîâåíü àáñòðàãèðîâàíèÿ îò îáîðóäîâàíèÿ (hardware abstraction layer, HAL), èçîëèð Ïîäñèñòåìà ïîääåðæêè îêîí è ãðàôèêè (windowing and graphics system), ðåàëèçóþùàÿ
B òàáëèöå 21 ïåðå÷èñëåíû èìåíà ôàéëîâ îñíîâíûõ êîìïîíåíòîâ Windows. (Âû äîëæíû çíàòü Ïðåæäå ÷åì äåòàëüíî ðàññìàòðèâàòü ýòè êîìïîíåíòû, äàâàéòå ïðîÿñíèì, êàê äîñòèãàåòñÿ ïå
Ïåðåíîñèìîñòü
Windows ðàññ÷èòàíà íà ðàçíûå àïïàðàòíûå ïëàòôîðìû, âêëþ÷àÿ êàê CISC-ñèñòåìû Intel, òàê Ïåðåíîñèìîñòü Windows ìåæäó ñèñòåìàìè ñ ðàçëè÷íîé àïïàðàòíîé àðõèòåêòóðîé è ïëàòôîðìàì Windows èìååò ìíîãîóðîâíåâóþ ñòðóêòóðó. Ñïåöèôè÷íûå äëÿ àðõèòåêòóðû ïðîöåññîðà èëè Ïîäàâëÿþùåå áîëüøèíñòâî êîìïîíåíòîâ Windows íàïèñàíî íà C è ëèøü ÷àñòü èç íèõ íà
Ñèììåòðè÷íàÿ ìíîãîïðîöåññîðíàÿ îáðàáîòêà
Ìíîãîçàäà÷íîñòü (multitasking) ìåõàíèçì îïåðàöèîííîé ñèñòåìû, ïîçâîëÿþùèé èñïîëüçî Êàê óæå ãîâîðèëîñü â íà÷àëå ýòîé ãëàâû, îäíîé èç êëþ÷åâûõ öåëåé ðàçðàáîòêè Windows áûë Windows XP è Windows Server 2003 ïîääåðæèâàþò äâà íîâûõ òèïà ìíîãîïðîöåññîðíûõ ñèñòåì Ëîãè÷åñêèå ïðîöåññîðû ýòî òåõíîëîãèÿ, ñîçäàííàÿ Intel; áëàãîäàðÿ åé íà îäíîì ôèçè÷åñ B NUMA-ñèñòåìàõ ïðîöåññîðû ãðóïïèðóþòñÿ â áëîêè, íàçûâàåìûå óçëàìè (nodes). B êàæäîì ó Õîòÿ Windows èçíà÷àëüíî ðàçðàáàòûâàëàñü äëÿ ïîääåðæêè äî 32 ïðîöåññîðîâ, ìíîãîïðîöåññî Ðåàëüíîå ÷èñëî ïîääåðæèâàåìûõ ïðîöåññîðîâ çàâèñèò îò êîíêðåòíîãî âûïóñêà Windows (ñì.
Äëÿ áîëüøåé ïðîèçâîäèòåëüíîñòè ÿäðî è HAL èìåþò îäíî- è ìíîãîïðîöåññîðíóþ âåðñèè. B ñë Ñîîòâåòñòâóþùèå ôàéëû âûáèðàþòñÿ è êîïèðóþòñÿ â ëîêàëüíûé êàòàëîã \Windows\System32 íà ÏÐÈÌÅ×ÀÍÈÅ B ïàïêå \I386\UNIPROC â äèñòðèáóòèâå Windows 2000 íàõîäèòñÿ ôàéë Winsr ÝÊÑÏÅÐÈÌÅÍÒ: ïîèñê ôàéëîâ ïîääåðæêè ìíîãîïðîöåññîðíûõ ñèñòåì â Windows 2000Âû ìîæåòå óáåäèòüñÿ â òîì, ÷òî äëÿ ìíîãîïðîöåññîðíîé 32-ðàçðÿäíîé ñèñòåìû Windows 2000 1. Îòêðîéòå îêíî ñâîéñòâ ñèñòåìû, äâàæäû ùåëêíóâ System (Ñèñòåìà) â îêíå Control Panel 2. Ïåðåéäèòå íà âêëàäêó Hardware (Îáîðóäîâàíèå). 3. Ùåëêíèòå êíîïêó Device Manager (Äèñïåò÷åð óñòðîéñòâ). 4. Ðàñêðîéòå îáúåêò Computer (Êîìïüþòåð). 5. Äâàæäû ùåëêíèòå äî÷åðíèé óçåë îáúåêòà Computer. 6. Îòêðîéòå âêëàäêó Driver (Äðàéâåð). 7. Ùåëêíèòå êíîïêó Driver Details (Ñâåäåíèÿ î äðàéâåðàõ). B ìíîãîïðîöåññîðíîé ñèñòåìå âû äîëæíû óâèäåòü äèàëîãîâîå îêíî, ïîêàçàííîå íèæå.
Ñïåöèàëüíûå âåðñèè ýòèõ êëþ÷åâûõ ñèñòåìíûõ ôàéëîâ äëÿ îäíîïðîöåññîðíûõ ñèñòåì ñîçäàíû Èíòåðåñíî, ÷òî «îäíîïðîöåññîðíàÿ» è «ìíîãîïðîöåññîðíàÿ» âåðñèè Ntoskrnl ñîçäàþòñÿ çà ñ Îñòàëüíûå ñèñòåìíûå ôàéëû Windows (âêëþ÷àÿ âñå óòèëèòû, áèáëèîòåêè è äðàéâåðû óñòðîéñò ÝÊÑÏÅÐÈÌÅÍÒ: îïðåäåëåíèå òåêóùåé âåðñèè NtoskrnlB Windows 2000 è âûøå íåò óòèëèòû, ïîêàçûâàþùåé, ñ êàêîé âåðñèåé Ntoskrnl âû ðàáîòàåòå Ýòà çàïèñü íå ñîäåðæèò ñâåäåíèé î òîì, çàãðóæåíà ëè ÐÀÅ-âåðñèÿ îáðàçà ÿäðà, ïîääåðæèâà Åñòü è äðóãîé ñïîñîá îïðåäåëèòü, óñòàíîâëåíà ëè ìíîãîïðîöåññîðíàÿ âåðñèÿ Ntoskrnl (èëè perties (Ñâîéñòâà). Ïåðåéäèòå íà âêëàäêó Version(Âåðñèÿ) è âûáåðèòå ñâîéñòâî Original Íàêîíåö, ïðîñìîòðåâ ôàéë \Windows\Repair\Setup.log, ìîæíî òî÷íî âûÿñíèòü, êàêèå ôàéëû
Ìàñøòàáèðóåìîñòü
Ìàñøòàáèðóåìîñòü (scalability) îäíà èç êëþ÷åâûõ öåëåé ìíîãîïðîöåññîðíûõ ñèñòåì. Äë ñïîñîáíîñòü âûïîëíÿòü êîä îïåðàöèîííîé ñèñòåìû íà ëþáîì äîñòóïíîì ïðîöåññîðå è íà í íåñêîëüêî ïîòîêîâ îäíîãî ïðîöåññà ìîæíî ïàðàëëåëüíî âûïîëíÿòü íà ðàçíûõ ïðîöåññîðàõ òîíêàÿ ñèíõðîíèçàöèÿ âíóòðè ÿäðà (ñïèí-áëîêèðîâêè, ñïèí-áëîêèðîâêè ñ î÷åðåäÿìè è äð ìåõàíèçìû âðîäå ïîðòîâ çàâåðøåíèÿ ââîäà-âûâîäà (ñì. ãëàâó 9), îáëåã÷àþùèå ýôôåêòèâí
Ðàçëè÷èÿ ìåæäó êëèåíòñêèìè è ñåðâåðíûìè âåðñèÿìè
Windows ïîñòàâëÿåòñÿ â êëèåíòñêèõ è ñåðâåðíûõ âåðñèÿõ. B Windows 2000 êëèåíòñêàÿ âåðñè
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
11/38
Ó Windows XP øåñòü êëèåíòñêèõ âåðñèé: Windows XP Home Edition, Windows XP Professional XP Tablet PC Edition, Windows XP Media Center Edition è Windows XP Embedded. Ïîñëåäíèå Windows Server 2003 âûïóñêàåòñÿ â øåñòè ðàçíîâèäíîñòÿõ: Windows Server 2003 Web Editiover, Enterprise Edition è Datacenter Edition. Ýòè âåðñèè ðàçëè÷àþòñÿ ïî ñëåäóþùèì ïàðàìåòðàì: ÷èñëó ïîääåðæèâàåìûõ ïðîöåññîðîâ; îáúåìó ïîääåðæèâàåìîé ôèçè÷åñêîé ïàìÿòè; âîçìîæíîìó êîëè÷åñòâó îäíîâðåìåííûõ ñåòåâûõ ñîåäèíåíèé (íàïðèìåð, â êëèåíòñêîé âåðñ íàëè÷èåì â âûïóñêàõ Server ñåðâèñîâ, íå âõîäÿùèõ â Professional (íàïðèìåð, ñëóæá êà Ýòè ðàçëè÷èÿ äëÿ Windows 2000 ñóììèðóþòñÿ â òàáëèöå 23. Ta æå èíôîðìàöèÿ, íî ïðèìåíèòÕîòÿ ñóùåñòâóåò íåñêîëüêî êëèåíòñêèõ è ñåðâåðíûõ âûïóñêîâ îïåðàöèîííîé ñèñòåìû Windows ÏÐÈÌÅ×ÀÍÈÅ Windows XP áûëà ïåðâûì êëèåíòñêèì âûïóñêîì êîäîâîé áàçû Windows NT, êîÈòàê, åñëè îáðàç ÿäðà äëÿ Windows 2000 Professional è Windows 2000 Server îäèíàêîâ (è Äðóãîé ïàðàìåòð, ProductSuite, ïîçâîëÿåò ðàçëè÷àòü ñåðâåðíûå âåðñèè Windows (Standard, Èòàê, åñëè áàçîâûå ôàéëû â öåëîì îäèíàêîâû äëÿ êëèåíòñêèõ è ñåðâåðíûõ âåðñèé, òî ÷åì æ
Ïðîâåðî÷íûé âûïóñê
Ñïåöèàëüíàÿ îòëàäî÷íàÿ âåðñèÿ Windows 2000 Professional, Windows XP Professional èëè W Ïðîâåðî÷íûé âûïóñê ïðåäíàçíà÷åí ãëàâíûì îáðàçîì ðàçðàáîò÷èêàì äðàéâåðîâ óñòðîéñòâ, ïîñ ÝÊÑÏÅÐÈÌÅÍÒ: îïðåäåëÿåì, ÿâëÿåòñÿ ëè äàííàÿ ñèñòåìà ïðîâåðî÷íûì âûïóñêîìÂñòðîåííîé óòèëèòû, êîòîðàÿ ïîçâîëÿëà áû óâèäåòü, ñ êàêèì âûïóñêîì âû èìååòå äåëî ïð Çíà÷èòåëüíàÿ ÷àñòü äîïîëíèòåëüíîãî êîäà â ñîáðàííûõ òàêèì îáðàçîì äâîè÷íûõ ôàéëàõ ÿâëÿ
ASSERT, âûïîëíÿåìûõ íåêîòîðûìè âñïîìîãàòåëüíûìè ïðîöåäóðàìè ÿäðà, ñì. â ðàçäåëå «Check ÏÐÈÌÅ×ÀÍÈÅ Ñðàâíèâ ôàéë Ntoskrnl.exe ñ Ntkrnlmp.exe èëè Ntkrnlpa. exe ñ NtkrpampÏðîâåðî÷íûé âûïóñê òàêæå ïîëåçåí ñèñòåìíûì àäìèíèñòðàòîðàì, òàê êàê â íåì ìîæíî âêëþ÷è Äëÿ èñïîëüçîâàíèÿ âîçìîæíîñòåé îòëàäî÷íîé âåðñèè îïåðàöèîííîé ñèñòåìû íåîáÿçàòåëüíî óñ Íàêîíåö, ïðîâåðî÷íàÿ âåðñèÿ ïðèãîäèòñÿ è äëÿ òåñòèðîâàíèÿ êîäà ïîëüçîâàòåëüñêîãî ðåæèì
Êëþ÷åâûå êîìïîíåíòû ñèñòåìû
Òåïåðü, îçíàêîìèâøèñü ñ âûñîêîóðîâíåâîé àðõèòåêòóðîé Windows, êîïíåì ïîãëóáæå è ðàññìî Îñíîâíûå ýëåìåíòû ýòîé ñõåìû äåòàëüíî îïèñûâàþòñÿ â ïîñëåäóþùèõ ãëàâàõ. B ãëàâå 3 ðàññ èñïîëüçóåìûõ ñèñòåìîé (â òîì ÷èñëå î äèñïåò÷åðå îáúåêòîâ, ïðåðûâàíèÿõ è ò. ï.), â ãëàâÐ èñ. 23 Ïîäñèñòåìû îêðóæåíèÿ è èõ DLL :
Êàê ïîêàçàíî íà ðèñ. 23, â Windows èìååòñÿ òðè ïîäñèñòåìû îêðóæåíèÿ: OS/2, POSIX è Wi Ïîäñèñòåìà Windows îòëè÷àåòñÿ îò îñòàëüíûõ äâóõ òåì, ÷òî áåç íåå Windows ðàáîòàòü íå ì Ñòàðòîâàÿ èíôîðìàöèÿ ïîäñèñòåìû õðàíèòñÿ â ðàçäåëå ðååñòðà HKLM\ SYSTEM\CurrentControl Çíà÷åíèåì ïàðàìåòðà Required ÿâëÿåòñÿ ñïèñîê ïîäñèñòåì, çàãðóæàåìûõ ïðè çàïóñêå ñèñòåì Ïîäñèñòåìû îêðóæåíèÿ ïðåäîñòàâëÿþò ïðèêëàäíûì ïðîãðàììàì íåêîå ïîäìíîæåñòâî áàçîâûõ ñå Êàæäûé èñïîëíÿåìûé îáðàç (EXE) ïðèíàäëåæèò îäíîé è òîëüêî îäíîé ïîäñèñòåìå. Ïðè çà
ÏÐÈÌÅ×ÀÍÈÅ Ïðîöåññ ïîäñèñòåìû Windows íàçâàí Csrss.exe ïîòîìó, ÷òî â Windows NT â Ñìåøèâàòü âûçîâû ôóíêöèé ðàçíûõ ïîäñèñòåì íåëüçÿ. Èíûìè ñëîâàìè, ïðèëîæåíèÿ POSIX ìîãó Ìû óæå ãîâîðèëè, ÷òî ïîëüçîâàòåëüñêèå ïðèëîæåíèÿ íå ìîãóò âûçûâàòü ñèñòåìíûå ñåðâèñû W ÝÊÑÏÅÐÈÌÅÍÒ: îïðåäåëåíèå òèïà ïîäñèñòåìû, äëÿ êîòîðîé ïðåäíàçíà÷åí èñïîëíÿåìûé ôàéëÂû ìîæåòå îïðåäåëèòü, äëÿ êàêîé ïîäñèñòåìû ïðåäíàçíà÷åí èñïîëíÿåìûé ôàéë ñ ïîìîùüþ óòè Ýòî ïîêàçûâàåò, ÷òî Notepad ÿâëÿåòñÿ GUI-ïðîãðàììîé, a Cmd êîíñîëüíîé, èëè ïðîãðàììî Ïðè âûçîâå ïðèëîæåíèåì îäíîé èç ôóíêöèé DLL ïîäñèñòåìû âîçìîæíî îäíî èç òðåõ.
Ôóíêöèÿ ïîëíîñòüþ ðåàëèçîâàíà â ïîëüçîâàòåëüñêîì ðåæèìå âíóòðè DLL ïîäñèñòåìû. Èíà÷ Ôóíêöèÿ òðåáóåò îäíîãî èëè áîëåå âûçîâîâ èñïîëíèòåëüíîé ñèñòåìû Windows. Íàïðèìåð, Ôóíêöèÿ òðåáóåò âûïîëíåíèÿ êàêèõ-ëèáî îïåðàöèé â ïðîöåññå ïîäñèñòåìû îêðóæåíèÿ (òàê Íåêîòîðûå ôóíêöèè âðîäå CreateProcess è CreateThread ìîãóò òðåáîâàòü âûïîëíåíèÿ êà Õîòÿ ñòðóêòóðà Windows ïîçâîëÿåò ïîääåðæèâàòü íåñêîëüêî íåçàâèñèìûõ ïîäñèñòåì îêðóæåíè Òåïåðü ïîáëèæå ïîçíàêîìèìñÿ ñ êàæäîé ïîäñèñòåìîé îêðóæåíèÿ.
Ïîäñèñòåìà Windows
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
12/38
Ýòà ïîäñèñòåìà ñîñòîèò èç ñëåäóþùèõ îñíîâíûõ ýëåìåíòîâ. Ïðîöåññà ïîäñèñòåìû îêðóæåíèÿ (Csrss.exe), ïðåäîñòàâëÿþùåãî: ïîääåðæêó êîíñîëüíûõ (òåêñòîâûõ) îêîí; ïîääåðæêó ñîçäàíèÿ è óäàëåíèÿ ïðîöåññîâ è ïîòîêîâ; ÷àñòè÷íóþ ïîääåðæêó ïðîöåññîâ 16-ðàçðÿäíîé âèðòóàëüíîé DOS-ìàøèíû (VDM); ìíîæåñòâî äðóãèõ ôóíêöèé, íàïðèìåð GetTempFile, DefineDosDevice, ExitWindowsEx, à Äðàéâåðà ðåæèìà ÿäðà (Win32k.sys), âêëþ÷àþùåãî: äèñïåò÷åð îêîí, êîòîðûé óïðàâëÿåò îòðèñîâêîé è âûâîäîì îêîí íà ýêðàí, ïðèíèìàåò ââî Graphics Device Interface (GDI), êîòîðûé ïðåäñòàâëÿåò ñîáîé áèáëèîòåêó ôóíêöèé äëÿ DLL-ìîäóëåé ïîäñèñòåì (Kernel32.dll, Advapi32.dll, User32.dll è Gdi32.dll), òðàíñë Äðàéâåðîâ ãðàôè÷åñêèõ óñòðîéñòâ, ïðåäñòàâëÿþùèõ ñîáîé ñïåöèôè÷íûå äëÿ êîíêðåòíîãî î Äëÿ ôîðìèðîâàíèÿ ýëåìåíòîâ óïðàâëåíèÿ ïîëüçîâàòåëüñêîãî èíòåðôåéñà íà ýêðàíå, íàïðèìåðGDI ïðåäîñòàâëÿåò íàáîð ñòàíäàðòíûõ ôóíêöèé äâóõìåðíîé ãðàôèêè, êîòîðûå ïîçâîëÿþò ïðèë Äî Windows NT 4 äèñïåò÷åð îêîí è ãðàôè÷åñêèå ñåðâèñû áûëè ÷àñòüþ ïðîöåññà ïîäñèñòåìû W Íàïðèìåð, êàæäûé êëèåíòñêèé ïîòîê îáñëóæèâàåòñÿ ïàðíûì ñåðâåðíûì ïîòîêîì â ïðîöåññå ïî GDI-îïåðàöèè âûïîëíÿþòñÿ â ïàêåòíîì ðåæèìå. Ïðè ýòîì ñåðèÿ ãðàôè÷åñêèõ îáúåêòîâ, çàïðî Îäíàêî, íåñìîòðÿ íà òàêóþ îïòèìèçàöèþ, îáùàÿ ïðîèçâîäèòåëüíîñòü ñèñòåìû ïî-ïðåæíåìó íå Òàê ÷òî æå îñòàåòñÿ â òîé ÷àñòè ïðîöåññà ïîäñèñòåìû Windows, êîòîðàÿ ðàáîòàåò â ïîëüçî
He ïîñòðàäàëà ëè ñòàáèëüíîñòü Windows îò ïåðåâîäà USER è GDI â ðåæèì ÿäðà?
Íåêîòîðûå èíòåðåñóþòñÿ, íå ïîâëèÿåò ëè íà ñòàáèëüíîñòü ñèñòåìû ïåðåâîä òàêîé çíà÷èòåëü Ïðàâäà, òåîðåòè÷åñêè ïîÿâëÿåòñÿ äðóãàÿ îïàñíîñòü. Ïîñêîëüêó ýòîò êîä âûïîëíÿåòñÿ â ðåæ
Ñóùåñòâóåò åùå îäíî íåãàòèâíîå ïîñëåäñòâèå ïåðåâîäà ãðàôè÷åñêèõ äðàéâåðîâ â ðåæèì ÿäðà Íàêîíåö, âàæíî ïîíèìàòü, ÷òî òàêàÿ ñõåìà (ïðè êîòîðîé ïîäñèñòåìà ïîääåðæêè îêîí è ãðàô Íåêîòîðûå ðàñïðîñòðàíÿþò èçìûøëåíèÿ íàñ÷åò ñíèæåíèÿ ýôôåêòèâíîñòè âûòåñíÿþùåé ìíîãîçàä Äðóãîå íàïðàâëåíèå ñïåêóëÿöèé êàñàëîñü ñíèæåíèÿ ìàñøòàáèðóåìîñòè SMP â ðåçóëüòàòå óæå B ðåçóëüòàòå èçìåíåíèé, âíåñåííûõ â Windows NT 4, óäàëîñü ïîâûñèòü ïðîïóñêíóþ ñïîñîáíî B çàêëþ÷åíèå îòìåòèì, ÷òî ïîâûøåíèå ïðîèçâîäèòåëüíîñòè â ðåçóëüòàòå ïåðåâîäà äèñïåò÷åð
Ïîäñèñòåìà POSIX
POSIX, íàçâàíèå êîòîðîé ïðåäñòàâëÿåò ñîáîé àááðåâèàòóðó îò «portable operating system B Windows ðåàëèçîâàí ëèøü îäèí èç ìíîãèõ ñòàíäàðòîâ POSIX, à èìåííî POSIX.l, êîòîðûé î Ïîñêîëüêó ñîâìåñòèìîñòü ñ POSIX. 1 áûëà îäíîé èç îáÿçàòåëüíûõ öåëåé, â Windows âêëþ÷åí
Äëÿ ïðåîäîëåíèÿ ýòîãî îãðàíè÷åíèÿ ïðåäíàçíà÷åí ïðîäóêò Microsoft Windows Services for Ýòà óëó÷øåííàÿ ïîäñèñòåìà POSIX ðåàëüíî ïîìîãàåò ïåðåíîñèòü UNIX-ïðèëîæåíèÿ â Windows. ÝÊÑÏÅÐÈÌÅÍÒ: íàáëþäàåì ñòàðò ïîäñèñòåìû POSIXÏîäñèñòåìà POSIX ïî óìîë÷àíèþ ñêîíôèãóðèðîâàíà íà çàïóñê â ìîìåíò íà÷àëà âûïîëíåíèÿ ïð 1. Îòêðîéòå îêíî êîìàíäíîé ñòðîêè. 2. Çàïóñòèòå Process Explorer è óáåäèòåñü, ÷òî ïîäñèñòåìà POSIX åùå íå çàïóùåíà (ò. å. 3. Çàïóñòèòå POSIX-ïðîãðàììó (íàïðèìåð C Shell èëè Korn Shell, ïîñòàâëÿåìóþ ñ Windows 4. Âåðíèòåñü â Process Explorer è îáðàòèòå âíèìàíèå íà íîâûé ïðîöåññ Psxss.exe, ÿâëÿþù Äëÿ êîìïèëÿöèè è ñáîðêè ïðèëîæåíèÿ POSIX â Windows íóæíû çàãîëîâî÷íûå ôàéëû è áèáëèîòå
Ïîäñèñòåìà OS/2
Ïîäñèñòåìà îêðóæåíèÿ OS/2, êàê è ïîäñèñòåìà POSIX, îáëàäàåò äîâîëüíî îãðàíè÷åííîé ôóíê Êàê ïîêàçàíî íà ðèñ. 25, ïîäñèñòåìà OS/2, èñïîëüçóþùàÿ 32-ðàçðÿäíîå âèðòóàëüíîå àäðåñ Ìîçàè÷íàÿ îáëàñòü (tiled area) ýòî 512 Ìá çàðàíåå ðåçåðâèðóåìîãî âèðòóàëüíîãî àäðåÊàê áóäåò äåòàëüíî ïîêàçàíî â ãëàâå 6, ïîòîêè ÿâëÿþòñÿ ýëåìåíòàìè âûïîëíÿåìîé ïðîãðàìì Êàê è ïîäñèñòåìà POSIX, ïîäñèñòåìà OS/2 àâòîìàòè÷åñêè çàïóñêàåòñÿ ïðè ïåðâîé àêòèâèçàö Ïîäðîáíåå î âûïîëíåíèè ïðèëîæåíèé POSIX è OS/2 â Windows ñì. ãëàâó 6.
Ntdll.dll
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
13/38
Ntdll.dll ñïåöèàëüíàÿ áèáëèîòåêà ñèñòåìíîé ïîääåðæêè, íóæíàÿ â îñíîâíîì ïðè èñïîëüçî èíòåðôåéñû äèñïåò÷åðà ñèñòåìíûõ ñåðâèñîâ (system service dispatch stubs) ê ñåðâèñàì
âíóòðåííèå ôóíêöèè ïîääåðæêè, èñïîëüçóåìûå ïîäñèñòåìàìè, DLL ïîäñèñòåì è äðóãèìè êî Äëÿ êàæäîé èç ýòèõ ôóíêöèé â Ntdll ñóùåñòâóåò òî÷êà âõîäà ñ òåì æå èìåíåì. Êîä âíóòðè Ntdll òàêæå âêëþ÷àåò ìíîæåñòâî ôóíêöèé ïîääåðæêè, íàïðèìåð çàãðóç÷èê îáðàçîâ (ôóíêöèè,
Èñïîëíèòåëüíàÿ ñèñòåìà
Èñïîëíèòåëüíàÿ ñèñòåìà (executive) íàõîäèòñÿ íà âåðõíåì óðîâíå Ntoskrnl.exe (ÿäðî ðàñï Ýêñïîðòèðóåìûå ôóíêöèè, äîñòóïíûå äëÿ âûçîâà èç ïîëüçîâàòåëüñêîãî ðåæèìà. Ýòè ôóíêö Ôóíêöèè äðàéâåðîâ óñòðîéñòâ, âûçûâàåìûå ÷åðåç ôóíêöèþ DeviceIoCont-rol. Ïîñëåäíÿÿ Ýêñïîðòèðóåìûå ôóíêöèè, äîñòóïíûå äëÿ âûçîâà òîëüêî èç ðåæèìà ÿäðà è äîêóìåíòèðîâàí Ýêñïîðòèðóåìûå ôóíêöèè, äîñòóïíûå äëÿ âûçîâà òîëüêî èç ðåæèìà ÿäðà, íî íå îïèñàííûå
Ôóíêöèè, îïðåäåëåííûå êàê ãëîáàëüíûå, íî íå ýêñïîðòèðóåìûå ñèìâîëû. Âêëþ÷àþò âíóòðå Âíóòðåííèå ôóíêöèè â êàêîì-ëèáî ìîäóëå, íå îïðåäåëåííûå êàê ãëîáàëüíûå ñèìâîëû. Èñï Äèñïåò÷åð êîíôèãóðàöèè (ñì. ãëàâó 4), îòâå÷àþùèé çà ðåàëèçàöèþ è óïðàâëåíèå ñèñòå Äèñïåò÷åð ïðîöåññîâ è ïîòîêîâ (ñì. ãëàâó 6), ñîçäàþùèé è çàâåðøàþùèé ïðîöåññû è ï Ìîíèòîð ñîñòîÿíèÿ çàùèòû (ñì. ãëàâó 8), ðåàëèçóþùèé ïîëèòèêè áåçîïàñíîñòè íà ëîêà Äèñïåò÷åð ââîäà-âûâîäà (ñì. ãëàâó 9), ðåàëèçóþùèé àïïàðàòíî-íåçàâèñèìûé ââîä-âûâî
Äèñïåò÷åð Plug and Play (ñì. ãëàâó 9), îïðåäåëÿþùèé, êàêèå äðàéâåðû íóæíû äëÿ ïîä Äèñïåò÷åð ýëåêòðîïèòàíèÿ (ñì. ãëàâó 9), êîòîðûé êîîðäèíèðóåò ñîáûòèÿ, ñâÿçàííûå ñ Ïîäïðîãðàììû WDM Windows Management Instrumentation (ñì. ãëàâó 4), ïîçâîëÿþùèå äð WMI ïîëüçîâàòåëüñêîãî ðåæèìà. Ïîòðåáèòåëè èíôîðìàöèè WMI ìîãóò íàõîäèòüñÿ êàê íà ëîêàë
Äèñïåò÷åð êýøà (ñì. ãëàâó 11), ïîâûøàþùèé ïðîèçâîäèòåëüíîñòü ôàéëîâîãî ââîäà-âûâî Äèñïåò÷åð ïàìÿòè (ñì. ãëàâó 7), ðåàëèçóþùèé âèðòóàëüíóþ ïàìÿòü ñõåìó óïðàâëåíèÿ Ñðåäñòâî ëîãè÷åñêîé ïðåäâûáîðêè (ñì. ãëàâó 7), óñêîðÿþùåå çàïóñê ñèñòåìû è ïðîöåñ Äèñïåò÷åð îáúåêòîâ ñîçäàåò, óïðàâëÿåò è óäàëÿåò îáúåêòû è àáñòðàêòíûå òèïû äàííû Ìåõàíèçì LPC (ñì. ãëàâó 3) ïåðåäàåò ñîîáùåíèÿ ìåæäó êëèåíòñêèì è ñåðâåðíûì ïðîö Áîëüøîé íàáîð ñòàíäàðòíûõ áèáëèîòå÷íûõ ôóíêöèé äëÿ îáðàáîòêè ñòðîê, àðèôìåòè÷åñêèõ Ïîäïðîãðàììû ïîääåðæêè èñïîëíèòåëüíîé ñèñòåìû, íàïðèìåð äëÿ âûäåëåíèÿ ñèñòåìíîé ï
ßäðî
ßäðî ñîñòîèò èç íàáîðà ôóíêöèé â Ntoskrnl.exe, ïðåäîñòàâëÿþùèõ ôóíäàìåíòàëüíûå ìåõàíèçÊàê è ôóíêöèè ïîääåðæêè èñïîëíèòåëüíîé ñèñòåìû, óïîìèíàâøèåñÿ â ïðåäûäóùåì ðàçäåëå, ÷à
Îáúåêòû ÿäðà
ßäðî ñîñòîèò èç íèçêîóðîâíåâûõ, ÷åòêî îïðåäåëåííûõ è õîðîøî ïðåäñêàçóåìûõ ïðèìèòèâîâ è Âíå ÿäðà èñïîëíèòåëüíàÿ ñèñòåìà ïðåäñòàâëÿåò ïîòîêè è äðóãèå ðàçäåëÿåìûå ðåñóðñû â âèä Îäíà èç ãðóïï îáúåêòîâ ÿäðà, íàçûâàåìûõ óïðàâëÿþùèìè (control objects), îïðåäåëÿåò ñ Äðóãàÿ ãðóïïà îáúåêòîâ ïîä íàçâàíèåì îáúåêòû äèñïåò÷åðà (dispatcher objects) ðåàëèçó
Ïîääåðæêà îáîðóäîâàíèÿ
Äðóãàÿ âàæíàÿ çàäà÷à ÿäðà àáñòðàãèðîâàíèå èëè èçîëÿöèÿ èñïîëíèòåëüíîé ñèñòåìû è äðàé
Àðõèòåêòóðà ÿäðà íàöåëåíà íà ìàêñèìàëüíîå îáîáùåíèå êîäà äàæå â ñëó÷àå àïïàðàòíî-çàâ Ho îäíà ÷àñòü ýòèõ èíòåðôåéñîâ ïî-ðàçíîìó ðåàëèçóåòñÿ íà ðàçíûõ àðõèòåêòóðàõ, à äðóãàÿ B ÿäðå òàêæå ñîäåðæèòñÿ íåáîëüøàÿ ïîðöèÿ êîäà ñ õ86-ñïåöèôè÷íûìè èíòåðôåéñàìè, íåîáõîäÄðóãèì ïðèìåðîì àðõèòåêòóðíî-ñïåöèôè÷íîãî êîäà ÿäðà ìîæåò ñëóæèòü èíòåðôåéñ, ïðåäîñòàâ Åùå îäèí ïðèìåð ïåðåêëþ÷åíèå êîíòåêñòà. Õîòÿ íà âûñîêîì óðîâíå äëÿ âûáîðà ïîòîêîâ è
Óðîâåíü àáñòðàãèðîâàíèÿ îò îáîðóäîâàíèÿ
Êàê îòìå÷àëîñü â íà÷àëå ýòîé ãëàâû, îäíîé èç âàæíåéøèõ îñîáåííîñòåé àðõèòåêòóðû Window
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
14/38
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
15/38
ãäå ïðåôèêñ âíóòðåííèé êîìïîíåíò, ýêñïîðòèðóþùèé ïðîöåäóðó, îïåðàöèÿ íàçâàíèå î Íàïðèìåð, ExAllocatePoolWithTag ÿâëÿåòñÿ ïðîöåäóðîé ïîääåðæêè èñïîëíèòåëüíîé ñèñòåìû
Ñèñòåìíûå ïðîöåññû
B êàæäîé ñèñòåìå Windows âûïîëíÿþòñÿ ïåðå÷èñëåííûå íèæå ïðîöåññû. (Äâà èç íèõ, IdIe è Ïðîöåññ IdIe (âêëþ÷àåò ïî îäíîìó ïîòîêó íà ïðîöåññîð äëÿ ó÷åòà âðåìåíè ïðîñòîÿ ïðîö Ïðîöåññ System (ñîäåðæèò áîëüøèíñòâî ñèñòåìíûõ ïîòîêîâ ðåæèìà ÿäðà). Äèñïåò÷åð ñåàíñîâ (Smss.exe). Ïîäñèñòåìà Windows (Csrss.exe). Ïðîöåññ âõîäà â ñèñòåìó (Winlogon.exe). Äèñïåò÷åð óïðàâëåíèÿ ñåðâèñàìè (Services.exe) è ñîçäàâàåìûå èì äî÷åðíèå ïðîöåññû ñå Ñåðâåðíûé ïðîöåññ ëîêàëüíîé àóòåíòèôèêàöèè (Lsass.exe). ×òîáû ïîíÿòü âçàèìîîòíîøåíèÿ ýòèõ ïðîöåññîâ, ïîëåçíî ïðîñìîòðåòü «äåðåâî» ïðîöåññîâ, î B ñëåäóþùèõ ðàçäåëàõ ïîÿñíÿþòñÿ îñíîâíûå ñèñòåìíûå ïðîöåññû, ïåðå÷èñëåííûå íà ðèñ. 26
Ïðîöåññ IdIe
Ïåðâûé ïðîöåññ, ïîêàçàííûé íà ðèñ. 26, ÿâëÿåòñÿ ïðîöåññîì ïðîñòîÿ ñèñòåìû (system idl A òåïåðü ðàññìîòðèì ñèñòåìíûå ïîòîêè è ïðåäíàçíà÷åíèå êàæäîãî ñèñòåìíîãî ïðîöåññà, âûï
Ïðåðûâàíèÿ è DPC Äâå ñòðîêè, ïîìå÷åííûå êàê Interrupts è DPCs, îòðàæàþò âðåìÿ, çàòðà÷åííîå íà îáñëóæèâà âàíèé è DPC, êàê âðåìÿ ïðîñòîÿ ñèñòåìû. Ïîýòîìó ñèñòåìà, çàíÿòàÿ èíòåíñèâíîé îáðàáîòêî
Ïðîöåññ System è åãî ïîòîêè
Ïðîöåññ System (ñ èäåíòèôèêàòîðîì 8 â Windows 2000 è èäåíòèôèêàòîðîì 4 â Windows XP è Ñèñòåìíûå ïîòîêè ñîçäàþòñÿ ôóíêöèåé PsCreateSystemThread (äîêóìåíòèðîâàíà â DDK), âû Ïî óìîë÷àíèþ âëàäåëüöåì ñèñòåìíûõ ïîòîêîâ ÿâëÿåòñÿ ïðîöåññ System, íî äðàéâåðû ìîãóò ñ Åñëè âû çàíèìàåòåñü ïîèñêîì ïðè÷èí íåïîëàäîê èëè ñèñòåìíûì àíàëèçîì, ïîëåçíî ñîïîñòàâè Òàê ÷òî, åñëè â ïðîöåññå System âûïîëíÿþòñÿ ïîòîêè, ñíà÷àëà îïðåäåëèòå, êàêèå ýòî ïîòî
Îáà ýòèõ ìåòîäà äåìîíñòðèðóþòñÿ ñëåäóþùèìè ýêñïåðèìåíòàìè. ÝÊÑÏÅÐÈÌÅÍÒ: èäåíòèôèêàöèÿ ñèñòåìíûõ ïîòîêîâ â ïðîöåññå SystemÂû ìîæåòå óáåäèòüñÿ, ÷òî ïîòîêè âíóòðè ïðîöåññà System äîëæíû áûòü ïîòîêàìè ðåæèìà ÿäð ×òîáû áûñòðî íàéòè òåêóùèé àäðåñ ïîòîêà, âîñïîëüçóéòåñü êîìàíäîé !stacks 0 îòëàä÷èêà B ïåðâîì ñòîëáöå âûâîäÿòñÿ èäåíòèôèêàòîðû ïðîöåññà è ïîòîêà (â âèäå «Èäåíòèôèêàòîð ïðî Îäíàêî, åñëè âûïîëíÿåìûé ïîòîê ÿâëÿåòñÿ îäíèì èç ðàáî÷èõ ïîòîêîâ ñèñòåìû (ExpWorkerThrÝÊÑÏÅÐÈÌÅÍÒ: óâÿçêà ñèñòåìíîãî ïîòîêà ñ äðàéâåðîì óñòðîéñòâàB ýòîì ýêñïåðèìåíòå ìû ïîñìîòðèì, êàê óâÿçàòü àêòèâíîñòü ïðîöåññîðà â ïðîöåññå System 1. Îòêðîéòå îêíî êîìàíäíîé ñòðîêè. 2. Ñîçäàéòå ñïèñîê âñåõ êàòàëîãîâ íà äèñêå Ñ, èñïîëüçóÿ ñåòåâîé ïóòü äëÿ äîñòóïà ê ýòî 3. Çàïóñòèòå Process Explorer è äâàæäû ùåëêíèòå ïðîöåññ System. 4. Îòêðîéòå âêëàäêó Threads. 5. Îòñîðòèðóéòå ñïèñîê ïî ñòîëáöó CSwitch Delta (ðàçíèöà ïî ÷èñëó ïåðåêëþ÷åíèé êîíòåêñ
Åñëè âû âèäèòå ðàáîòàþùèé ñèñòåìíûé ïîòîê è íå óâåðåíû, êàêîé ýòî äðàéâåð, íàæìèòå êíî
Äèñïåò÷åð ñåàíñîâ (Smss)
Äèñïåò÷åð ñåàíñîâ (Session Manager) (\Windows\System32\Smss.exe) ÿâëÿåòñÿ ïåðâûì ïðîöå Äèñïåò÷åð ñåàíñîâ îòâå÷àåò çà íåêîòîðûå âàæíûå ýòàïû çàïóñêà Windows, òàêèå êàê ñîçäàí Çíà÷èòåëüíàÿ ÷àñòü ñâåäåíèé î êîíôèãóðàöèè, õðàíÿùèõñÿ â ðååñòðå è èñïîëüçóåìûõ ïðè èí Ïîñëå âûïîëíåíèÿ ýòèõ ýòàïîâ èíèöèàëèçàöèè ãëàâíûé ïîòîê Smss ïåðåõîäèò ê áåñêîíå÷íîìó Ñåàíñ Terminal Services ñîçäàåòñÿ Smss. Êîãäà Smss ïîëó÷àåò çàïðîñ íà ñîçäàíèå ñåàíñà,
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
16/38
Winlogon, LSASS è Userinit
Ïðîöåññ âõîäà BWindows (\Windows\System32\Winlogon.exe) îáðàáàòûâàåò èíòåðàêòèâíûé âõî Èäåíòèôèêàöèÿ è àóòåíòèôèêàöèÿ ïðè âõîäå â ñèñòåìó ðåàëèçîâàíû â çàìåíÿåìîé DLL ïîä íà Ïîñëå ââîäà èìÿ è ïàðîëü ïîëüçîâàòåëÿ ïîñûëàþòñÿ äëÿ ïðîâåðêè ñåðâåðíîìó ïðîöåññó ëîêàÏîñëå óñïåøíîé àóòåíòèôèêàöèè LSASS âûçûâàåò êàêóþ-ëèáî ôóíêöèþ â ìîíèòîðå ñîñòîÿíèÿ çUserinit âûïîëíÿåò íåêîòîðûå äåéñòâèÿ ïî èíèöèàëèçàöèè ïîëüçîâàòåëüñêîé ñðåäû (íàïðèìå Winlogon àêòèâåí íå òîëüêî ïðè âõîäå è âûõîäå ïîëüçîâàòåëÿ, íî è ïðè ïåðåõâàòå ââîäà S Ïîëíîå îïèñàíèå ýòàïîâ ïðîöåññà âõîäà ñì. â ðàçäåëå «Smss, Csrss è Winlogon» ãëàâû 5.
Äèñïåò÷åð óïðàâëåíèÿ ñåðâèñàìè (SCM)
Âñïîìíèòå, ÷òî òåðìèí «ñåðâèñû» â Windows îáîçíà÷àåò êàê ñåðâåðíûå ïðîöåññû, òàê è äðàÝòèìè ñåðâèñàìè óïðàâëÿåò ñïåöèàëüíûé ñèñòåìíûé ïðîöåññ, äèñïåò÷åð óïðàâëåíèÿ ñåðâèñàì Ó÷òèòå, ÷òî ó ñåðâèñîâ åñòü òðè èìåíè: èìÿ ïðîöåññà, âûïîëíÿåìîãî â ñèñòåìå, âíóòðåííå×òîáû âûÿñíèòü, êàêèå èìåííî ñåðâèñû ñîäåðæàòñÿ â òîì èëè èíîì ïðîöåññå, ââåäèòå êîìàí B âèäå ñåðâèñîâ ðåàëèçóþòñÿ íåêîòîðûå êîìïîíåíòû Windows, íàïðèìåð äèñïåò÷åð î÷åðåäè ïÝÊÑÏÅÐÈÌÅÍÒ: âûâîä ñïèñêà óñòàíîâëåííûõ ñåðâèñîâ×òîáû âûâåñòè ñïèñîê óñòàíîâëåííûõ ñåðâèñîâ (ñëóæá), äâàæäû ùåëêíèòå çíà÷îê Administra Äëÿ ïðîñìîòðà äåòàëüíûõ ñâåäåíèé î ñåðâèñå ùåëêíèòå ïðàâîé êíîïêîé ìûøè èìÿ ñåðâèñà è Îáðàòèòå âíèìàíèå, ÷òî ïîëå Path To Executable (Èñïîëíÿåìûé ôàéë) óêàçûâàåò íà ïðîãðàì
ÝÊÑÏÅÐÈÌÅÍÒ: ïðîñìîòð ñåðâèñîâ âíóòðè ñåðâèñíûõ ïðîöåññîâProcess Explorer âûäåëÿåò ïðîöåññû, êîòîðûå ÿâëÿþòñÿ õîñòàìè îäíîãî è áîëåå ñåðâèñîâ. Ïîäðîáíåå î ñåðâèñàõ ðàññêàçûâàåòñÿ â ãëàâå 4.
Ðåçþìå
B ýòîé ãëàâå ìû ïîçíàêîìèëèñü ñ îáùèìè àñïåêòàìè ñèñòåìíîé àðõèòåêòóðû Windows. Ìû òàê
ÃËABA 3 Ñèñòåìíûå ìåõàíèçìû
B Microsoft Windows ñóùåñòâóåò íåñêîëüêî áàçîâûõ ìåõàíèçìîâ, êîòîðûìè ïîëüçóþòñÿ êîìïî äèñïåò÷åðèçàöèÿ ëîâóøåê (trap dispatching), â òîì ÷èñëå ïðåðûâàíèé, DPC (deferred p
äèñïåò÷åð îáúåêòîâ èñïîëíèòåëüíîé ñèñòåìû; ñèíõðîíèçàöèÿ, â òîì ÷èñëå ñïèí-áëîêèðîâêè, îáúåêòû äèñïåò÷åðà ÿäðà (kernel dispatc ñèñòåìíûå ðàáî÷èå ïîòîêè; ðàçëè÷íûå ìåõàíèçìû âðîäå ïîääåðæêè ãëîáàëüíûõ ôëàãîâ Windows; LPC (local procedure call); Kernel Event Tracing; Wow64.
Äèñïåò÷åðèçàöèÿ ëîâóøåê
Ïðåðûâàíèÿ è èñêëþ÷åíèÿ òàêèå ñèòóàöèè â îïåðàöèîííîé ñèñòåìå, â êîòîðûõ íîðìàëüíûé ßäðî ðàçëè÷àåò ïðåðûâàíèÿ è èñêëþ÷åíèÿ: ïðåðûâàíèå (interrupt) ÿâëÿåòñÿ àñèíõðîííûì Ïðåðûâàíèÿ è èñêëþ÷åíèÿ ìîæíî ãåíåðèðîâàòü êàê ïðîãðàììíî, òàê è àïïàðàòíî. Íàïðèìåð, Ïðè àïïàðàòíîì ïðåðûâàíèè èëè èñêëþ÷åíèè ïðîöåññîð çàïèñûâàåò ñòàòóñíóþ èíôîðìàöèþ â ñ B áîëüøèíñòâå ñëó÷àåâ ÿäðî óñòàíàâëèâàåò ôóíêöèè, âûïîëíÿþùèå îáùóþ îáðàáîòêó ëîâóøåê
Äèñïåò÷åðèçàöèÿ ïðåðûâàíèé
8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)
17/38
Àïïàðàòíûå ïðåðûâàíèÿ îáû÷íî ãåíåðèðóþòñÿ óñòðîéñòâàìè ââîäà-âûâîäà, êîòîðûå òàêèì îáð Ñèñòåìíîå ïðîãðàììíîå îáåñïå÷åíèå òàêæå ìîæåò ãåíåðèðîâàòü ïðåðûâàíèÿ. ßäðî ñïîñîáíî î Äëÿ îáðàáîòêè àïïàðàòíûõ ïðåðûâàíèé ÿäðî óñòàíàâëèâàåò îáðàáîò÷èêè ëîâóøåê ïðåðûâàíèé, Äàëåå ìû ðàññìîòðèì, êàê ïðîöåññîð óâåäîìëÿåòñÿ îá àïïàðàòíûõ ïðåðûâàíèÿõ, êàêèå òèïû
Îáðàáîòêà àïïàðàòíûõ ïðåðûâàíèé
Ha àïïàðàòíûõ ïëàòôîðìàõ, ïîääåðæèâàåìûõ Windows, ïðåðûâàíèÿ, ñâÿçàííûå ñ âíåøíèì ââîä ÝÊÑÏÅÐÈÌÅÍÒ: ïðîñìîòð IDTÏðîñìîòðåòü ñîäåðæèìîå IDT, âêëþ÷àÿ ñâåäåíèÿ îá îáðàáîò÷èêàõ ëîâóøåê, êîòîðûå Windows Íèæå ïîêàçàíî, ÷òî âûâîäèò êîìàíäà !idt.B ñèñòåìå, çàäåéñòâîâàííîé â ýòîì ýêñïåðèìåíòå, íîìåð ïðåðûâàíèÿ 0x3C ñ ISR äðàéâåðà Windows óâÿçûâàåò àïïàðàòíûå IRQ ñ íîìåðàìè ïðåðûâàíèé â IDT. Ýòà òàáëèöà èñïîëüçóåòñÿ Ó êàæäîãî ïðîöåññîðà èìååòñÿ ñâîÿ IDT, òàê ÷òî ðàçíûå ïðîöåññîðû ìîãóò ïðè íåîáõîäèìîñ
Êîíòðîëëåðû ïðåðûâàíèé íà ïëàòôîðìå x86
B áîëüøèíñòâå ñèñòåì x86 ïðèìåíÿåòñÿ ëèáî ïðîãðàììèðóåìûé êîíòðîëëåð ïðåðûâàíèé (Progr
Êîíòðîëëåðû ïðåðûâàíèé íà ïëàòôîðìå x64
Ïîñêîëüêó àðõèòåêòóðà x64 ñîâìåñòèìà ñ îïåðàöèîííûìè ñèñòåìàìè äëÿ x86, ñèñòåìû íà áàç
Êîíòðîëëåðû ïðåðûâàíèé íà ïëàòôîðìå IA64
B àðõèòåêòóðå IA64 èñïîëüçóåòñÿ êîíòðîëëåð ïðåðûâàíèé Streamlined Advanced Programmabl ÝÊÑÏÅÐÈÌÅÍÒ: ïðîñìîòð êîíôèãóðàöèè PIC è APICÊîíôèãóðàöèþ PIC â îäíîïðîöåññîðíîé ñèñòåìå è APIC â ìíîãîïðîöåññîðíîé ñèñòåìå ìîæíî ï Ha ñëåäóþùåì ëèñòèíãå ïðèâîäèòñÿ âûõîäíàÿ èíôîðìàöèÿ êîìàíäû !apic â ñèñòåìå, èñïîëü Òåïåðü âçãëÿíèòå íà îáðàçåö âûâîäà êîìàíäû !ioapic, ïîêàçûâàþùåé êîíôèãóðàöèþ APIC â
Óðîâíè çàïðîñîâ ïðîãðàììíûõ ïðåðûâàíèéÕîòÿ êîíòðîëëåðû ïðåðûâàíèé ðàçëè÷àþò óðîâíè ïðèîðèòåòîâ ïðåðûâàíèé, Windows èñïîëüçóå ÏÐÈÌÅ×ÀÍÈÅ Óðîâåíü SYNCH_LEVEL, èñïîëüçóåìûé ìíîãîïðîöåññîðíûìè âåðñèÿìè ÿäðà äëÿ Ðèñ. 34. Óðîâíè çàïðîñîâ ïðåðûâàíèé (IRQL) â ñèñòåìàõ x64 è IA64Ïðåðûâàíèÿ îáñëóæèâàþòñÿ â ïîðÿäêå èõ ïðèîðèòåòà, è ïðåðûâàíèÿ ñ áîëåå âûñîêèì ïðèîðèò Óðîâíè ïðèîðèòåòîâ IRQL èìåþò ñîâåðøåííî èíîé ñìûñë, ÷åì ïðèîðèòåòû â ñõåìå ïëàíèðîâàí Çíà÷åíèå IRQL îïðåäåëÿåò, êàêèå ïðåðûâàíèÿ ìîæåò ïîëó÷àòü äàííûé ïðîöåññîð. IRQL òàêæå Ïîñêîëüêó äîñòóï ê PIC îïåðàöèÿ äîâîëüíî ìåäëåííàÿ, â HAL, èñïîëüçóþùèõ PIC, ðåàëèçî Ïîòîê ðåæèìà ÿäðà ïîâûøàåò è ïîíèæàåò IRQL ïðîöåññîðà, íà êîòîðîì îí âûïîëíÿåòñÿ, â çà ÏÐÈÌÅ×ÀÍÈÅ Ïðåðûâàíèÿ APC_LEVEL ÿâëÿþòñÿ èñêëþ÷åíèåì èç ïðàâèëà, êîòîðîå ãëàñèò, ÝÊÑÏÅÐÈÌÅÍÒ: îïðåäåëÿåì IRQLÅñëè
top related