부팅은 컴퓨터의 전원이 켜진 후 운영 체제가 실행될 준비를 마칠 때까지의 모든 과정을 의미합니다. 부팅 과정에서 컴퓨터는 하드웨어를 점검하고, 운영 체제가 실행될 수 있도록 필요한 파일들을 메모리에 로드합니다. 운영 체제는 단순한 하나의 프로그램이 아니라, 기본적으로 크고 방대한 프로그램과 파일들의 모음이며, 이런 방대한 데이터를 한 번에 불러올 수 없기 때문에, 운영 체제를 효율적으로 로드하기 위해 **부트 관리자(Boot Manager)**가 사용됩니다.
부트 관리자는 드라이브에 winload.exe를 실행해서 필수 드라이버와 Windows의 핵심인 커널 이미지를 또는 ntoskrnl.exe를 로드합니다. 이런 파일들은 system32 폴더 아래에 있습니다.
커널 이미지에는 커널(Kernel) 이 포함되어 있으며, 이는 컴퓨터의 하드웨어와 소프트웨어 간의 상호 작용을 원활하게 해주는 역할을 합니다. 커널은 메모리 관리자(Memory Manager), 캐시 관리자(Cache Manager), 실행 관리자(Executive, I/O 처리 담당), 보안(Security), 프로세스 관리(Process Management) 등을 포함하며, 데이터 관리의 다양한 측면을 지원하는 여러 구성 요소로 이루어져 있습니다.
모든 핵심 소프트웨어가 구축되고 하드웨어와 올바르게 연결되었다면, boot 프로세스는 windows logon manager(또는 winlogon.exe 파일)를 로드합니다. Winlogon.exe는 사용자가 Windows에 로그인할 수 있도록 하는 중요한 프로세스입니다. 이 파일은 로그인 화면을 표시하고, 사용자가 입력한 로그인 정보(사용자 이름 및 비밀번호)를 처리하여 **사용자 세션(User Session)**을 시작하는 역할을 합니다.
로그온 관리자가 실행되면, **LSASS(Local Security Authority Subsystem Service)**와 SCM(Service Control Manager)이시작됩니다. LSASS는 사용자가 제공한 로그인 정보가 올바른지 확인하고, 보안을 관리하는 핵심 서비스입니다. 이 서비스는 사용자의 인증을 처리하며, 패스워드 확인, 보안 정책 실행, 그리고 세션을 안전하게 유지하는 역할을 합니다.
다음으로 **SCM(Service Control Manager)**가 시작됩니다. SCM은 시스템에서 실행되는 모든 서비스와 프로세스를 관리하는 역할을 합니다. 이 관리자는 부팅 시 자동으로 시작되어야 하는 서비스들을 제어하고, 각 서비스의 상태를 모니터링합니다. 예를 들어, 네트워크 서비스나 Windows 업데이트 서비스와 같은 필수 서비스들이 SCM에 의해 자동으로 시작됩니다. SCM이 실행되면, **자동(Automatic)**으로 설정된 모든 Windows 서비스들이 시작됩니다. 이는 Windows의 핵심 기능들을 지원하는 서비스들로, 예를 들면 네트워크 연결, 파일 시스템, 그래픽 드라이버 등 다양한 서비스가 포함됩니다. 이러한 서비스들이 정상적으로 실행되어야만, 사용자는 완전한 Windows 환경을 사용할 수 있게 됩니다.
마지막 단계는 로그온입니다. 사용자의 프로필에 로그온을 하면, 모든 사용자 프로그램들이 RAM에 로드됩니다. 이렇게 되면, CPU는 필요할 때 빠르게 해당 프로그램을 호출할 수 있습니다. 어떤 앱들이 자동으로 실행되는지 확인하려면 Windows의 검색 창에 '시작 앱'을 입력하여 시작 프로그램 설정 옵션을 엽니다. 이를 통해 컴퓨터가 부팅되었을 때 자동으로 실행되는 모든 앱 목록을 확인하고, 각 프로그램에 대해 켜고 끌 수 있습니다.
로그인이 완료되면, 윈도우 데스크탑이 표시되며, 사용자는 프로그램을 실행하거나 파일을 접근하는 등 정상적인 작업을 시작할 수 있습니다.
Windows 부팅 과정에서 중요한 역할을 하는 Windows 로그온 관리자(Winlogon.exe), LSASS, SCM은 시스템의 보안, 서비스 관리 및 사용자 인증을 담당하는 핵심 요소들입니다. 이 모든 과정이 제대로 작동할 때, 우리는 문제 없이 Windows를 사용할 수 있게 됩니다. 부팅 과정에서 문제가 발생하면, 이들 프로세스와 서비스들이 제대로 작동하고 있는지 점검하는 것이 중요합니다.
To start an app before winlogon.exe and pass login information to winlogon.exe to obtain a session, Credential Providers are the standard, recommended approach. Custom services or modifications to the boot process are more complex and risky.
Using a Custom Login Application (Credential Provider)
One standard way to interact with Windows login is by implementing a Credential Provider. A Credential Provider is a Windows component that integrates with the Windows logon process and can provide custom login functionality. It allows a third-party application to collect login credentials before winlogon.exe initializes and before user sessions start.
Steps to Create a Custom Credential Provider:
- Develop a Credential Provider: This is a COM object that implements specific interfaces defined by Windows (such as ICredentialProvider).
- Register the Credential Provider: The custom credential provider must be registered in the Windows registry under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers.
- Implement Credential Collection: The app will collect the user credentials, such as username and password, using the custom interface.
- Pass the Credentials to Winlogon: The credential provider will pass the collected login credentials to winlogon.exe for authentication. This happens after the user interacts with the login screen but before the session is created.
'OS > Windows' 카테고리의 다른 글
| Themida 오류 메시지 (0) | 2025.03.05 |
|---|---|
| chatgpt code (1) | 2025.03.03 |
| 필터 드라이버(Filter Driver) (0) | 2025.03.03 |
| 볼륨 섀도 복사본 서비스 (1) | 2024.09.25 |
| [Sysinternals] 프로세스 모니터 (0) | 2024.08.15 |