SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
MinWin에 대해서



   마이에트 엔터테인먼트
     서버 프로그래머
        최흥배

 Microsoft Visual C++ MVP
MinWin에 대해서
Windows 7과 Vista는 같다?

일반적으로 Windows 7은 Windows
Vista와 같은 커널을 사용한다!
사실 Windows 7에서 커널에 변화가 있었다 .
그렇다고 완젂히 바뀐 것은 아니고 Vista의 커널을 베이스로 해서 튠업

그렇기 때문에 Windows 7의 커널 API 등은 Vista와 같다
Windows 7과 Server 2008 R2는 같은 커널




• Vista와 Server 2008와 같은 소스 트리에서 빌드

• Release 후는 GDR 및 LDR 2개의 소스 트리를 사용
   General Distribution Release = Windows Update
   Limited Distribution Release = Hotfix

• 서비스 팩에서 브랜치를 리셋
64bit만 Release
Windows 7의 버전은 왜 6.1?

• 애플리케이션 호환성을 위해

• Release 타이밍에서는 많은 애플리케이션은 Vista의 메
이저 버젂 6을 인식 하고 있다고 예상

• 버젂 이름은 변경 량을 반영하는 것이 아니다
Windows 7 커널 개발 미션




• 성능 향상과 필요 메모리 용량을 줄이는 것

• Vista 커널을 한번 정리해서 최소한의 기능을 정리
MinWin ?
MinWin은 2003년 3월 MS가 Longhorn을 컴포넌트화
하고 있을 때부터 개발.
- MinWin은 Longhorn의 ‘기초가 되는 OS’ 부분의 컴
포넌트라고 소개.

처음 계획은 MinWin은 Vista에서 사용할 예정

2007년까지는 MinWin을 Server Core 버젂이라고 생
각 했음

2007년 10월 MS의 Distinguished Enginner의 Eric
Traut씨는 온라인 프리젠테이션에서 Windows 7용으
로 MinWin을 개발하고 있는 상황을 설명.
MinWin
• 꼭 필요한 최소한의 바이너리로 구성

• 컴포넌트화 하는 최초의 Step

• 기본이 되는 Windows 환경에 Boot 가능

• OS의 기본 동작이랑 API 호출 등을 갂략화

• 상위 레이어는 각각 개별로 개발 가능
MinWin
• Windows 환경으로 Boot하는 네트워크 서비스만을
제공

• David Culter의 NT : 커널, 파일 시스템 드라이버,
TCP/IP 스택, 디바이스 드라이버, 코어 시스템 서비스

• WMI, 그래픽, 오디오, Shell 등은 포함하지 않는다.
MinWin Layering

         Shell,
         Graphics,
         Multimedia,
         Layered Services,
         Applets,
         Etc.




         Kernel,
         HAL,
MinWin   TCP/IP,
         File Systems,
         Drivers,
         Core System Services
MinWin - Footprnt(리소스 사용량)

• 파일 수 : 150

• 디스크 사용량 : 30MB

• 메모리 사용량 : 40MB
MinWin에 대해서
MinWin에 대해서
DLL 리팩토링




• MinWin을 개발할 때 역점을 둔 것은 Vista에서 제공하
고 있는 시스템 DLL을 정비하는 것

• Vista가 가진 레거시 DLL을 그대로 Windows 7으로 가
져가면 Vista와 같이 성능면에서 단점이 생김
- MinWin을 개발할 때 ‘DLL 리팩토링’ 이라는 작업이 함
DLL 리팩토링 해야 할 것
•구현 내용은 변경하지 않고 DLL 구성이랑 구조를 변경
하여 레거시한 환경을 MinWin에는 가져가지 않도록 하
는것

• MinWin에서는 Windows가 가진 수 많은 API도 정리
- 예를 들면 32bit와 64bit에서 중복되는 기능을 정리하
고, 복수의 기능을 하나의 DLL로 모으는 것

• 그래서 MinWin에서 동작하고 있는 커널은 Vista의 커
널과는 완젂히 다르게 되었다
커널이 바꼈다면 기존 애플리케이션은?
• 커널이 바뀌어서 Vista용 애플리케이션은 MinWin을 베
이스로 한 Windows 7에서는 동작하지 못함

