ã·ã¹ãã èµ·å
ã³ã³ãã¥ãŒã¿ãé»æºããåæããããã¶ãŒããŒãäžã®ã³ã³ãã³ãµãæŸé»ããããšãã³ã³ãã¥ãŒã¿ã¯å®å šã«ãªãã«ãªããŸããã¹ããŒããã©ã³ã®æ代以åã¯ãæºåž¯é»è©±ã«äžå ·åãçºçããããšãå€ããåèµ·åããŠãåé¡ã解決ããªãå Žåã¯ãOSã®ãœãããŠã§ã¢ç¶æ ããªã»ããããããã¶ãŒããŒããšããã€ã¹ã³ã³ãããŒã©ãŒã®ããããã¢ã¯ãã£ããªãŸãŸã§ãç¶æ ãšOSãã©ã€ããŒãä¿æãããŠãããããããããªãŒãåãåºããŠ10ç§éåŸ ã€å¿ èŠããããŸãããåæ¥ç¶ããã°ããã§ãã 10ç§-ã³ã³ãã³ãµãæŸé»ããæéããããã®ç¶æ ã¯ãå®å šã«ã·ã£ããããŠã³ããåŸã«ã®ã¿ãªã»ãããããŸãã
PCãã³ã³ã»ã³ããŸãã¯ããããªãŒã«æ¥ç¶ãããŠããå Žåãã¹ã¿ã³ãã€ã¢ãŒãã«ãªããŸããã€ãŸãããã¶ãŒããŒãäžã®äžéšã®ãããã«é»åãäŸçµŠãããé»æºãã¹ãä»ããŠãå°ããªé»å§ïŒ5VïŒãäŸçµŠãããŸããå°ãªããšãããã¯ã·ã¹ãã ã³ã³ãããŒã©ãŒã§ãæ¬è³ªçã«ã¯ã倧åã³ã³ãã¥ãŒã¿ãŒãå®è¡ããããã³ã³ãã¥ãŒã¿ãŒã§ããé»æºãã¿ã³ãæŒãããšã«ã€ããŠã®éç¥ãåãåã£ã圌ã¯ãé»æº/ããããªãŒã«ããã«é»å§ãäŸçµŠããããã«èŠæ±ããããã»ããµãŒãå«ããããã»ããå šäœãåæåããŸããåæåã«ã¯ããã¶ãŒããŒãã®ãã¡ãŒã ãŠã§ã¢ã³ãŒããšããŒã¿ïŒBIOS / UEFIïŒãRAMã«è»¢éããCPUãå®è¡çšã«èšå®ããããšãå«ãŸããŸãã
é»æºãã¿ã³ãCPUã«é»åãäŸçµŠããæ¢ç¥ã®ã¢ãã¬ã¹ããBIOSãã¡ãŒã ãŠã§ã¢ã®å®è¡ãéå§ããã¹ã€ããã§ãããšèããã®ã¯èª€ãã§ãããããããå€ãã³ã³ãã¥ãŒã¿ãŒã¯ãã®ããã«æ©èœããŠããŸãããé»æºãã¿ã³ã¯ãã¹ããŒã¿ã¹LEDãšãšãã«ããŒãäžã«ãããç¹å¥ãªã³ãã¯ã¿ãä»ããŠãã¶ãŒããŒãã«æ¥ç¶ãããŠããŸãã次ã®å³ã¯ãé»æºãã¿ã³ããªã»ãããã¿ã³ã®æ¥ç¹ãããã³é»æºã¹ããŒã¿ã¹ãšããŒããã£ã¹ã¯ã®èªã¿åãå€ã瀺ãLEDã瀺ããŠããŸããé»æºãã¿ã³ãæŒããšããã¶ãŒããŒãã®æ¥ç¹ãžã®ä¿¡å·ã«å€æãããããããã·ã¹ãã ã³ã³ãããŒã©ã«å°éããŸãã
é»æºãã¿ã³ãé»æºã¹ããŒã¿ã¹LEDãããŒããã©ã€ããã¹ããŒã«ãŒãæ¥ç¶ããããã®ãã¶ãŒããŒãäžã®ãã³ã
é»æºãã¿ã³ãšã¹ããŒã¿ã¹LEDãåããã©ããããããã¶ãŒããŒãã·ã¹ãã
ã³ã³ãããŒã©ã«ã¯éåžžã«åŒ·åãªæ©èœããããŸããã³ã³ãã¥ãŒã¿ã®é»æºããªã³/ãªãããã«ã¯ãã«ãŒãã«ã¢ãŒãã§ã³ãŒããå®è¡ããŸãããããšã¯å¥ã«ãIntel ManagementEngineãAMDSecure TechnologyïŒCPUã®äžéšïŒãªã©ãåçã®æ©èœãåããä»ã®ããããååšããå¯èœæ§ããããŸãããããã¯ãã³ã³ãã¥ãŒã¿ãŒã®ãé»æºããªããã®ãšãã«ãæ©èœããŸããIntel MEãããã«ã¯ãMINIX3ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãå®è¡ããx86CPUãæèŒãããŠããŸãã圌ã«ã§ããããšïŒ
- ã³ã³ãã¥ãŒã¿ãŒã®é»æºããªã³/ãªãããŸãããã¹ãŠã®èšç®èœåããã·ã³åšèŸºæ©åšãããã³ãããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ã§ããããã°ã©ã ãå®è¡ããŸãã
- ãã¡ã€ã¢ãŠã©ãŒã«ã®å¶éããã€ãã¹ããŸãã
- ãã¹ã¯ãŒãã§ä¿è·ããããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãæäŸããCPUããã³RAMå ã®ãã¹ãŠã®ããŒã¿ã衚瀺ããŸãã
- æå·åããŒãçã¿ããã¹ã¯ãŒãã«ã¢ã¯ã»ã¹ãã
- ããŒã¹ãããŒã¯ãšããŠã¹ã®åããèšé²ãã
- ç»é¢ã«è¡šç€ºãããŠãããã®ã確èªãã
- Intel MEã®æªæã®ããã³ãŒãã¯ããã®ãããªäœã¬ãã«ã«å°éã§ããªããããã¢ã³ããŠã€ã«ã¹ã§ã¯æ€åºã§ããŸããã
- ãããŠãã¡ãããã¹ã¿ãã¯ã䜿çšããŠãããã¯ãŒã¯ãä»ããŠå¯ãã«ããŒã¿ãéä¿¡ãããããã¯ãŒã¯ãæäœããŸãã
ããã¯ããããã³ã°ãããããã¹ãã€ç®çã§äœ¿çšããããããå¯èœæ§ããããããé倧ãªã»ãã¥ãªãã£åé¡ãåŒãèµ·ãããŸãã
. (Nvidia 2070 S) , , 600W, ~500W. â 650W . , , â . , . â , ~$300. , . , (PS_ON) (COM). .
OSããŒãããŒããŒãæ¢ã
ãã¶ãŒããŒããã¡ãŒã ãŠã§ã¢ã«ã¯ãå€ããã·ã³ã®BIOSïŒBasic Input Output SystemïŒãšæ°ãããã·ã³ã®UEFIïŒUnified Extensible Firmware InterfaceïŒã®2çš®é¡ããããŸããWindows 10ã¯äž¡æ¹ããµããŒããããããã®éããæœè±¡åããŸããUEFIããã¡ãŒã ãŠã§ã¢ãããOSãšåŒã¶æ¹ãæ£ããã§ããããšãã°ãããã¹ãã§ã¯ãªãè±å¯ãªã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãããŠã¹ã®ååšãããå€ãã®äœ¿çšå¯èœãªã¡ã¢ãªãOSãã¡ã€ã«ã®ã»ãã¥ãªãã£ã¢ãã«ãšæ€èšŒã®æ¹åãBIOSã®ãããªå²ã蟌ã¿ã®ä»£ããã«ãAPIãä»ããããŒããŠã§ã¢ãšã®å¯Ÿè©±ãªã©ã®æ©èœãæäŸããããã§ãã
ãµã³ãã«BIOSã¢ãã¿ãŒç»é¢ã
BIOSããã°ã©ã ã¯ããµãŠã¹ããªããžã«æ¥ç¶ãããå¥ã®ãããã«ä¿åãããŸãããã®ãããã¯ãæ°ããããã°ã©ã ã§å ¥æããŠåãã©ãã·ã¥ããããšãã§ããŸããå®éãããã¯åãªãã¡ã¢ãªãã£ãªã¢ã§ãããç¬ç«ãããã€ã¯ãã³ã³ãã¥ãŒã¿ã§ã¯ãããŸããã
BIOSèšå®ïŒã·ã¹ãã æéãªã©ïŒã¯å¥ã®ãããã«ä¿åãããŸãããã®ãããã¯éåžžãäžžãããããªãŒã®è¿ãã«ãããŸããããã¯å®éã«ã¯ãPCã®å®è¡äžã«åå é»ããããªããŠã ããããªãŒã§ããããã¯CMOSãšåŒã°ããããã¯çžè£çãªéå±é žåç©åå°äœãæå³ãããã·ã¢èªã§ã¯åã«-CMOSãšåŒã°ããŸããããã¯çžè£çãªéå±é žåç©åå°äœæ§é ã§ãã
ãŸããBIOSããã°ã©ã ããµãã·ã¹ãã ããã§ãã¯ããŸãããã®æé ã¯POST -Power On SelfTestãšåŒã°ããŸãããã¹ãã¯çç¥ãŸãã¯å®äºã§ããBIOSèšå®ã§èšå®ãããŸãããŠã£ãããã£ã¢ãåŒçšãããšããããã®ãã¹ãã«ã¯æ¬¡ã®ãã®ã
å«ãŸããŸããç°¡ç¥åããããã¹ãã«ã¯æ¬¡ã®ãã®ãå«ãŸããŸãã
- ãã§ãã¯ãµã ã䜿çšããŠãROMå ã®BIOSããã°ã©ã ã®æŽåæ§ããã§ãã¯ããŸãã
- ã¡ã€ã³ã³ã³ãããŒã©ãŒãã·ã¹ãã ãã¹ãæ¥ç¶ãããããã€ã¹ïŒã°ã©ãã£ãã¯ã¢ããã¿ãŒããã©ã€ãã³ã³ãããŒã©ãŒãªã©ïŒã®æ€åºãšåæåãããã³ããã€ã¹ã®BIOSã«å«ãŸããããã°ã©ã ã®å®è¡ãšããããã®èªå·±åæåã®ä¿èšŒã
- RAMã®ãµã€ãºã決å®ããæåã®ã»ã°ã¡ã³ãïŒ64ãããã€ãïŒããã¹ãããŸãã
POSTã®å®å šãªèŠå¶ïŒ
- ãã¹ãŠã®ããã»ããµã¬ãžã¹ã¿ããã§ãã¯ããŸãã
- ROMã®ãã§ãã¯ãµã ããã§ãã¯ããŸãã
- ã·ã¹ãã ã¿ã€ããŒãšãµãŠã³ãã·ã°ããªã³ã°ããŒãã®ç¢ºèªïŒIBM PCã®å Žå-IC i8253ãŸãã¯åçã®ãã®ïŒã
- çŽæ¥ã¡ã¢ãªã¢ã¯ã»ã¹ã³ã³ãããŒã©ãã¹ãã
- RAMåçåšãã¹ã;
- BIOSã§åžžé§ããã°ã©ã ãæ圱ããããã®äžéšRAMé åã®ãã¹ãã
- åžžé§ããã°ã©ã ã®ããŒãã
- æšæºã®ã°ã©ãã£ãã¯ã¢ããã¿ãã¹ãïŒVGAãŸãã¯PCI-EïŒ;
- RAMãã¹ã;
- äž»ãªå ¥åããã€ã¹ïŒãããã¥ã¬ãŒã¿ã§ã¯ãªãïŒã®ãã¹ãã
- CMOSãã¹ã
- ã¡ã€ã³ããŒãLPT / COMã®ãã¹ãã
- ãããããŒãã£ã¹ã¯ãã©ã€ãïŒãããããŒãã£ã¹ã¯ãã©ã€ãïŒã®ãã¹ãã
- ããŒããã£ã¹ã¯ãã©ã€ãïŒHDDïŒã®ãã¹ãã
- BIOSæ©èœãµãã·ã¹ãã ã®èªå·±èšºæã
- å¶åŸ¡ãããŒãããŒããŒã«ç§»ããŸãã
ãã®ãã¹ãã®çµæããããããªã«ãŒããããŒããŒããæ©èœããŠããªããªã©ã®èª€åäœãæããã«ãªãå ŽåããããŸããã¢ãã¿ãŒç»é¢ãæ©èœããªãå Žåãããããããã¹ãçµæã¯ããŸããŸãªé«ãã®äžé£ã®ããŒãé³ãšããŠå ±åãããŸããããããæ£ç¢ºã«äœãæå³ãããã¯ããã¶ãŒããŒãã®ããã¥ã¡ã³ãã«èšèŒãããŠããã¯ãã§ããå€ãã³ã³ãã¥ãŒã¿ãŒã¯èµ·åæã«ããŒãé³ã鳎ããããšããããããŸããããã¯ããã¹ãçµæãå ±åããBIOSããã°ã©ã ã§ãããšã©ãŒçªå·ã瀺ãããã«ãè¿œå ã®ã€ã³ãžã±ãŒã¿ãŒã䜿çšã§ããå ŽåããããŸãã
ãã¹ãŠãããŸããã£ãå ŽåãBIOSã¯OSããŒãããŒããŒãæ€çŽ¢ããããã»ã¹ãéå§ããŸãããããè¡ãããã«ã圌ã¯ãã¶ãŒããŒãã«æ¥ç¶ãããŠãããã¹ãŠã®ããŒããã©ã€ãã®ã¹ãã£ã³ãéå§ããŸããç©çãã£ã¹ã¯äžã®ããŒã¿ã¯ãã»ã¯ã¿ãŒãšåŒã°ããåäœã§ã¢ãã¬ã¹æå®ãããéåžžã¯512ãã€ãã§ãããçŸåšã®æšæºã¯4096ãã€ãã§ãã Windowsã€ã³ã¹ããŒã©ãŒã¯ãç¹å¥ãªããã°ã©ã ã³ãŒããšããŒãã£ã·ã§ã³ããŒã¿ããã£ã¹ã¯ã®æåã®ã»ã¯ã¿ãŒã«æžã蟌ã¿ãŸãããã®ã»ã¯ã¿ãŒã¯ãã¹ã¿ãŒããŒãã¬ã³ãŒããšåŒã°ããŸãããã£ã¹ã¯ã¯ããŒãã£ã·ã§ã³ã«åå²ãããç¬èªã®ãã¡ã€ã«ã·ã¹ãã ã§ãã©ãŒããããããŸããæ倧4ã€ã®ããŒãã£ã·ã§ã³ããããããæ¡åŒµã§ããŸãïŒæ¡åŒµããŒãã£ã·ã§ã³ïŒãããã¯ååž°çã«4ã€ã®ã»ã¯ã·ã§ã³ã«åå²ã§ããçè«çã«ã¯ãã®æ°ã«å¶éã¯ãããŸããã BIOSããã¹ã¿ãŒããŒãã¬ã³ãŒããèŠã€ãããšããã«ãããããã³ãŒããèªã¿åããå¶åŸ¡ãããã«ç§»ããŸãããã®ã³ãŒãã¯ãããŒãã£ã·ã§ã³äžã®ããŒã¿ã亀äºã«èª¿ã¹ãŠãã¢ã¯ãã£ããšããŠããŒã¯ãããŠãããã®ãèŠã€ããŸããããã«ã¯ãWindowsããŒãããŒããŒã³ãŒããå«ãŸããŠããŸãïŒããã¯CïŒ\ Windows \ System32ïŒã®ããŒãã£ã·ã§ã³ã§ã¯ãããŸããïŒããã®ããŒãã£ã·ã§ã³ã¯ã·ã¹ãã ããŒãã£ã·ã§ã³ãšåŒã°ããŸããååãšããŠã100MBã䜿çšãããŠãŒã¶ãŒã«ã¯è¡šç€ºãããŸããããã®ã»ã¯ã·ã§ã³ã®æåã®ã»ã¯ã¿ãŒã«ã¯ãå¶åŸ¡ã転éãããããŒãã³ãŒããæ ŒçŽãããŸããããã¯ããªã¥ãŒã ããŒãã»ã¯ã¿ãŒã§ããããã®äžã®ã³ãŒãã¯Bootmgrãã¡ã€ã«ãæ€çŽ¢ããŸãããã®ãã¡ã€ã«ããWindowsããŒãããã»ã¹ãéå§ãããŸãã Bootmgrãã¡ã€ã«ã¯ãStartup.comãã¡ã€ã«ãšã®éã®åäžã®ãªã³ã¯ãä»ããŠäœæãããŸããBootmgr.exeã
ããã»ããµã¯ããRealããšåŒã°ããã¢ãŒãã§äœæ¥ãéå§ããŸããããã¯äºææ§ã¢ãŒãã§ãããCPUã¯ãä»®æ³ã¡ã¢ãªããµããŒãããŠããªãã£ãå€ã16ãããããã»ããµãšåãããã«åäœãã1MBã®ã¡ã¢ãªãã¢ãã¬ã¹æå®ã§ãã20ãããã¢ãã¬ã¹ãã¹ãä»ããŠç©çã¡ã¢ãªãšçŽæ¥åäœããŸãããåçŽãªMS-DOSããã°ã©ã ã¯ãã®ã¢ãŒãã§å®è¡ãããæ¡åŒµåã¯.COMã§ããã Startup.comïŒBootmgrïŒãæåã«è¡ãããšã¯ãããã»ããµããä¿è·ãã¢ãŒãã«åãæ¿ããããšã§ãããããã§ãä¿è·ãšã¯ãããã»ã¹ãçžäºã«ä¿è·ããããšãæå³ããŸãããã®ã¢ãŒãã§ã¯ãä»®æ³ã¡ã¢ãªãš32ãããã¢ãã¬ã¹ããµããŒããããŠããã4GBã®RAMãã¢ãã¬ã¹æå®ããããã«äœ¿çšã§ããŸãã次ã®ã¹ãããã§ãBootmgrã¯RAMã®æåã®16MBã®ä»®æ³ã¢ãã¬ã¹ããŒãã«ã«å ¥åããä»®æ³ã¢ãã¬ã¹ããç©çã¢ãã¬ã¹ãžã®å€æããªã³ã«ããŸãããã®ã¢ãŒãã§ã¯ãWindowsãæ©èœããŸãããã®æ®µéã§ã¯OSãµãã·ã¹ãã ããŸã äœæãããŠããªããããBootmgrã«ã¯NTFSãã¡ã€ã«ã·ã¹ãã ã®ç¬èªã®åçŽã§äžå®å šãªå®è£ ããããŸãããã®ãããã§ãOSããŒããã©ã¡ãŒã¿ã®èšå®ãæ ŒçŽããBCDãã¡ã€ã«ïŒããŒãæ§æããŒã¿ïŒãèŠã€ãããŸããBcdEdit.exeãŠãŒãã£ãªãã£ã䜿çšããŠç·šéã§ããŸãããããã®BCDèšå®ã¯ãWindowsãäŒæ¢ç¶æ ã«ãããBootmgrãããã°ã©ã ãéå§ããããšã瀺ããŠããå¯èœæ§ããããŸããWinResume.exeã¯ãHyberfil.sysãã¡ã€ã«ããã¡ã¢ãªã«ç¶æ ãèªã¿åãããã©ã€ããåèµ·åããŸããBCDãè€æ°ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããããšèšã£ãŠããå ŽåãBootmgrã¯ãããã®ãªã¹ãã衚瀺ãããŠãŒã¶ãŒã«éžæãæ±ããŸããOSã1ã€ããå ŽåãBootmgrã¯WinLoad.exeãèµ·åããŸãããã®ããã»ã¹ã¯ãWindowsãåæåããäž»ãªäœæ¥ãå®è¡ããŸãã
- é©åãªWindowsã«ãŒãã«ããŒãžã§ã³ãéžæããŸããå®éã«ã¯NtOsKrnl.exeãšåŒã°ããŠããŸãããWindows10.exeãšèããããšãã§ããŸããã©ã®ããŒãžã§ã³ããããŸããïŒãŠã£ãããã£ã¢ã«ãããšïŒ
- ntoskrnl.exeã¯ãã·ã³ã°ã«ããã»ããµã®Windowsã«ãŒãã«ã§ããPAEãµããŒããªã
- ntkrnlmp.exeïŒè±èªã®NTã«ãŒãã«ããã«ãããã»ããµããŒãžã§ã³ïŒ-Windowsãã«ãããã»ããµã«ãŒãã«ãPAEãµããŒããªã
- ntkrnlpa.exe â Windows PAE.
- ntkrpamp.exe â Windows PAE.
- HAL.dll (Hardware Abstraction Layer), CPU.
- vgaoem.fon
- , . National Language System.
- SYSTEMã¬ãžã¹ããªãã¡ã¢ãªã«ããŒãããŸããããã«ã¯ãããŒããããã©ã€ãã«é¢ããæ å ±ãå«ãŸããŠããŸãããã¹ãŠã®ãã©ã€ããŒã«é¢ããæ å ±ã¯ãHKLM \ SYSTEM \ CurrentControlSet \ Services \ã«ãããŸããããŒãããå¿ èŠã®ãããã©ã€ããŒã«ã¯ãstart = SERVICE_BOOT_STARTïŒ0ïŒããŒããããŸããã¬ãžã¹ããªããã€ã¹ã«ã€ããŠã¯ãå¥ã®èšäºã§èª¬æããŸãã
- ãã©ã€ããã¡ã€ã«ãé 眮ãããŠããããŒãã£ã·ã§ã³ã®ãã¡ã€ã«ã·ã¹ãã ãã©ã€ããããŒãããŸãã
- ãã©ã€ããã¡ã¢ãªã«ããŒãããŸããã埪ç°äŸåé¢ä¿ã®ããããŸã åæåãããŠããŸããã
- æåã®ã¹ãããã§éžæããWindowsã«ãŒãã«ïŒNtOsKrnl.exeïŒãå®è¡ããããã«CPUã¬ãžã¹ã¿ãæºåããŸãã
ãã©ã€ããããŒãããããšãWinLoadã¯ããžã¿ã«çœ²åããã§ãã¯ããããããäžèŽããªãå Žåã¯ãéïŒBSODïŒãŸãã¯ç·ïŒGSODãã€ã³ãµã€ããŒãã¬ãã¥ãŒã¢ã»ã³ããªã®å ŽåïŒã®ãæ»ã®ç»é¢ãã衚瀺ãããŸãã
UEFIã§å®è¡
UEFI
BIOSããŒãç»é¢ã®äŸã¯30幎以äžåããããããã®æ¬ é¥ãä¿®æ£ããããã«ãIntelã¯1998幎ã«Intel Boot InitiativeãäœæããåŸã«EFIã«ååãå€æŽãã2005幎ã«EFIãã©ãŒã©ã ã«å¯ä»ããŸããã BIOSã®ãã¡ãªããïŒ
â¢16ãããã¢ãŒãã§
ã®ã¿æ©èœããŸãâ¢1Mbã®RAMããã¢ãã¬ã¹æå®ã§ããŸãã
â¢äºææ§ã®åé¡ããã°ãã°çºçã
ãŸãâ¢MBRã¯4ã€ã®ã¡ã€ã³ãã£ã¹ã¯ããŒãã£ã·ã§ã³ã®ã¿ã«å¶éãã
ãŸãâ¢OSãã£ã¹ã¯ã¯2.2Tbãè¶ ããããšã¯ã§ããŸããã
â¢OSããŒãããŒããŒãæ€èšŒããããã®æ©èœãéåžžã«å¶éãããŠããŸãã
BIOSã¯UEFIã«çœ®ãæããããŸãããå®éãBIOSã¯32ããããš64ãããã®äž¡æ¹ã§å®è¡ã§ãããããã¥ã¢OSã§ããäºææ§ã®ããã«ããªãã·ã§ã³ã®äºææ§ãµããŒãã¢ãžã¥ãŒã«ããããŸããèšå®ã«å«ãŸããBIOSããšãã¥ã¬ãŒãããŸãã
UEFIã§ã¯ãããŒãã¯ããã»ããµã®ãã€ãã£ãããããã¹ïŒ32ãŸãã¯64ïŒã§çºçãããã¹ãŠã®ã¡ã¢ãªã«ã¢ã¯ã»ã¹ã§ããä»®æ³ã¡ã¢ãªããµããŒããããã»ãã¥ã¢ããŒããæå¹ã«ãªããOSã®ããŒããéå§ããåã«ãã«ãŠã§ã¢å¯Ÿçãå®è¡ã§ããŸããUEFIã§ã®OSã®èµ·åé åºïŒ
- ãã¡ãŒã ãŠã§ã¢ã®åæåãšèµ·åããããã»ããã®èµ·åã
- BIOSãšåæ§ã®POSTãã¹ã
- EFIãã©ã€ããŒã®ããŒããšEFIé©æ ŒããŒããã£ã¹ã¯ã®æ€çŽ¢
- EFIãšããååã®ãã©ã«ããŒãæ€çŽ¢ããŸããUEFIä»æ§ã§ã¯ãFATãã¡ã€ã«ã·ã¹ãã çšã«ãã©ãŒããããããã100MBã1GBã®ãµã€ãºããŸãã¯ãã£ã¹ã¯ãµã€ãºã®1ïŒ
以äžã®EFIã·ã¹ãã ããŒãã£ã·ã§ã³çšã®ããŒãã£ã·ã§ã³ãå¿
èŠã§ããã€ã³ã¹ããŒã«ãããŠããåWindowsã«ã¯ããã®ããŒãã£ã·ã§ã³ã«ç¬èªã®ãã£ã¬ã¯ããªïŒEFI \ MicrosoftïŒããããŸãã
- UEFI NVRAM ( ) .
- EFI/Microsoft/Boot/BootMgrFw.efi.
- BootMgrFw.efi BCD, BCD. WinLoad.efi, C:\Windows\System32\winload.efi.
EFIã·ã¹ãã ããŒãã£ã·ã§ã³ã® å 容ã衚瀺ããã«ã¯ã管çè æš©éïŒWinKey + X => Windows PowerShellïŒç®¡çè ïŒïŒã§ã³ã³ãœãŒã«ãéããmountvol ZïŒ/ sãZïŒãdirã³ãã³ããå®è¡ããŸããCD-ãã£ã¬ã¯ããªãå€æŽããŸãã
ãã®BIOSã®å¯Ÿå¿ãããUEFIã®ããã®BOOTMGRãšWinLoadã³ã³ããŒãã³ãéã®äž»ãªéãã¯ã圌ãã䜿çšããŠããããšã§ããEFIã®APIã§ã¯ãªãBIOSã®å²ã蟌ã¿ã®ããšã®ãã©ãŒãããMBR BIOSãšEFIã·ã¹ãã ããŒãã£ã·ã§ã³ã®ããŒãããŒãã£ã·ã§ã³ãéåžžã«ç°ãªã£ãŠããŸãã
ã«ãŒãã«ã®åæå
ããŒããŒãã®ã³ã³ããã¹ãã§PCãããŒãããããšãæ€èšããŠããã®ã§ããã¹ãŠã®æ®µéã«éäžããã¹ãã§ã¯ãªãããšãæãåºããŠãã ããããã®ããã»ã¹ã®ã©ãã«ããŒããŒããããããç解ããå¿ èŠããããç解ããããã«éèŠãªæ®µéã匷調ãããŠããŸãã
åã®æ®µéã§ãWinLoad.exe / WinLoad.efiã³ã³ããŒãã³ããèµ·åãããŸãããããã¯ãWinLoadãäœæ¥äžã«åéããã°ããŒãã«å€æ°ntïŒKeLoaderBlockïŒã«ãŒãã«ã¢ãŒãã¡ã¢ãªã¯ãã¹ãŠã®ããã»ã¹ã§äœ¿çšå¯èœïŒã§ããŒããã©ã¡ãŒã¿ãæå®ããããšã«ãããNtOsKrnl.exeãèµ·åããŸããããããå«ãŸããŸãïŒ
- SystemïŒWindowsããŒãããŒããŒïŒããã³BootïŒCïŒ\ Windows \ System32ïŒãã£ã¬ã¯ããªãžã®ãã¹ã
- WinLoadã«ãã£ãŠäœæãããä»®æ³ã¡ã¢ãªããŒãã«ãžã®ãã€ã³ã¿
- æ¥ç¶ãããããŒããŠã§ã¢ã®èª¬æãå«ãããªãŒãHKLM\ HARDWAREã¬ãžã¹ããªããŒãäœæããããã«äœ¿çšãããŸãã
- ããŠã³ããŒãããã¬ãžã¹ããªHKLM \ Systemã®ã³ããŒ
- Windowsã®èµ·åã«åå ããŠããããŒããããïŒãã ãåæåãããŠããªãïŒãã©ã€ããŒã®ãªã¹ããžã®ãã€ã³ã¿ãŒã
- ããŠã³ããŒãã«å¿ èŠãªãã®ä»ã®æ å ±ã
Windowsã«ãŒãã«ã¯2段éã§åæåãããŸããããã«å ç«ã£ãŠãããŒããŠã§ã¢æœè±¡åã¬ã€ã€ãŒãåæåãããŸããããã«ãããç¹ã«ãåCPUã®å²ã蟌ã¿ã³ã³ãããŒã©ãŒãæ§æãããŸãã
åã段éã§ãBSODã®ã¡ãã»ãŒãžãå«ãæååãã¡ã¢ãªã«èªã¿èŸŒãŸããŸããããã¯ãèœäžæã«ã¢ã¯ã»ã¹ã§ããªãããç ŽæããŠããå¯èœæ§ãããããã§ãã
- ã«ãŒãã«åæåã®æåã®ãã§ãŒãºïŒ
- Executive â , , . Windows SKU (Stock Keeping Unit), Windows 10 SKU â Home, Pro, Mobile, Enterprise, Education.
- Driver Verifier, .
- , API (memory services), .
- (kernel debugger) .
- Windows.
- Object Manager â . â . handle table, HWND .
- Security Reference Monitor .
- Process Manager . Idle System ( âWindows10.exeâ NtOsKrnl.exe), , .
- User-Mode Debugging Framework.
- Plug and Play Manager. PnP â , . .
- . 51 , :
- System (NtOsKrnl.exe) . . â 31.
- HAL .
- Windows Startup Screen, progress bar.
- Executive Semaphore, Mutex, Event, Timer.
- User-Mode Debugger .
- symbolic link \SystemRoot.
- NtDll.dll . Windows APIs.
- .
- Windows ALPC . named pipes Windows Communication Foundation .
- I/O Manager, . .
Windows Management Instrumentation Event Tracing for Windows ( Windows Performance Analyzer). . - SMSS.exe (Session Manager Sub System). , Windows.
â SMSS, CSRSS, WinInit
SMSS.exeã¯ãŠãŒã¶ãŒããã»ã¹ãšã¯ç°ãªãããã€ãã£ãããã»ã¹ã§ãããããè¿œå ã®æš©éãä»äžãããŸãã SMSS.exeã¯ãWindows APIããã€ãã¹ããŠã«ãŒãã«ãšé£æºãããã€ãã£ãAPIãšåŒã°ãããã®ã䜿çšããŸãã Windows APIã¯ããã€ãã£ãAPIã®ã©ãããŒã§ãã SMSS.exeã¯ãæåã«Windowsãµãã·ã¹ãã ïŒCSRSS.exe-ã¯ã©ã€ã¢ã³ããµãŒããŒã©ã³ã¿ã€ã ãµãã·ã¹ãã ïŒãèµ·åããã¬ãžã¹ããªã®åæåãçµäºããŸãã
SMSS.exeããã»ã¹ãšã¹ã¬ããã¯ã¯ãªãã£ã«ã«ãšããŠããŒã¯ãããŠããŸããã€ãŸãããšã©ãŒãªã©ãåå ã§äºæããçµäºããå Žåãã·ã¹ãã ãã¯ã©ãã·ã¥ããŸãããµãã·ã¹ãã ãšéä¿¡ããããã«ãããšãã°ãæ°ããã»ãã·ã§ã³ãäœæããAPIåŒã³åºãã®ããã«ãSMSSã¯SmApiPortãšããååã®ALPCããŒããäœæããŸã..ãç°å¢å€æ°ãã¬ãžã¹ããªããããŒããããCheck DiskïŒautochk.exeããããã®ããã°ã©ã ã¯ã¬ãžã¹ããªHKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ BootExecuteã«æžã蟌ãŸããŸãïŒãªã©ã®ããã°ã©ã ãèµ·åãããŸãã SMSS.exeã¯ããŠãŒã¶ãŒã»ãã·ã§ã³ããšã«èµ·åãããŸããä»®æ³ã¡ã¢ãªã¡ã«ããºã ã«ãããåã»ãã·ã§ã³ã«ã¯ç¬èªã®ã°ããŒãã«å€æ°ïŒã¡ãã»ãŒãžãã¥ãŒãªã©ïŒããããŸãã Windowsã«ã¯ãã¹ã¬ãããããã»ã¹ãããã³ã»ãã·ã§ã³ã®ã³ã³ããã¹ãããããŸããåSMSS.exeã¯ããµãã·ã¹ãã ã®ç¬èªã®ã€ã³ã¹ã¿ã³ã¹ãéå§ããŸããçŸæç¹ã§ã¯CSRSS.exeïŒWindowsïŒã®ã¿ã§ãããéå»ã«ã¯OS / 2ïŒos2ss.exeïŒããã³POSIXïŒpsxss.exeïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããµããŒããããŠããŸãããããã®ã¢ã€ãã¢ã¯æåããŸããã§ãããæåã®SMSS.exeã¯ãWinInit.exeããã»ã¹ãåŸ ã£ãŠã¹ãªãŒãç¶æ ã«ãªããŸããæ®ãã®ã€ã³ã¹ã¿ã³ã¹ã¯ã代ããã«ãã°ã€ã³UIã衚瀺ããWinLogonããã»ã¹ãäœæããŸãã
WinInit.exeã¯ãã°ã©ãã£ã«ã«ã·ã§ã«ãäœæããããã®ãµãã·ã¹ãã ãåæåããŸã-Windows Stationãšãã¹ã¯ããããããã¯è¡šç€ºããããã¹ã¯ãããã§ã¯ãªããç°ãªãWindowsã®æŠå¿µã§ãã次ã«ãããã»ã¹ãéå§ããŸãã
- Services.exe - Services Control ManagerïŒSCMïŒã¯ãAutoStartãšããŠããŒã¯ããããµãŒãã¹ãšãã©ã€ããŒãéå§ããŸãããµãŒãã¹ã¯svchost.exeããã»ã¹ã§éå§ãããŸããtlist.exe -sãã©ã¡ãŒã¿ãŒãæå®ããŠå®è¡ãããšãåsvchost.exeå ã®ãµãŒãã¹ã®ååãã³ã³ãœãŒã«ã«åºåããtlist.exeãšãããŠãŒãã£ãªãã£ããããŸãã
- LSASS.exe-ããŒã«ã«ã·ã¹ãã ãªãŒãœãªãã£ã
- LSM.exe-ããŒã«ã«ã»ãã·ã§ã³ãããŒãžã£ãŒã
WinLogon.exe-è³æ Œæ å ±ãããã€ããŒãããŒãããŸããè³æ Œæ å ±ãããã€ããŒã«ã¯ããã¹ã¯ãŒããSmartcardãPINãHelloFaceãªã©ããããŸããLogonUI.exeããã»ã¹ãçæããŸããããã«ããããŠãŒã¶ãŒã«èªèšŒçšã®ã€ã³ã¿ãŒãã§ã€ã¹ã衚瀺ãããå ¥åãããããŒã¿ïŒãã°ã€ã³ãšãã¹ã¯ãŒããPINïŒãæ€èšŒãããŸãã
ãã¹ãŠãããŸããã£ãå ŽåãWinLogonã¯ã¬ãžã¹ããªããŒHKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ WinLogon \ Userinitã§æå®ãããããã»ã¹ãéå§ããŸããããã©ã«ãã§ã¯ãããã¯UserInit.exeããã»ã¹ã§ããã次ã®ããã«ãªããŸãã
- ã¬ãžã¹ããªã§æå®ãããã¹ã¯ãªãããå®è¡ããŸãã
- HKCU \ãœãããŠã§ã¢\ããªã·ãŒ\ Microsoft \ Windows \ã·ã¹ãã \ã¹ã¯ãªãã
- HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ System \ Scripts
- User Profile Quota, %SystemRoot%\System32\Proquota.exe
- Windows, Explorer.exe. :
- HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
WinLogonã¯ããã°ã€ã³ãããŠãŒã¶ãŒã«ã€ããŠãããã¯ãŒã¯ãããã€ããŒã«éç¥ããã¬ãžã¹ããªã«ä¿åãããŠããã·ã¹ãã ãã£ã¹ã¯ãšããªã³ã¿ãŒã埩å ããŠæ¥ç¶ããŸãããããã¯ãŒã¯ãããã€ããŒã¯ãsvchost.exeããã»ã¹ã«ãã£ãŠãã¹ããããŠããã·ã¹ãã ãã©ã«ããŒã®mpr.dllãã¡ã€ã«ã§ããWindowsãµãŒãã¹ã ããã»ã¹ããªãŒã¯æ¬¡ã®ããã«ãªãã誰ã誰ãäœæãããã確èªã§ããŸãïŒãã¹ãŠã®ããã»ã¹ã衚瀺ãããŠããããã§ã¯ãªããææ°ããŒãžã§ã³ã®Windowsãšã¯è¥å¹²ç°ãªãå ŽåããããŸãïŒã
ããã®ããŒããŒãã¯ã©ãã«ãããŸããïŒ
èµ·åæã«ãWindowsã«ãŒãã«ã¯ã¬ãžã¹ããªããã·ã¹ãã ãã¹ã³ã³ãããŒã©ãŒã«é¢ããæ å ±ãèªã¿åããŸããååãšããŠãããã¯PCIãã¹ïŒMSIã®å Žåã¯å°ãªãïŒã§ãããUSBãPS / 2ãå«ãI / OããŒãã³ã³ãããŒã©ãŒãæ¥ç¶ãããŸããããã«é¢ããæ å ±ã¯ãWindowsã®ã€ã³ã¹ããŒã«äžã«èšé²ãããŸããã·ã¹ãã ã¯ãã®ãã©ã€ããŒãããŒããããã¹ãŠã®ããŒããååž°çã«ãã€ãã¹ããããŒãããšã«ç¬èªã®ãã©ã€ããŒãããŒãããŸãããã©ã€ããŒã¯ãã©ã€ããŒããŒãã«çµã¿åãããããšãã§ããŸããããšãã°ãããŒããŒããã©ã€ããŒã¯PS2ããŒããã©ã€ããŒã«æ¥ç¶ãããŸãããã ããUSBããŒãã¯ãã£ãšè€éã§ããæåã«ããŒããã©ã€ããŒã次ã«HIDãããã³ã«ãæäœããããã®ãã©ã€ããŒããããŠããŒããŒãã ãã§ãã
åããŒãã¯ãæ¥ç¶ãç£èŠããCPUãšããã€ã¹éã§ä¿¡å·ãéåä¿¡ããç¬èªââã®ãããã«ãã£ãŠå¶åŸ¡ãããŸããã©ãããããã§ããè¡ãããããã«ããµãŠã¹ããªããžãããã»ãããCPUã«çµã¿èŸŒãŸããŠããªããããã¶ãŒããŒãäžã«å¥åã®ããããšããŠååšããå Žåã¯ããµãŠã¹ããªããžãšããŒãã³ã³ãããŒã©ãŒéã®ä¿¡å·ãšèšãæ¹ãæ£ããã§ããããå¶åŸ¡ããŒããããã«ã¯ãå²ã蟌ã¿ã³ã³ãããŒã©ãŒïŒPICãŸãã¯APICïŒãåããå°çšã©ã€ã³ããããããŒããŒãããããŒã¿ãèªã¿åããªã©ãCPUã«æ³šæãæãããã«èŠæ±ã§ããŸãïŒPS / 2ããŒããUSBã¯å¥ã®è©±ã§ãïŒã OSã¯ããŒãã®ãã©ã€ããŒãããŒãããŠãããããOSã«ã³ãã³ããçºè¡ããããããŒã¿ãèªã¿åã£ããéä¿¡ãããã§ããŸãããã®äŸã§ã¯ããã©ã€ããŒã¯CïŒ\ Windows \ System32 \ i8042prt.sysããããŒããããŸãããåã®èšäºãæãåºããŠã¿ãŸãããã PICããããäžã«ããå€ãã³ã³ãã¥ãŒã¿ãŒã®å ŽåIntel 8259ã«ã¯15ã®å²ã蟌ã¿ã©ã€ã³ããããããŒããŒãã¯IRQ1ãã³ãIRQ0ã¿ã€ããŒã«æ¥ç¶ãããããŠã¹ã¯IRQ12ã«æ¥ç¶ãããŸãããIRQ12ã¯å®éã«ã¯2çªç®ã®8259ãããã®5çªç®ã®ã¬ãã°ã§ãããæåã®ã³ã³ãããŒã©ãŒã®IRQ2ãã³ãä»ããŠå²ã蟌ã¿ãå€éåããŸãããææ°ã®PICã¯ãå²ã蟌ã¿ä¿¡å·çšã«255ãã³ãæã€ããšãã§ããŸããèµ·åäžãOSã¯APIC / PICãããã°ã©ã ããŠãããšãã°ããŒããŒããŸãã¯USBããŒãããå²ã蟌ã¿ãå°çãããšãã«ç¹å®ã®çªå·ãè¿ãããã®çªå·ã«ãã£ãŠCPUã¯å²ã蟌ã¿ãã¯ãã«ããŒãã«ã§å®è¡ãããé¢æ°ãèŠã€ããŸããå²ã蟌ã¿çªå·ã¯HALãšPlug'n'PlayManagerã«ãã£ãŠæ±ºå®ãããŸã..ãå²ã蟌ã¿ã³ã³ãããŒã©ãŒã¯ãç¹å®ã®é åºã§ãã³ã®ä¿¡å·ãæ¢ããŸããããšãã°ãç¡éã«ãŒãã§ã¯ã1ããMAX_PINãŸã§ã®ãã³ã®é»å§ããã§ãã¯ããŸãããã®é åºã«ãã£ãŠåªå 床ã決ãŸããŸããããšãã°ãããŒããŒãã¯ããŠã¹ã®åã«è¡šç€ºãããã¿ã€ããŒã¯ããŒããŒãã®åã«è¡šç€ºãããŸããå²ã蟌ã¿ã³ã³ãããŒã©ãŒã®åäœã®ç¹æ§ã«äŸåããªãããã«ãWindowsã¯IRQLïŒå²ã蟌ã¿èŠæ±ã¬ãã«ïŒã§IRQïŒå²ã蟌ã¿èŠæ±ïŒã®æŠå¿µãæœè±¡åããŸããå²ã蟌ã¿ã³ã³ãããŒã©ãŒã«å°ãªããšã15è¡ãŸãã¯255è¡ãããå Žåããããã¯ãã¹ãŠx86ã®å Žåã¯32 IRQLã«ãx64ããã³IA64ã®å Žåã¯15IRQLã«ããããããŸãã
- é«-ã·ã¹ãã ãã¯ã©ãã·ã¥ãããšãéåžžã¯KeBugCheckExé¢æ°ãåŒã³åºãããŸãã
- é»æºé害-䜿çšãããŠããŸãããããšããšã¯WindowsNTçšã«èšèšãããŸããã
- Interprocessor Interrupt â CPU , TLB cache, system shutdown, system crash (BSOD).
- Clock â , .
- Profile â real-time clock (local APIC-timer) kernel-profiling .
- Device 1 ⊠Device N â I/O. , DPC (Deferred Procedure Call), . Dispatch DPC
- Dispatch DPC â .
- APC â Asynchronous Procedure Call. WaitForSingleObject, Sleep .
- Passive/Low â User Mode.
ãã¹ãŠã®ãŠãŒã¶ãŒããã°ã©ã ã¯ããã·ã/äœïŒ0ïŒåªå 床ã§å®è¡ããããããåžžã«ãŠãŒã¶ãŒã¢ãŒãã§ããã°ã©ãã³ã°ããããšãããå ŽåãIRQLã«ã€ããŠèããããšã¯ãããŸãããlshimåªå 床ã¬ãã«ã«é¢ããã€ãã³ãïŒããŒããŒãã€ãã³ããã¹ã¬ããã¹ã±ãžã¥ãŒã©ã¿ã€ããŒïŒãbã§çºçãããšããã«ãããã»ããµã¯äžæãããã¹ã¬ããã®ç¶æ ïŒCPUã¬ãžã¹ã¿å€ïŒãä¿åãããã£ã¹ãããã£å²ã蟌ã¿ïŒå²ã蟌ã¿ãã£ã¹ãããã£ãåãªãé¢æ°ïŒãåŒã³åºããŠãIRQLåªå 床ãäžããŸããHALã®KeRaiseIrqlAPIãä»ããŠãå²ã蟌ã¿ã®ãµãŒãã¹ã«ãŒãã³èªäœãçŽæ¥åŒã³åºããŸãããã®åŸãCPUã®IRQLã¯KeLowerIrqlé¢æ°ã«ãã£ãŠåã®ã¬ãã«ã«äžããããŸãäžæãããã¹ã¬ããã¯ãäžæãããã®ãšåãå ŽæããåŠçãéå§ããŸããã¹ã¬ããã¹ã±ãžã¥ãŒã©ã¯ãã®ã¡ã«ããºã ã«åºã¥ããŠããŸããç¹å®ã®ééïŒã¿ã€ã ã¹ã©ã€ã¹ïŒã§ãDPC /ãã£ã¹ãããïŒ2ïŒåªå 床ã®å²ã蟌ã¿ãçæãããã®å²ã蟌ã¿ã®ãµãŒãã¹ã«ãŒãã³ã§ãç¹å®ã®ã¢ã«ãŽãªãºã ã«åŸã£ãŠãå®è¡çšã®æ°ããã¹ã¬ãããå²ãåœãŠãã¿ã€ããŒãèšå®ããŸãã
IRQLã¡ã«ããºã ã¯ãããŒããŠã§ã¢ã§ã¯ãªããããŒããŠã§ã¢æœè±¡åã¬ã€ã€ãŒïŒHAL.dllïŒã®ãœãããŠã§ã¢ã¬ãã«ã§å®è£ ãããŸãã Windowsã·ã¹ãã ã«ã¯ãã¹ãã©ã€ããŒããããŸãïŒããã¹ã«æ¥ç¶ãããŠããããã€ã¹ïŒPCIãUSBãªã©ïŒã®ååšãšãåããã€ã¹ã«å²ãåœãŠãããšãã§ããå²ã蟌ã¿çªå·ã決å®ããŸãããã¹ãã©ã€ãã¯ããã®æ å ±ããã©ã°ã¢ã³ããã¬ã€ãããŒãžã£ã«äŒéããŸãããã©ã°ã¢ã³ããã¬ã€ãããŒãžã£ã¯ãåããã€ã¹ã«å²ãåœãŠãå²ã蟌ã¿çªå·ããã§ã«æ±ºå®ããŠããŸããããã«ãPnP Mgrå ã®å²ã蟌ã¿ã¢ãŒãã¿ãŒïŒPnPå²ã蟌ã¿ã¢ãŒãã¿ãŒïŒã¯ãIRQãšIRQLã®éã®ãªã³ã¯ã確ç«ããŸãã
ããŒããŒãå²ã蟌ã¿ãå°çãããšãçŸåšå®è¡äžã®ã¹ã¬ããïŒããã¯ããã°ã©ã ã§ããå¯èœæ§ããããŸãïŒããããåŠçããããã«å²ãåœãŠãããŸããå²ã蟌ã¿ãã£ã¹ãããã£ã¯ãCPUIRQLã®åªå 床ãDevice1-DeviceNã¬ãã«ã®1ã€ã«äžããŸãããã®åŸãä»®æ³ã¡ã¢ãªãããŒãžã£ã¯ãããŒãžãRAMã«ããŒããããŠããªãå ŽåãããŒãžãèŠã€ããããšãã§ããªããªããŸãïŒããŒãžé害ãåŠçã§ããªããªããŸãïŒãïŒãã¹ã¬ããã¹ã±ãžã¥ãŒã©ã¯ãã¹ãŠäœãIRQLã§å®è¡ããããããå®è¡ãäžæã§ããŸãããçŸæç¹ã§ã®ããŒããŒããã©ã€ãã®äž»ãªã¿ã¹ã¯ã¯ãåä¿¡ããããŒã¿ãèªã¿åããããã«åŠçããããã«ä¿åããããšã§ããããŒã¿ã¯ã¿ã€ã_DPCïŒDeferred Procedure CallïŒã®ãªããžã§ã¯ãã«æžã蟌ãŸããDPCã¹ããªãŒã ã®ãªã¹ãã«ä¿åãããŸãïŒOSã«ãŒãã«ã§ã¯ãé åã®ä»£ããã«ãªã³ã¯ãªã¹ãã䜿çšãããŸããstd :: list <DPC>ã®ãããªãã®ã䜿çšãããŸãïŒããã¹ãŠã®å€éšããã€ã¹ããã®å²ã蟌ã¿ãåŠçããããšããã«ãã¹ã¬ããã®IRQLã¯ãé 延ããã·ãŒãžã£ïŒDPCïŒãåŠçãããDPCã¬ãã«ã«äžããããŸããããŒããŒãDPCãã³ãã©ãŒã³ãŒãã¯ãããŒããŒããã©ã€ããŒKbdclass.sysããé¢æ°ãåŒã³åºããŸãã
VOID KeyboardClassServiceCallback(
_In_ PDEVICE_OBJECT DeviceObject,
_In_ PKEYBOARD_INPUT_DATA InputDataStart,
_In_ PKEYBOARD_INPUT_DATA InputDataEnd,
_Inout_ PULONG InputDataConsumed
);
ãããã£ãŠãããŒããŒããã©ã€ãïŒkbdclass.sysïŒã¯ãå²ã蟌ã¿ãä»ããŠããŒãïŒUSBãPS2ïŒããããŒã¿ãåä¿¡ããWriteFileãä»ããŠããŒã¿ãæžã蟌ã¿ãŸããããã«ãããWindowsã«ãŒãã«å ã®ã³ã³ããŒãã³ããèµ·åããReadFile APIã䜿çšããŠããŒã¿ãèªã¿åããããŒããŒãããã®ã¡ãã»ãŒãžããã¥ãŒã«è¿œå ããŸãããã¡ã€ã«APIã䜿çšããŠããã©ã€ããŒããããŒã¿ãèªã¿åãããšãã§ããŸãããã®ç¬éãããWindowså ¥åã¹ã¿ãã¯ã«ããããŒã¿ã®åŠçãéå§ãããŸããããã«ã€ããŠã¯æ¬¡ã®èšäºã§è©³ãã説æããŸãã
PS2ããŒããåããPCããããã«ãŒãã«ã¢ãŒãã§WinDbgã䜿çšããæ¹æ³ãç¥ã£ãŠããå Žåã¯ãïŒIdtãšå ¥åãããšãããŒããŒãã®å²ã蟌ã¿ãã³ãã©ãŒãç°¡åã«èŠã€ããããšãã§ããŸããããã«ãããå²ã蟌ã¿ãã¯ãã«ããŒãã«å šäœã衚瀺ãããŸãã..ãäžæã¯ããèªäœãããã°ã©ã ã®éçšã«æŒã蟌ã¿ãŸããããã§ã®åèªãã¯ãã«ã¯ãæ¹åãããã°ã©ã å®è¡ã®æ¹åãæå³ããŸãã WinDbgã¯Windowsãããã°çšã«ç¹å¥ã«äœæããããã®ã§ãææ°ããŒãžã§ã³ã¯WinDbgXãšåŒã°ããŸãã Visual Studioã«æ £ããŠãã人ãæããããããã¹ãããŒã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ãåããŠããŸãããç¹ã«ã¹ã¯ãªããã®å®è¡ãªã©ãããã«å€ãã®ãªãã·ã§ã³ãæäŸããŸãã玫è²ã®PS2ããŒãå²ã蟌ã¿ã¯èµ€ã§åŒ·èª¿è¡šç€ºãããŠããŸãããããåŠçããé¢æ°ã¯I8042KeyboardInterruptServiceãšåŒã°ããi8042prt.sysãã¡ã€ã«ã«ãããŸãã
BOOLEAN
I8042KeyboardInterruptService(
IN PKINTERRUPT Interrupt,
IN PVOID Context
);
Routine Description:
This is the interrupt service routine for the keyboard device when
scan code set 1 is in use.
Arguments:
Interrupt - A pointer to the interrupt object for this interrupt.
Context - A pointer to the device object.
Return Value:
Returns TRUE if the interrupt was expected (and therefore processed);
otherwise, FALSE is returned.
ããã§ãå²ã蟌ã¿ãã³ãã©ãŒã¯ã©ãããåŒæ°ãååŸããã®ããšããçåãçããŸãã誰ãéä¿¡ããŠããŸããïŒçµå±ã®ãšãããCPUã¯ããã«ã€ããŠäœãç¥ããŸããã圌女ã®ãã¬ãŒã¯ãã€ã³ããèšå®ãããšãã¹ã¿ãã¯ã®äžäœã«ããã€ãã®æ©èœã衚瀺ãããããã«é©ããŸãã
ã0ïŒkd> kC
åŒã³åºããµã€ãã®æ°
00i8042prt I8042KeyboardInterruptServiceïŒ
01 nt KiCallInterruptServiceRoutineïŒ
02 nt KiInterruptSubDispatchïŒ
03 nt KiInterruptDispatchïŒ
04 nt KiIdleLoopïŒ
説æã¯ç°¡åã§ããããã»ããµã®IDTã¬ãžã¹ã¿ã«æ ŒçŽãããŠããé¢æ°ã§ã¯ãããŸãããäžã®åçã«è¡šç€ºãããŠããã®ã¯ãå®éã«ã¯ã¿ã€ã_KINTERRUPTã®ãªããžã§ã¯ãã§ãã..ãå²ã蟌ã¿ããŒãã«ã«ã¯ãã¡ã¢ãªå ã®å²ã蟌ã¿ã説æãããªããžã§ã¯ããèŠã€ããæ¹æ³ãç¥ã£ãŠããç¹å¥ãªã¢ã»ã³ããªã³ãŒãïŒntïŒKiIdleLoopïŒãå«ãŸããŠããŸããäœããããããã§ããïŒ
- .
- i8042prt!I8042KeyboardInterruptService, PS2 IN AL, 0x60 â 0x60 AL.
- dispatcher â â2 .
- CPU. CPU , .
- . , Windows . IRQL (Interrupt Request Level) â IRQ.
ããŒããŒãå²ã蟌ã¿ãã³ãã©ãŒãåŒã³åºããããšããã«ãåä¿¡ããããŒã¿ãããŒããŒããã©ã€ããŒã«éç¥ãããŸãããã®åŸãOSã«ãŒãã«ã«éç¥ãããããŒã¿ãåŠçããåŸãå ¥åã¹ã¿ãã¯ã«æ²¿ã£ãŠããã«éä¿¡ãããå¿çããã¢ããªã±ãŒã·ã§ã³ã«é ä¿¡ããããããã®åã«ãã³ãã©ãŒã«é ä¿¡ãããŸããèšèªïŒã¢ãžã¢æåãèªåä¿®æ£ãèªåå®äºïŒã
OSã«ãŒãã«ã¯ããŒããŒããã©ã€ããŒãšçŽæ¥å¯Ÿè©±ããŸããããã®ç®çã®ããã«Plug'n'PlayManagerã䜿çšãããŸãããã®ã³ã³ããŒãã³ãã¯ãããã€ã¹ãè¿œå ãŸãã¯åé€ããããšãã«æäŸãããã³ãŒã«ããã¯é¢æ°ãåŒã³åºãIoRegisterPlugPlayNotificationAPIãæäŸããŸãã
USBã«ã€ããŠäžèš
USBããŒãã®æäœã«ç²Ÿéããã«ã¯ããã®æäœã説æããå¥ã®èšäºã«å ããŠãWindowsã§ã®HIDããŒã¿åŠçã®èª¬æãå¿ èŠã«ãªããŸããããã¯è³æãéåžžã«è€éã«ãããã®ãããã¯ã«é¢ããåªããèšäºããã§ã«ããã®ã§ãPS2ã¯ãã®åçŽãã®ããã«å®ç§ãªäŸã§ãã
USBã¯ãããŒããŒããã«ã¡ã©ãã¹ãã£ããŒãããã«ä»ãã²ãŒã ãã€ãŒã«ãããªã³ã¿ãŒãªã©ããã¹ãŠã®ããã€ã¹ã®ãŠãããŒãµã«ããŒããšããŠäœæãããŸãããããã«ãããŒãã®ãã¹ãããµããŒãããŸã-USBãã¶ãŒããŒã=> USBä»ãã¢ãã¿ãŒ=>ããŠã¹ãæ¥ç¶ãããŠããUSBä»ãããŒããŒãããã©ãã·ã¥ãã©ã€ãããŒããã©ã€ããæ¥ç¶ãããŠããUSBããã USB 2.0ãã³ãèŠããšãPS2ã®ãããªç¹å®ã®ããŒã¿ã®è»¢éçšã«èšèšãããŠããªãããšãããããŸãããããã¯4ã€ã ãã§ã-ããŒã¿ããããéä¿¡ããããã®ãã€ã¹ããã¢ãšãã©ã¹ãšãã€ãã¹ã®é»åã
USB 2.0
ã±ãŒãã«ã¯ã5ã€ã®è¿œå ãã³ã䜿çšããŠUSB3.0ã«é«éã«æ¥ç¶ããŸããã芧ã®ãšãããåæçšã®CLOCKã©ã€ã³ããªããããããŒã¿è»¢éããžãã¯ã¯ããè€éã§ããæ¯èŒã®ããã«å·Šã®USB2.0ãšå³ã®USB3.0ã
ãŸããæ¥ç¶ãããããã€ã¹ã¯ããèªäœã«ã€ããŠéç¥ããå¿ èŠããããŸãããã®ãããPlug'n'PlayãããŒãžã£ãŒãã¬ãžã¹ããªå ã®æ å ±ãæ€çŽ¢ãããã©ã€ããŒãããŒãããŠæ¥ç¶ããããã®ããã€ã¹IDãšã¡ãŒã«ãŒIDã瀺ãããã€ãã®ããŒã¿æ§é ãéä¿¡ããŸãã USBããã€ã¹ã¯ããã·ãã§ãããã¹ãã¯ãç¹å®ã®ééã§ããŒã¿èªäœã®ååšã確èªããå¿ èŠããããŸããããŒãªã³ã°ã¬ãŒããšããŒã¿ãã±ãããµã€ãºã¯ãUSBããã€ã¹èšè¿°åã®1ã€ã§æå®ãããŸããæ倧ãã±ãããµã€ãºã¯64ãã€ãã§ãæŒãããããŒã«é¢ããååãªæ å ±ã§ãã
Windowsã«ã¯HIDãµããŒããçµã¿èŸŒãŸããŠããŸãããHIDãã©ã€ããŒã¯ãããã³ã«ã§ãµããŒããããŠãããã¹ãŠã®ã¹ã¯ãªãããåŠçã§ããå¿ èŠããããããPS2ããŒããã©ã€ããŒãããŒããŒããã©ã€ããŒã«ãªã³ã¯ããã»ã©ç°¡åã§ã¯ãããŸãããããŒã¿ãããã€ããŒïŒPS2ãUSBããªã¢ãŒããã¹ã¯ãããããŒãããŸãã¯ä»®æ³ãã·ã³ïŒã«é¢ä¿ãªãããã©ã€ããŒããŒãã®æäžéšã«ã¯KbdclassããããããããOSã«ãŒãã«ãæ å ±ãåä¿¡ããŸããããŒããŒãæ¥ç¶éç¥ã¯Plug'n'Play Managerãä»ããŠåŠçããããããã©ã®ããŒããŸãã¯ããã€ã¹ããŒã¿ãœãŒã¹ã䜿çšãããŠãããã¯Windowsã«ãŒãã«ã«ã¯é¢ä¿ãããŸããã
ããŒã1-OSãšã³ã³ãã¥ãŒã¿ãŒã®åºæ¬
ããŒã2-PS2ããŒããä»ãããã¶ãŒããŒããšããŒããŒãã®åäœ