맨위로가기

세션 관리자 하위 시스템

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

세션 관리자 하위 시스템(SMSS)은 커널에 의해 시작되는 첫 번째 사용자 모드 프로세스이다. SMSS는 시스템 구성 데이터를 사용하여 추가 페이징 파일을 생성하고, 커널 및 Win32 하위 시스템의 사용자 모드를 시작하는 역할을 한다. 또한 세션 시작 시 필요한 작업을 수행하며, Windows Vista 이후에는 Windows 시작 응용 프로그램(wininit.exe)과 두 번째 클라이언트/서버 런타임 하위 시스템(csrss.exe)을 시작하는 자체 임시 인스턴스를 생성한다. 부팅 과정 완료 후 메모리에 상주하며, winlogon.exe 또는 csrss.exe의 종료를 기다린다. SMSS는 새로운 사용자 세션을 시작하고, 로컬 세션 관리자(LSM)와의 통신을 처리한다.

2. 세션 초기화

세션 관리자 하위 시스템은 커널에 의해 시작되는 첫 번째 사용자 모드 프로세스이다. 시작되면 `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 드라이브를 만들 수 있다.

관리자는 커널 및 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 작업 관리자에서 실행 중인 것을 확인할 수 있다. 그런 다음 `winlogon.exe` 또는 `csrss.exe`의 종료를 기다리며, 이 시점에서 Windows가 종료된다. 프로세스가 예상대로 종료되지 않으면, `smss.exe`가 시스템을 멈추게 하거나 오류 검사가 발생할 수 있다.[7] 또한 필요에 따라 새로운 사용자 세션을 시작한다.

일부 Windows 버전에서는 특수한 도구를 사용하여 `smss.exe`의 중요한 프로세스 상태를 제거할 수 있으며, 이후에는 블루스크린 없이 종료할 수 있지만, `smss.exe`를 사용하는 모든 기능은 다음 재부팅까지 작동을 멈춘다.

로컬 세션 관리자 서비스(`lsm.exe`)는 새로운 세션을 시작하기 위해 비동기 로컬 프로세스 간 통신 (ALPC) 포트 `SmSsWinStationApiPort`를 통해 SMSS에 요청을 보낸다.

사용자가 시스템에 로그인할 때마다 초기 세션 관리자는 새로운 세션을 구성하기 위해 자체의 새로운 인스턴스를 생성한다. 이 새로운 프로세스는 새로운 세션을 위해 Win32 하위 시스템과 Winlogon 프로세스를 시작한다. 이를 통해 Windows Server 시스템에서 여러 사용자가 동시에 로그인할 수 있다.[6]

3. 1. 로컬 세션 관리자와의 통신

세션 관리자는 각 세션에 대한 정보를 유지하고, 각 세션의 생성과 종료를 관리한다. 세션 관리자는 또한 로컬 세션 관리자(LSM)와의 통신을 처리한다.

참조

[1] 웹사이트 Troubleshooting the Startup Process https://technet.micr[...] Microsoft Technet 2005-11-03
[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