1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)

download 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)

of 38

Transcript of 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)

  • 8/17/2019 1.Vnutrennee Ustrojstvo Windows (Gl. 1-4)

    1/38

    Àííîòàöèÿ: Êíèãà ïîñâÿùåíà âíóòðåííåìó óñòðîéñòâó è àëãîðèòìàì ðàáîòû îñíîâíûõ êîìïîíåí Íàçâàíèÿ âñåõ êîìàíä, äèàëîãîâûõ îêîí è äðóãèõ èíòåðôåéñíûõ ýëåìåíòîâ îïåðàöèîííîé ñèñ Âåðñèÿ Fb2 ðåäàêöèè   1.5 . Îá îøèáêàõ ïðîñüáà ñîîáùàòü ïî àäðåñó  [email protected]

    ---------------------------------------------

     Ì.Ðóññèíîâè÷, Ä.Ñîëîìîí Âíóòðåííåå óñòðîéñòâî 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Åñëè