2015/07/16 245

시스템 프로세스

시스템 프로세스 Windows Server 2008 윈도우에는 여러 가지 시스템 프로세스들이 존재하며 다음 프로세스는 모든 윈도우 시스템에 존재 한다. 유휴 프로세스 (유휴 CPU 시간을 계산하기 위해 CPU당 하나의 스레드를 보유) 시스템 프로세스(대부분의 커널모드 시스템 스레드를 담고 있다.) 세션 관리자(Smss.exe) 로컬 세션 관리자(Lsm.exe) 윈도우 서브 시스템(Csrss.exe) 세션 0 초기화 (Wininit.exe) 로그온 프로세스(Winlogon.exe) 서비스 컨트롤 관리자(Services.exe)와 생성한 자식 서비스 프로세스(시스템이 제공하는 일반 서비스 호스트 프로세스.Svchost.exe와 같은 것.) 로컬 보안 인증(Lsass.exe) 각 프로세스들이 어떤 작업을 하는..

Windows , IIS 2015.07.16

디바이스 드라이버

디바이스 드라이버 Windows Server 2008 디바이스 드라이버는 로드 가능한 커널모드 모듈로 I/O 관리자와 관련 하드웨어 사이를 인터페이스로 연결한다. 디바이스 드라이버는 다음 컨텍스트 중 하나로 커널모드에서 동작한다. I/O 함수를 호출한 유저 스레드 컨텍스트 커널모드 시스템 스레드 컨텍스트 인터럽트의 결과 디바이스 드라이버는 하드웨어를 직접 조작하지 않고 하드웨어 인터페이스에 접속하기 위한 HAL 내의 함수를 호출 한다. 디바이스 드라이버는 다음과 같은 유형이 있다. 하드웨어 디바이스 드라이버 : 물리적 디바이스나 네트워크로부터 입력을 읽어 들이거나 출력을 쓰기 위해 하드웨어를 조작(HAL 사용)한다. 파일 시스템 드라이버 : 파일 지향 I/O 요청을 받아들이고 특정 장치로 I/O 요청을 ..

Windows , IIS 2015.07.16

하드웨어 추상화 계층(HAL)