• 그래서 레거시 DLL을 새로운 MinWin API에 매핑하는
‘Virtual DLL’이라는 기능이 준비됨

• 기존의 애플리케이션은 레거시 DLL을 로드
  레거시 DLL이 MinWin API에 포워드 콜
  예 : Kernel32.dll -> Kernelbase.dll
      Advapi32.dll -> Kernelbase.dll
API Set
• 문제점
  DLL이 복수의 API Set을 포함
  DLL의 구현과 API Set 갂에 의존 관계가 존재

• API Set은 Virtual DLL로 대응
  API 구현과 API의 내부적 아키텍처 분리

• MinWin API Set이 최초의 Virtual DLL
 예 : Microsoft-Windows-System-Heap-L1-1-0.dll
     L[System Layer]-[API Major Ver]-[API Minor Ver]
Virtual DLL에서 레거시 DLL에 매핑
• 매핑 스키마는 Apisetschema.dll에 구현

• Kernel은 boot 시에 스키마를 각 프로세스 매핑

• 로더는 스키마를 참조할 DLL 로드 시에 매핑

• Virtual DLL은 애플리케이션 호환을 위해서 존재
  예 : Dependency Walker

 Virtual DLL 1
                 ApiSetSchema.dll   Logical DLL

 Virtual DLL 2
• Window 7에서는 커널을 젂면적으로 바꾸었지만 Vista와
같은 동작이 보증

• 또 Windows의 차기 버젂인 Windows 8에서는 Virtual
DLL 기능을 보다 강화해서 커널 자체는 64bit로 하고,
Virtual DLL로 레거시 32bit DLL을 지원하는 것도 고려.
-> OS의 32bit/64bit라는 구별 없이 32bit 환경을 완젂하게
지원하는 64bit OS가 된다

Weitere ähnliche Inhalte

Was ist angesagt?

03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지
03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지
03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지Opennaru, inc.
 
Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]
Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]
Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]정호 최
 
04.웹시스템 이해 하기
04.웹시스템 이해 하기04.웹시스템 이해 하기
04.웹시스템 이해 하기Opennaru, inc.
 
06. MSA 는 무엇이고 어떻게 다른가?
06.  MSA 는 무엇이고 어떻게 다른가?06.  MSA 는 무엇이고 어떻게 다른가?
06. MSA 는 무엇이고 어떻게 다른가?Opennaru, inc.
 
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드Opennaru, inc.
 
한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527성호 윤
 
IBM WebSphere Application Server(WAS) Value chart
IBM WebSphere Application Server(WAS) Value chartIBM WebSphere Application Server(WAS) Value chart
IBM WebSphere Application Server(WAS) Value chartJungWoon Lee
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드Opennaru, inc.
 
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버JungWoon Lee
 
컨테이너 와 가상화 기술 비교 발표 자료
컨테이너 와 가상화 기술 비교 발표 자료컨테이너 와 가상화 기술 비교 발표 자료
컨테이너 와 가상화 기술 비교 발표 자료Opennaru, inc.
 
10.컨테이너 기술의 이해
10.컨테이너 기술의 이해10.컨테이너 기술의 이해
10.컨테이너 기술의 이해Opennaru, inc.
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)Opennaru, inc.
 
OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼Tae Young Lee
 

Was ist angesagt? (16)

03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지
03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지
03. 이것만은 알자. 컨테이너 기술 기초부터 최신 트렌드 까지
 
Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]
Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]
Ko.xenapp xendesktop-75.cds-75-about-whats-new[1]
 
04.웹시스템 이해 하기
04.웹시스템 이해 하기04.웹시스템 이해 하기
04.웹시스템 이해 하기
 
06. MSA 는 무엇이고 어떻게 다른가?
06.  MSA 는 무엇이고 어떻게 다른가?06.  MSA 는 무엇이고 어떻게 다른가?
06. MSA 는 무엇이고 어떻게 다른가?
 
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
 
한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527
 
IBM WebSphere Application Server(WAS) Value chart
IBM WebSphere Application Server(WAS) Value chartIBM WebSphere Application Server(WAS) Value chart
IBM WebSphere Application Server(WAS) Value chart
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
OCP Switch Overview
OCP Switch OverviewOCP Switch Overview
OCP Switch Overview
 
