Windows 9x의 아키텍처
Architecture of Windows 9x![]() |

Windows 9x 시리즈의 operating system은 Windows 9x의 핵심에 있는 커널을 말합니다.그 아키텍처는 획일적이다.
기본 코드는 MS-DOS와 기능이 비슷하며 16비트/32비트 하이브리드로 동작하려면 MS-DOS 지원이 필요합니다.
중요 파일
Windows 95 는, 다음의 [1]파일 세트를 사용해 기동합니다.
32비트 셸 및 명령줄 인터프리터:
Windows 95 Core:
- 커널32.DLL 및 KRNL386.EXE – Windows API for Windows 리소스
- ADVAPI32.커널에 추가되는 DLL 기능.Windows 레지스트리 및 셧다운 및 재시작 기능 포함
- GDI32.DLL 및 GDI.EXE - 그래픽 디바이스 인터페이스
- USER32.DLL 및 USER.EXE - GUI 구현
- 통신DLL 및 COMCTL32.DLL - 공통 컨트롤(사용자 인터페이스)
- DDEML.DLL Dynamic Data Exchange Management Library(DDEML)는 응용 프로그램에 DDE 기능을 추가하는 작업을 단순화하는 인터페이스를 제공합니다.
- MSGSRV32EXE 32비트 메시지서버로서 기능해, Windows 태스크 리스트에 표시되지 않습니다.
- WIN.COM - 시스템의 GUI 및 Windows 부분을 로드합니다.
레지스트리 및 기타 구성 파일:
- SYSTEM.DAT, 사용자DAT - Windows 레지스트리가 포함되어 있습니다.
- MSDOS.SYS - 저레벨 부트 설정 및 더블 버퍼링 비활성화 및 GUI 로고 등의 리소스가 포함되어 있습니다.
- WIN.INI 및 시스템INI - Windows 3.1 구성 파일, Windows 9x에서도 처리됨
가상 시스템 관리자 및 구성 관리자:
- VMM32.VXD - 가상 머신 매니저 및 기본 드라이버.io.sys에서 커널로 이어받습니다.
설치 가능한 파일 시스템 매니저:
- IFSHLP.SYS - MS-DOS 메서드를 사용하지 않고 Windows에서 직접 파일 시스템을 호출할 수 있습니다.
- IFSMGR.VXD - 설치 가능한 파일 시스템용 32비트 드라이버
- 모든 보호 모드 파일 시스템 및 블록 디바이스 드라이버를 제어 및 관리하는 IOS.VXD I/O 슈퍼바이저
- MPREXE.EXE MPRSERV.DLL 및 MPR.DLL - 네트워크 인증 및 사용자 프로필에 필요한 여러 공급자 라우터
- MSPWL32.DLL 암호 목록 관리 라이브러리
디바이스 드라이버:
- IO.SYS - I/O 루틴 등의 모든 기본 기능을 처리하는 실행 파일.vmm32까지 커널로도 기능합니다.vxd가 인수인계속
- HIMEM.SYS - DOS 프로그램이 확장 메모리 사양을 통해 확장 메모리에 데이터를 저장할 수 있도록 하는 DOS 디바이스 드라이버
- SYSTEM.DRV, MMSoundDRV, 통신DRV, VGADRV, 마우스DRV, BIGMEMDRV, 키보드DRV - 16비트 드라이버
- CP1252NLS, CP 437NLS, UNICODE.NLS, 로케일NLS - 키보드 레이아웃
- RMM.PDR 리얼 모드매퍼 가상 디바이스
시스템은 CONFIG를 사용할 수도 있습니다.SYS - 명령어인터프리터를 로드하기 전에 실행한 설정 및 명령어가 포함되어 있습니다).BAT - COMMAND 로드 후 자동으로 실행되는 배치 파일입니다.COM. 단, 이 2개의 파일은 IO로서 부트프로세스에는 중요하지 않습니다.시스템에 없는 경우 SYS에는 둘 다 기본 설정이 포함되어 있습니다.Windows Me 에서는, CONFIG.SYS 및 AUTOEXEC.BAT는 처리되지 않고 로고도 출력됩니다.SYS는 시작 화면으로 사용할 수 있습니다.
부트 시퀀스
Windows 9x 의 기동 프로세스는, 6 개의 국면으로 구성됩니다.이 순서 중 처음 2개는 기존의 BIOS와 마스터 부트 레코드를 조합하여 OS를 기동할 때 공통입니다.
단계 1 - ROM BIOS 부트스트랩 프로세스
ROM BIOS 는, 물리 메모리 주소 FFFF0h 로 실행을 개시합니다.이 단계에서 BIOS는 먼저 전원 투입 시 자가 테스트를 실행한 후 드라이브 A에 부팅 디스크가 있는지 확인합니다.드라이브 A에 없는 경우는, ROM BIOS 로 HDD 가 확인됩니다.컴퓨터에 플러그 앤 플레이 BIOS가 있는 경우 BIOS는 RAM에서 플러그 앤 플레이 디바이스의 I/O 포트 주소, 인터럽트 회선 및 DMA 채널을 체크하고 발견된 디바이스를 비활성화하며 사용 중이거나 사용되지 않은 리소스 맵을 생성하여 디바이스를 다시 활성화합니다.
단계 2 - 마스터 부트 레코드와 부트 섹터
마스터 부트 레코드는 주소 7C00h에 로드되어 Windows 디스크 파티션의 부트 섹터를 로드합니다.부트 섹터에는 디스크 부트 프로그램과 루트 디렉토리와 IO의 위치를 검색하는 BIOS 파라미터 블록 테이블이 포함되어 있습니다.다음으로 I/O를 로드하는 SYS 파일.SYS 파일을 메모리에 넣습니다.
단계 3 - IOSYS 파일 초기화
IO.SYS는 최소 파일 할당 테이블 드라이버를 초기화하고 MSDOS를 로드합니다.SYS를 메모리에 넣습니다.그런 다음 MSDOS의 Boot-Delay 행에 따라 "Starting Windows"가 표시됩니다.SYS 파일그런 다음 로고를 로드합니다.SYS 파일을 작성하여 화면에 스타트업 이미지를 표시합니다.DRVSPACE의 경우.INI 또는 DBLSPACE.INI 파일이 존재하며 압축 디스크용 드라이버도 로드합니다.그런 다음 레지스트리 파일 SYSTEM을 열려고 합니다.DAT. 실패하면 SYSTEM을 열려고 합니다.DA0. MSDOS로 설정되어 있는 경우.SYS 또는 레지스트리에서는 더블 버퍼링도 유효하게 되어 있습니다.
단계 4 - 설정SYS 및 리얼모드 설정
Windows 95에서 Windows 98로 CONFIG를 분석하게 되었습니다.SYS 및 MS-DOS 리얼 모드 드라이버를 로드합니다.Windows Me 에서는, 이것을 무시합니다.CONFIG의 경우.SYS 파일이 존재하지 않습니다. IO.SYS 파일은 드라이버 IFSHP를 로드합니다.SYS, HIMEMSYS 및 SETVER.EXE. Windows 에서는, Windows 95 operating system의 사용 또는 확장 메모리용으로, 모든 상위 메모리 블록을 예약합니다.Windows 95에서 Windows 98로 명령어를 실행합니다.AUTOEXEC를 처리하는 COM.BAT. 종료된 프로그램을 메모리에 로드합니다.Real Mode DOS 지원이 비활성화되어 로드 중인 TSR에 의해 시스템 안정성이 저하될 수 있으므로 Windows Me는 이 절차를 무시합니다.
단계 5 - 드라이버 초기화
IO.SYS가 WIN을 실행합니다.COM. 윈.COM은 VMM32.VXD 파일을 메모리에 로드하거나 하드 디스크에서 액세스합니다.이 파일에는 가장 중요한 드라이버와 9x 커널이 포함되어 있습니다.리얼 모드 가상 디바이스 드라이버 로더는 Windows\ 에 존재하는 중복된 가상 디바이스 드라이버를 체크합니다.System\Vmm32 폴더와 VMM32.VXD 파일.중복되는 경우 Windows의 드라이버\System\Vmm32 디렉토리가 로드됩니다.Windows 95 ~98은 INT 2Fh를 호출하는 리얼 모드 드라이버를 조회하여 레지스트리 엔트리 HKEY_LOCAL_MACHINE\System\에서 드라이버를 검색합니다.CurrentControlSet\Services\VxD는 외부 파일로 로드되도록 마크되어 있습니다.다음으로 Vmm32는 Windows의 [386 Enh]섹션을 분석합니다.System.ini 파일을 작성하여 여기에 나열된 드라이버를 로드합니다.Windows 레지스트리의 SYSTEM 에 리스트 되어 있지 않아도, 중요한 드라이버가 로드됩니다.INI 또는 Windows\System\Vmm32 디렉토리.
리얼 모드 가상 디바이스 드라이버가 로드되면 Windows 95에서 Windows 98로 드라이버가 초기화됩니다.그런 다음 Vmm32는 CPU를 실제 모드에서 보호 모드로 전환합니다.다음 단계는 보호 모드 드라이버의 초기화입니다.디바이스별로 3단계로 실행됩니다.초기화의 중요한 부분(인터럽트가 무효가 되어 있는 경우), 디바이스의 초기화(파일 I/O가 허가되어 있는 경우), 및 Init Complete 단계입니다.디스플레이 드라이버의 초기화 후에, Windows 는 그래픽 모드로 전환됩니다.
단계 6 - Win32 초기화
모든 드라이버가 로드되면 Kernel32.dll, gdi32.dll, Gdi.exe, user32.dll, User.exe, shell32.dll 및 Explorer.exe 파일이 로드됩니다.기동 프로세스의 다음 단계는 네트워크 환경을 로드하는 것입니다.설정되어 있는 네트워크에의 로그 온이 요구됩니다.사용자가 로그온할 때 사용자의 데스크톱 설정이 레지스트리에서 로드되거나 데스크톱 구성이 기본 데스크톱을 사용합니다.그런 다음 Windows가 시작 폴더 WIN에 정의된 프로그램을 시작합니다.INI 및 레지스트리 키에 정의된 프로그램HKEY_LOCAL_MACHINE\Software\Microsoft\ 브런치 내에서 RunOnce, RunServicesOnce 및 RunServicesOnceWindows\CurrentVersion 및 HKEY_CURRENT_USER\소프트웨어\Microsoft\Windows\CurrentVersion\RunOnce 레지스트리 키의 각 프로그램이 시작되면 해당 프로그램이 키에서 제거됩니다.
커널
윈도우즈 9x 커널은 가상 메모리가 있는 32비트 커널입니다.드라이버는 에서 제공합니다.VXD 파일 또는 Windows 98 이후 최신 WDM 드라이버를 [2]사용할 수 있습니다.다만, MS-DOS 커널은 메모리에 보존되어 있습니다.Windows Me 를 제외하고, 인스톨 되고 있는 경우는, 낡은 MS-DOS 16 비트 드라이버를 사용합니다.Windows Me 에서는 DOS 는 아직 동작하고 있습니다만, AUTOEXEC 를 해석할 때는 디바이스 드라이버를 로드하는 시도를 무시합니다.BAT 는, 아직 인식되고 있는 환경 변수를 CONFIG 로부터 이동합니다.SYS를 Windows 레지스트리에 넣습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Windows 95 OSR 2". WinWorld. Retrieved 2022-07-31.
- ^ Microsoft (2002-04-15). "Windows Driver Model (WDM)". Microsoft. Archived from the original on 2013-01-18. Retrieved 2016-05-27.
추가 정보
- Schulman, Andrew (November 1994). Unauthorized Windows 95 - Developer's Resource Kit (1st ed.). Foster City, California, USA: John Wiley & Sons, Inc. ISBN 1-56884-305-4. ISBN 978-1-56884-305-6.
- 슐먼 앤드류, 브라운, 랄프 D.;Maxey, 데이비드. 미헬스, 레이먼드 J., 카일, 짐(1994년)[1993년 11월].Undocumented 도스:예약된 MS-DOS를 사용하는 기능과 데이터 구조-MS-DOS6, 노벨 도스와 Windows3.1(2판)을 포함하도록 확장에 대한 프로그래머의 가이드입니다.메사추세츠는 책 읽기:애디슨 웨슬리.아이 에스비엔 0-201-63287-X.아이 에스비엔 978-0-201-63287-3.(xviii+856+vi 페이지,3.5"-floppy)Errata:[1][2].
- Paul, Matthias R. (2002-04-10). "[fd-dev] HMA access from TSR". freedos-dev. Archived from the original on 2017-09-09. Retrieved 2017-09-09.
[...] MS-DOS 7.0+ [...] introduced a [...] for the most part undocumented RMD data structure usually located in the HMA. The kernel collects and records configuration and Real Mode Driver data during boot (type of driver, interrupts hooked by driver, CONFIG.SYS line of invocation, etc.) and stores this information in a [...] complicated [...] growing data structure. Presumably [...] meant to be used by the Windows core to get a better picture of the loaded Real Mode drivers [...] or even attempt to unhook or unload some of them, [...] it is only used to a very limited extent ([...] some of the info reflected in the log files created on [...] startup, and some parts of the [...] configuration manager also make use of it), [...] leaving room [...] beyond the technical side [...] because nothing of the interesting stuff is documented [...]
- Paul, Matthias R. (2002-08-13). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" (in German). Newsgroup: de.comp.lang.assembler.x86. Archived from the original on 2017-09-04. Retrieved 2017-09-03. (NB. MS-DOS 7+HMA 사용 및 \WINDOWS\도 마찬가지)IOS.LOG).
- Sweger, Kristofer (2007) [2002-07-15]. "ANSIPLUS and Windows". Archived from the original on 2021-11-28. Retrieved 2021-11-28.
[…] ANSIPLUS's code cannot be loaded to the HMA under MS-DOS 7 (Windows 9x only) because there apparently is not enough unused HMA memory available. […]
- Paul, Matthias R. (2004-06-17). "Re: Random Lockups with DR-DOS 7.03". opendos@delorie.com; FidoNet conference: ALT_DOS. Archived from the original on 2019-04-28. Retrieved 2019-04-28.
[...] all MS-DOS versions prior to Windows 95 [...] used a COM style COMMAND.COM file which has a special signature at the start of the file [...] queried by the MS-DOS BIOS before it loads the shell, but not by the DR-DOS BIOS [...] COMMAND.COM would [...] check that it is running on the "correct" DOS version, so if you would load their COMMAND.COM under DR-DOS, you would receive a "Bad version" error message and their COMMAND.COM would exit, so DR-DOS would [...] display an error message "Bad or missing command interpreter" (if DR-DOS was trying to load the SHELL= command processor after having finished CONFIG.SYS processing). In this case, you could enter the path to a valid DR-DOS COMMAND.COM (C:\DRDOS\COMMAND.COM) and everything was fine. Now, things have changed since MS-DOS 7.0 [...] COMMAND.COM has internally become an EXE style file, so there is no magic [...] signature [...] to check [...] thus no way for DR-DOS to rule out an incompatible COMMAND.COM. Further, their COMMAND.COM no longer does any version checks, but [...] does not work under DR-DOS [...] just crashes [...] the PC DOS COMMAND.COM works fine under DR-DOS [...]
[3][4] - King, Adrian (1994). Inside Microsoft Windows 95 (2nd ed.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-626-X. ISBN 978-1-55615-626-7.
- Programmer's Guide to Microsoft Windows 95: Key Topics on Programming for Windows from the Microsoft Windows Development Team. Technical Reference (1st ed.). Redmond, Washington, USA: Microsoft Press. 1995-07-01. ISBN 1-55615-834-3. ISBN 978-1-55615-834-6. Retrieved 2016-05-26.
- Oney, Walter (1995). Systems Programming for Windows 95 (1st ed.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-949-8. ISBN 978-1-55615-949-7.
- Pietrek, Matt (November 1995). Windows 95 System Programming Secrets. The Secrets Series (1st ed.). John Wiley & Sons, Inc. ISBN 1-56884-318-6. ISBN 978-156884-318-6. Retrieved 2016-05-26.
- Hazzah, Karen (1997). Writing Windows VxDs and Device Drivers - Programming Secrets for Virtual Device Drivers (2nd printing, 2nd ed.). Lawrence, Kansas, USA: Miller Freeman, Inc. ISBN 0-87930-438-3. ISBN 978-0-87930-438-6.
- Mitchell, Stan (1997-05-11). Schulman, Andrew (ed.). Inside the Windows 95 File System. Nutshell handbooks (1st ed.). Sebastopol, California, USA: O'Reilly & Associates, Inc. ISBN 1-56592-200-X. ISBN 978-1-56592-200-6. Retrieved 2016-05-26.
외부 링크
- Microsoft. "Windows 95 Architecture Components". Microsoft. Archived from the original on 2014-10-17. Retrieved 2016-05-27.
- Microsoft (2006-11-15). "Description of the Windows 95 Startup Process". 1.1. Microsoft. Q174018. Archived from the original on 2014-02-14. Retrieved 2016-05-27.
- Microsoft (2013-10-26). "Understanding Win16Mutex". 5.0. Microsoft. KB125867. Q125867. Archived from the original on 2014-01-16. Retrieved 2016-05-27.