하드웨어 추상화 계층(HAL) Windows Server 2008 윈도우 설계의 중요한 요소 중 하나는 다양한 하드웨어 플랫폼간의 이식성이다. 하드웨어 추상화 계층(HAL)은 윈도우가 실행 중인 하드웨어 플랫폼에 대한 저수준 인터페이스를 제공하는 로드 가능한 커널 모드 모듈(Hal.dll)이다. 윈도우 내부 컴포넌트는 플랫폼 의존적인 정보가 필요할 때 하드웨어를 직접 액세스하는 것보다 사용자가 작성한 드라이버와 마찬가지로 HAL 루틴을 호출함으로써 이식성을 유지한다. HAL 루틴은 WDK에 문서화 되어 있으며 자세한 내용은 WDK를 참고 한다. 윈도우 비스타, 서버2008은 부트업 타임에 어떤 HAL을 사용해야 하는지를 탐지할 수 있으며 이전에 존재하던 문제(이전 버전에서 설치된 윈도우가 다른 시스템에서..

Windows , IIS 2015.07.16

커널

커널 Windows Server 2008 커널은 프로세서 아키텍처별로 다른 저 수준 하드웨어 아키텍처 의존적 지원과 함께 익스큐티브 컴포넌트에 의해 사용되는 기본 메커니즘을 제공하는 Ntoskrnl.exe 내의 함수 집합으로 구성된다. 커널 코드는 주로 C로 작성되었다. [커널 객체] 커널은 익스큐티브의 고수준 컴포넌트가 필요로 하는 것을 수행 할 수 있게 잘 정의된 예측 가능한 운영체제 프리미티브와 메커니즘의 저수준 기반을 제공한다. 커널은 운영체제 메커니즘을 구현하고 정책을 만드는 것을 배제함으로써 익스큐티브의 나머지 부분으로부터 커널 자체를 분리한다. 커널이 구현한 스레드 스케줄링과 디스패칭을 제외한 거의 모든 정책 결정을 익스큐티브에 있다. 커널 밖에서 익스큐티브는 스레드와 다른 공유 가능한 리소..

Windows , IIS 2015.07.16

Ntdll.dll, 익스큐티브

Ntdll.dll, 익스큐티브 Windows Server 2008 Ntdll.dll은 주로 서브시스템을 위한 특별한 시스템 지원 라이브러리다. 이는 다음 두 종류의 함수를 갖고 있다. 윈도우 익스큐티브 시스템 서비스에 대한 시스템 서비스 디스패치 스텁 서브시스템, 서브시스템 DLL, 다른 네이티브 이미지에 의해 사용되는 내부 지원 함수 첫 번째 그룹 함수는 유저모드에서 호출 할 수 있는 윈도우 익스큐티브 시스템 서비스 인터페이스 이다. 이들 함수의 기능은 윈도우 API로 접근할 수 있다. 각 함수들에 대해 Ntdll은 같은 이름의 엔트리 포인트를 갖고 있다. 함수 안의 코드는 시스템 서비스 디스패처를 호출하기 위해 커널모드로의 진입을 일으키는 아키텍처의 한정적인 인스트럭션을 갖고 있다. 시스템 서비스 디..

Windows , IIS 2015.07.16

POSIX 서브시스템

POSIX 서브시스템 Windows Server 2008 POSIX는 Portable Operating System Interface based on UNIX 의 약어로 유닉스 스타일 운영체제 인터페이스용 국제 표준 모음이다. 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 구격이다. 윈도우 초기에 많은 POSIX.1 만을 구현하였으며 이것은 U.S 정부의 조달 요구 사항을 맞추기 위해 포함되었다. Windows NT 3.5와 3.41, 4 는 FIPS 151-2에 따라 공식적으로 테스트되고 인증 받았다. POSIX.1 규약은 윈도우의 필수 목표였기 때문에 운영체제는 기본 시스템 지원이 POSIX.1 서..

Windows , IIS 2015.07.16

환경 서브 시스템 및 서브시스템 DLL

환경 서브 시스템 및 서브시스템 DLL Windows Server 2008 초기 윈도우는 베이직 POSIX와 함께 배포되었지만 더 이상 시스템과 함께 배포되지는 않는다. 윈도우 비스타 얼티밋과 엔터프라이즈 에디션에서 유닉스 기반 애플리케이션용 서브시스템이라고 하는 크게 향상된 버전을 이용할 수 있다. 윈도우 서브 시스템은 서브시스템 없이 윈도우가 동작할 수 없다는 점에서 특별하다. 다른 두 서브시스템은 온디맨드로 시작하게 구성돼 있다. 반면 윈도우 서브시스템은 반드시 항상 실행중 이어야 한다. 서브시스템의 시작 정보는 레지스트리에 저장된다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems Required : 시스..

Windows , IIS 2015.07.16

윈도우 확장성 및 버전 정보, 체크드빌드

윈도우 확장성 및 버전 정보, 체크드빌드 Windows Server 2008 [확장성] 멀티프로세서 시스템과 관련된 핵심 사항 중 하나는 확장성이다. 리소스 경쟁과 다른 성능 이슈는 단일 프로세서 시스템보다 멀티프로세싱 시스템에서 더 복잡하다. 윈도우는 멀티프로세서 운영체제로 다음 몇 가지 특징이 있다. 운영체제 코드를 임의의 가능한 프로세서에서 실행할 수 있는 능력과 동시에 멀티프로세서에서 운영체제 코드를 실행할 수 있는 능력 단일 프로세서 내에서 다중 스레드를 실행하고 각 스레드는 서로 다른 프로세서에 동시에 실행 될 수 있다. 디바이스 드라이버, 서버 프로세스 내의 것과 마찬가지로 커널 내의 고품질 동기화(스핀락과 큐드)는 멀티프로세서에서 동시에 실행되도록 좀 더 많은 컴포넌트를 허용한다. I/O ..

Windows , IIS 2015.07.16

윈도우 이식성 및 대칭형 프로세싱

윈도우 이식성 및 대칭형 프로세싱 Windows Server 2008 [이식성] 윈도우는 인텔 기반 CISC 시스템과 RISC 시스템 등의 다양한 하드웨어 아키텍처에서 동작하게 설계되었다. 윈도우는 다음 두 가지 방법으로 하드웨어 아키텍처와 플랫폼 간의 이식성을 달성 한다. 윈도우는 프로세서 또는 플랫폼 한정적인 시스템의 로우 레벨 부분을 분리된 모듈로 나눈 계층적 설계를 갖는다. 따라서 시스템의 상위 계층은 아키텍처와 하드웨어 플랫폼 간의 차이로부터 감춰질 수 있다. 이식성의 핵심 컴포넌트는 커널(Ntoskrnl.exe)과 하드웨어 추상화 계층(HAL.dll)이 있다. 아키텍처에 한정적인 함수는 커널에서 구현되며 같은 아키텍처 내에서 시스템 간에 다룰 수 있는 기능들은 HAL에서 구현된다. 윈도우 대부..

Windows , IIS 2015.07.16

운영체제 모델 및 아키텍처 개요

운영체제 모델 및 아키텍처 개요 Windows Server 2008 대부분 멀티유저 운영체제에서 애플리케이션은 운영체제 자체로부터 분리돼 있다. 운영체제 커널 코드는 특권이 있는 프로세스 모드(커널 모드)에서 시스템 데이터와 하드웨어에 접근하며 실행 된다. 애플리케이션 코드는 특권이 없는 프로세서 모드(유저모드)에서 실행된다. 유저모드 프로그램이 시스템 서비스를 호출 할 때 프로세서는 호출을 트랩하고 호출 스레드를 커널 모드로 전환한다. 시스템 서비스가 완료 되면 운영체제는 스레드 컨텍스트를 다시 유저모드로 변경하고 호출자가 계속 실행되도록 한다. 윈도우 운영체제의 대부분과 디바이스 드라이버 코드가 동일한 커널모드 보호 메모리 공간을 공유 한다는 점에서 대부분의 유닉스 시스템과 유사하다. 이는 어떤 운영..

Windows , IIS 2015.07.16