OpenDaylight 소개
OpenDaylight 소개OpenDaylight 소개
OpenDaylight 소개
 
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
 
컨테이너 와 가상화 기술 비교 발표 자료
컨테이너 와 가상화 기술 비교 발표 자료컨테이너 와 가상화 기술 비교 발표 자료
컨테이너 와 가상화 기술 비교 발표 자료
 
10.컨테이너 기술의 이해
10.컨테이너 기술의 이해10.컨테이너 기술의 이해
10.컨테이너 기술의 이해
 
Hyper-v
Hyper-vHyper-v
Hyper-v
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
 
OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼
 

Andere mochten auch

What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?흥배 최
 
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술drandom
 
KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅흥배 최
 
닷넷 Apache avro
닷넷 Apache avro닷넷 Apache avro
닷넷 Apache avro흥배 최
 
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가Hyun-jik Bae
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션흥배 최
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발흥배 최
 
[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11흥배 최
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 
공성대전 C# 사용기
공성대전 C# 사용기공성대전 C# 사용기
공성대전 C# 사용기Myoung-gyu Gang
 
에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)Woo Yeong Choi
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback흥배 최
 

Andere mochten auch (15)

What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?
 
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
 
KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅
 
닷넷 Apache avro
닷넷 Apache avro닷넷 Apache avro
닷넷 Apache avro
 
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
 
Zookeeper소개
Zookeeper소개Zookeeper소개
Zookeeper소개
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
 
[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
공성대전 C# 사용기
공성대전 C# 사용기공성대전 C# 사용기
공성대전 C# 사용기
 
에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)
 
NLog 소개
NLog 소개NLog 소개
NLog 소개
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
 

Ähnlich wie MinWin에 대해서

[KCD2020] Win32 API로 다루는 Windows Subsystem for Linux
[KCD2020] Win32 API로 다루는 Windows Subsystem for Linux[KCD2020] Win32 API로 다루는 Windows Subsystem for Linux
[KCD2020] Win32 API로 다루는 Windows Subsystem for LinuxJung Hyun Nam
 
IBM multi vendor service(MVS)_202102
IBM multi vendor service(MVS)_202102IBM multi vendor service(MVS)_202102
IBM multi vendor service(MVS)_202102jiyoungkim158
 
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축Jung Hyun Nam
 
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...OpenStack Korea Community
 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1Tylor Shin
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
OpenStack
OpenStackOpenStack
OpenStackULUG
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetesNAVER D2
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례OpenStack Korea Community
 
Kubernetes에서 Windows Application 호스팅하기
Kubernetes에서 Windows Application 호스팅하기Kubernetes에서 Windows Application 호스팅하기
Kubernetes에서 Windows Application 호스팅하기정현 남
 
Journey to Windows Kubernetes
Journey to Windows KubernetesJourney to Windows Kubernetes
Journey to Windows KubernetesJung Hyun Nam
 
RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄Devgear
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty ServerJungWoon Lee
 
최민호 - 국내 포털에서의 우분투 (2012Y03M31D)
최민호 - 국내 포털에서의 우분투 (2012Y03M31D)최민호 - 국내 포털에서의 우분투 (2012Y03M31D)
최민호 - 국내 포털에서의 우분투 (2012Y03M31D)Ubuntu Korea Community
 
Windows Kubernetes Deep Dive
Windows Kubernetes Deep DiveWindows Kubernetes Deep Dive
Windows Kubernetes Deep DiveJung Hyun Nam
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함Ji-Woong Choi
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 

Ähnlich wie MinWin에 대해서 (20)

[KCD2020] Win32 API로 다루는 Windows Subsystem for Linux
[KCD2020] Win32 API로 다루는 Windows Subsystem for Linux[KCD2020] Win32 API로 다루는 Windows Subsystem for Linux
[KCD2020] Win32 API로 다루는 Windows Subsystem for Linux
 
IBM multi vendor service(MVS)_202102
IBM multi vendor service(MVS)_202102IBM multi vendor service(MVS)_202102
IBM multi vendor service(MVS)_202102
 
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축
 
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
OpenStack
OpenStackOpenStack
OpenStack
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
 
Kubernetes에서 Windows Application 호스팅하기
Kubernetes에서 Windows Application 호스팅하기Kubernetes에서 Windows Application 호스팅하기
Kubernetes에서 Windows Application 호스팅하기
 
