세션 관리자 하위 시스템
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
세션 관리자 하위 시스템(SMSS)은 커널에 의해 시작되는 첫 번째 사용자 모드 프로세스이다. SMSS는 시스템 구성 데이터를 사용하여 추가 페이징 파일을 생성하고, 커널 및 Win32 하위 시스템의 사용자 모드를 시작하는 역할을 한다. 또한 세션 시작 시 필요한 작업을 수행하며, Windows Vista 이후에는 Windows 시작 응용 프로그램(wininit.exe)과 두 번째 클라이언트/서버 런타임 하위 시스템(csrss.exe)을 시작하는 자체 임시 인스턴스를 생성한다. 부팅 과정 완료 후 메모리에 상주하며, winlogon.exe 또는 csrss.exe의 종료를 기다린다. SMSS는 새로운 사용자 세션을 시작하고, 로컬 세션 관리자(LSM)와의 통신을 처리한다.
세션 관리자 하위 시스템은 커널에 의해 시작되는 첫 번째 사용자 모드 프로세스이다. 시작되면 `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management`[1] 레지스트리 항목과 `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment`에 있는 환경 변수, `HKLM\System\CurrentControlSet\Control\Session Manager\DOS Devices` 레지스트리 키에 나열된 DOS 장치 매핑(예: CON:, NUL:, AUX:, COM1:, COM2:, COM3:, COM4:, PRN:, LPT1:, LPT2:, LPT3: 및 드라이브 문자)으로 구성 데이터를 사용하여 추가 페이징 파일을 생성한다. 이를 사용하여 영구적인 subst 드라이브를 만들 수 있다.
부팅 과정이 완료되면, 해당 프로그램은 메모리에 상주하며, Windows 작업 관리자에서 실행 중인 것을 확인할 수 있다. 그런 다음 `winlogon.exe` 또는 `csrss.exe`의 종료를 기다리며, 이 시점에서 Windows가 종료된다. 프로세스가 예상대로 종료되지 않으면, `smss.exe`가 시스템을 멈추게 하거나 오류 검사가 발생할 수 있다.[7] 또한 필요에 따라 새로운 사용자 세션을 시작한다.
[1]
웹사이트
Troubleshooting the Startup Process
https://technet.micr[...]
Microsoft Technet
2005-11-03
2. 세션 초기화
관리자는 커널 및 Win32 하위 시스템의 사용자 모드를 시작하는 역할을 한다. 이 하위 시스템에는 `win32k.sys` (커널 모드), `winsrv.dll` (사용자 모드), `csrss.exe` (사용자 모드)가 포함된다.[2] `HKLM\System\CurrentControlSet\Control\Session Manager\SubSystems` 레지스트리 키의 `Required` 값에 나열된 다른 모든 하위 시스템도 시작된다.
관리자는 또한 세션 시작 시 수행하도록 요청된 모든 작업을 수행하는 역할을 한다. `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute`에 나열된 `autochk` 및 `convert`와 같은 명령이 실행된다. 이러한 명령은 부팅 프로세스의 이후 단계에서 서비스가 로드되기 전에 실행된다.[3] `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations`에서 대기 중인 모든 이름 바꾸기 작업이 수행된다. 이는 이전에 사용 중이던 파일(예: 드라이버)을 재부팅의 일부로 교체할 수 있도록 하는 데 사용된다.[4]
Windows Vista부터 세션 관리자 하위 시스템은 시스템 프로세스에 전용된 세션 0에 대해 Windows 시작 응용 프로그램(wininit.exe
)과 두 번째 클라이언트/서버 런타임 하위 시스템(csrss.exe
)을 시작하는 자체 임시 인스턴스를 생성한다. 여기서 Windows 시작 응용 프로그램은 "자동 시작"으로 설정된 모든 Windows 서비스를 시작하는 서비스 제어 관리자(services.exe
)를 시작한다.[5] 응용 프로그램은 또한 로컬 보안 기관 하위 시스템 서비스(lsass.exe
)를 시작한다. Windows Vista 이전에는 이러한 프로세스가 Windows 시작 응용 프로그램 대신 Windows 로그온에 의해 시작되었다.[6]
세션이 구성되면 세션 관리자 하위 시스템은 Windows 시스템에 대한 대화형 로그온(로컬 또는 원격)을 처리하는 역할을 하는 Winlogon (Windows 로그온 응용 프로그램)을 시작한다.[6]
3. 운영
일부 Windows 버전에서는 특수한 도구를 사용하여 `smss.exe`의 중요한 프로세스 상태를 제거할 수 있으며, 이후에는 블루스크린 없이 종료할 수 있지만, `smss.exe`를 사용하는 모든 기능은 다음 재부팅까지 작동을 멈춘다.
로컬 세션 관리자 서비스(`lsm.exe`)는 새로운 세션을 시작하기 위해 비동기 로컬 프로세스 간 통신 (ALPC) 포트 `SmSsWinStationApiPort`를 통해 SMSS에 요청을 보낸다.
사용자가 시스템에 로그인할 때마다 초기 세션 관리자는 새로운 세션을 구성하기 위해 자체의 새로운 인스턴스를 생성한다. 이 새로운 프로세스는 새로운 세션을 위해 Win32 하위 시스템과 Winlogon 프로세스를 시작한다. 이를 통해 Windows Server 시스템에서 여러 사용자가 동시에 로그인할 수 있다.[6]
3. 1. 로컬 세션 관리자와의 통신
세션 관리자는 각 세션에 대한 정보를 유지하고, 각 세션의 생성과 종료를 관리한다. 세션 관리자는 또한 로컬 세션 관리자(LSM)와의 통신을 처리한다.
참조
[2]
웹사이트
Poking Around Under the Hood: A Programmer's View of Windows NT 4.0
https://www.microsof[...]
Microsoft Systems Journal
[3]
웹사이트
Troubleshooting the Startup Process
https://technet.micr[...]
Microsoft Technet
2005-11-03
[4]
서적
Windows internals, Part 2
Microsoft
[5]
서적
Windows internals, Part 2
Microsoft
[6]
웹사이트
Windows Administration: Inside the Windows Vista Kernel: Part 2
https://learn.micros[...]
2023-05-13
[7]
웹사이트
Default Processes in Windows 2000
http://support.micro[...]
Microsoft Corporation
2009-06-14
[8]
웹인용
Poking Around Under the Hood: A Programmer's View of Windows NT 4.0
http://www.microsoft[...]
Microsoft Systems Journal
2009-06-14
[9]
웹인용
Default Processes in Windows 2000
http://support.micro[...]
Microsoft Corporation
2009-06-14
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com