oVirt introduction
oVirt introduction oVirt introduction
oVirt introduction
 
Journey to Windows Kubernetes
Journey to Windows KubernetesJourney to Windows Kubernetes
Journey to Windows Kubernetes
 
RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server
 
최민호 - 국내 포털에서의 우분투 (2012Y03M31D)
최민호 - 국내 포털에서의 우분투 (2012Y03M31D)최민호 - 국내 포털에서의 우분투 (2012Y03M31D)
최민호 - 국내 포털에서의 우분투 (2012Y03M31D)
 
Windows Kubernetes Deep Dive
Windows Kubernetes Deep DiveWindows Kubernetes Deep Dive
Windows Kubernetes Deep Dive
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 

Mehr von 흥배 최

Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용흥배 최
 
Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]흥배 최
 
Bash on Ubuntu on Windows
Bash on Ubuntu on WindowsBash on Ubuntu on Windows
Bash on Ubuntu on Windows흥배 최
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기흥배 최
 
Wtl 개요와 설치
Wtl 개요와 설치Wtl 개요와 설치
Wtl 개요와 설치흥배 최
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개흥배 최
 
Mongodb 관리
Mongodb 관리Mongodb 관리
Mongodb 관리흥배 최
 
Mongodb 개발 포인트
Mongodb 개발 포인트Mongodb 개발 포인트
Mongodb 개발 포인트흥배 최
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임흥배 최
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기흥배 최
 
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서흥배 최
 
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템흥배 최
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용흥배 최
 
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍흥배 최
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index흥배 최
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D흥배 최
 
[Final]조진현 direct write
[Final]조진현 direct write[Final]조진현 direct write
[Final]조진현 direct write흥배 최
 
Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것흥배 최
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것흥배 최
 

Mehr von 흥배 최 (20)

Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
 
Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]
 
Bash on Ubuntu on Windows
Bash on Ubuntu on WindowsBash on Ubuntu on Windows
Bash on Ubuntu on Windows
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
Wtl 개요와 설치
Wtl 개요와 설치Wtl 개요와 설치
Wtl 개요와 설치
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개
 
Mongodb 관리
Mongodb 관리Mongodb 관리
Mongodb 관리
 
Mongodb 개발 포인트
Mongodb 개발 포인트Mongodb 개발 포인트
Mongodb 개발 포인트
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기
 
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
 
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용
 
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D
 
[Final]조진현 direct write
[Final]조진현 direct write[Final]조진현 direct write
[Final]조진현 direct write
 
Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
 

MinWin에 대해서

  • 1. MinWin에 대해서 마이에트 엔터테인먼트 서버 프로그래머 최흥배 Microsoft Visual C++ MVP
  • 3. Windows 7과 Vista는 같다? 일반적으로 Windows 7은 Windows Vista와 같은 커널을 사용한다!
  • 4. 사실 Windows 7에서 커널에 변화가 있었다 . 그렇다고 완젂히 바뀐 것은 아니고 Vista의 커널을 베이스로 해서 튠업 그렇기 때문에 Windows 7의 커널 API 등은 Vista와 같다
  • 5. Windows 7과 Server 2008 R2는 같은 커널 • Vista와 Server 2008와 같은 소스 트리에서 빌드 • Release 후는 GDR 및 LDR 2개의 소스 트리를 사용 General Distribution Release = Windows Update Limited Distribution Release = Hotfix • 서비스 팩에서 브랜치를 리셋
  • 7. Windows 7의 버전은 왜 6.1? • 애플리케이션 호환성을 위해 • Release 타이밍에서는 많은 애플리케이션은 Vista의 메 이저 버젂 6을 인식 하고 있다고 예상 • 버젂 이름은 변경 량을 반영하는 것이 아니다
  • 8. Windows 7 커널 개발 미션 • 성능 향상과 필요 메모리 용량을 줄이는 것 • Vista 커널을 한번 정리해서 최소한의 기능을 정리
  • 9. MinWin ? MinWin은 2003년 3월 MS가 Longhorn을 컴포넌트화 하고 있을 때부터 개발. - MinWin은 Longhorn의 ‘기초가 되는 OS’ 부분의 컴 포넌트라고 소개. 처음 계획은 MinWin은 Vista에서 사용할 예정 2007년까지는 MinWin을 Server Core 버젂이라고 생 각 했음 2007년 10월 MS의 Distinguished Enginner의 Eric Traut씨는 온라인 프리젠테이션에서 Windows 7용으 로 MinWin을 개발하고 있는 상황을 설명.
  • 10. MinWin • 꼭 필요한 최소한의 바이너리로 구성 • 컴포넌트화 하는 최초의 Step • 기본이 되는 Windows 환경에 Boot 가능 • OS의 기본 동작이랑 API 호출 등을 갂략화 • 상위 레이어는 각각 개별로 개발 가능
  • 11. MinWin • Windows 환경으로 Boot하는 네트워크 서비스만을 제공 • David Culter의 NT : 커널, 파일 시스템 드라이버, TCP/IP 스택, 디바이스 드라이버, 코어 시스템 서비스 • WMI, 그래픽, 오디오, Shell 등은 포함하지 않는다.
  • 12. MinWin Layering Shell, Graphics, Multimedia, Layered Services, Applets, Etc. Kernel, HAL, MinWin TCP/IP, File Systems, Drivers, Core System Services
  • 13. MinWin - Footprnt(리소스 사용량) • 파일 수 : 150 • 디스크 사용량 : 30MB • 메모리 사용량 : 40MB
  • 16. DLL 리팩토링 • MinWin을 개발할 때 역점을 둔 것은 Vista에서 제공하 고 있는 시스템 DLL을 정비하는 것 • Vista가 가진 레거시 DLL을 그대로 Windows 7으로 가 져가면 Vista와 같이 성능면에서 단점이 생김 - MinWin을 개발할 때 ‘DLL 리팩토링’ 이라는 작업이 함
  • 17. DLL 리팩토링 해야 할 것 •구현 내용은 변경하지 않고 DLL 구성이랑 구조를 변경 하여 레거시한 환경을 MinWin에는 가져가지 않도록 하 는것 • MinWin에서는 Windows가 가진 수 많은 API도 정리 - 예를 들면 32bit와 64bit에서 중복되는 기능을 정리하 고, 복수의 기능을 하나의 DLL로 모으는 것 • 그래서 MinWin에서 동작하고 있는 커널은 Vista의 커 널과는 완젂히 다르게 되었다
  • 18. 커널이 바꼈다면 기존 애플리케이션은? • 커널이 바뀌어서 Vista용 애플리케이션은 MinWin을 베 이스로 한 Windows 7에서는 동작하지 못함 • 그래서 레거시 DLL을 새로운 MinWin API에 매핑하는 ‘Virtual DLL’이라는 기능이 준비됨 • 기존의 애플리케이션은 레거시 DLL을 로드 레거시 DLL이 MinWin API에 포워드 콜 예 : Kernel32.dll -> Kernelbase.dll Advapi32.dll -> Kernelbase.dll
  • 19. API Set • 문제점 DLL이 복수의 API Set을 포함 DLL의 구현과 API Set 갂에 의존 관계가 존재 • API Set은 Virtual DLL로 대응 API 구현과 API의 내부적 아키텍처 분리 • MinWin API Set이 최초의 Virtual DLL 예 : Microsoft-Windows-System-Heap-L1-1-0.dll L[System Layer]-[API Major Ver]-[API Minor Ver]
  • 20. Virtual DLL에서 레거시 DLL에 매핑 • 매핑 스키마는 Apisetschema.dll에 구현 • Kernel은 boot 시에 스키마를 각 프로세스 매핑 • 로더는 스키마를 참조할 DLL 로드 시에 매핑 • Virtual DLL은 애플리케이션 호환을 위해서 존재 예 : Dependency Walker Virtual DLL 1 ApiSetSchema.dll Logical DLL Virtual DLL 2
  • 21. • Window 7에서는 커널을 젂면적으로 바꾸었지만 Vista와 같은 동작이 보증 • 또 Windows의 차기 버젂인 Windows 8에서는 Virtual DLL 기능을 보다 강화해서 커널 자체는 64bit로 하고, Virtual DLL로 레거시 32bit DLL을 지원하는 것도 고려. -> OS의 32bit/64bit라는 구별 없이 32bit 환경을 완젂하게 지원하는 64bit OS가 된다