하이브리드 커널
Hybrid kernel하이브리드 커널(hybrid kernel)은 운영 체제에서 사용되는 마이크로커널과 모놀리식 커널 아키텍처의 측면과 이점을 결합하려는 운영 체제 커널 아키텍처입니다.[1][2][unreliable source?]
개요
전통적인 커널 범주는 단일 커널과 마이크로커넬(나노커넬과 엑소커넬은 마이크로커넬의 더 극단적인 버전으로 간주됨)입니다.하이브리드(hybrid) 범주는 하이브리드 커널과 일반적인 단일 커널의 유사성 때문에 논란의 여지가 있습니다. 리누스 토르발스(Linus Torvalds)는 이 용어를 단순한 마케팅이라고 일축했습니다.[3]
하이브리드 커널의 아이디어는 마이크로커널과 비슷한 커널 구조를 가지고 있지만, 그 구조를 단일 커널의 방식으로 구현하는 것입니다.마이크로커널과는 달리 하이브리드 커널의 모든(또는 거의 모든) 운영 체제 서비스는 여전히 커널 공간에 있습니다.마이크로커널과 마찬가지로 사용자 공간에 서비스를 제공함으로써 얻을 수 있는 신뢰성 이점은 없습니다.그러나 일반적인 단일 커널과 마찬가지로 마이크로커널과 함께 제공되는 커널과 사용자 모드 사이의 메시지 전달 및 컨텍스트 전환을 위한 성능 오버헤드가 없습니다.
예
NT커널
이 섹션은 검증을 위해 추가적인 인용이 필요합니다.(2022년 8월) (이 를 및 알아보기 |
마이크로소프트 윈도우 NT 커널은 윈도우 11과 윈도우 서버 2022를 포함한 윈도우 NT 계열의 모든 운영 체제에 전원을 공급하며 윈도우 폰 8, 윈도우 폰 8.1, 엑스박스 원에 전원을 공급하는 하이브리드 커널을 포함합니다.
윈도우 NT는 하이브리드 커널을[citation needed] 기반으로 한 최초의 윈도우 운영 체제였습니다.하이브리드 커널은 카네기 멜론 대학의 리차드 라시드가 개발한 마하 마이크로커널의 영향을 받아 변형된 마이크로커널로 설계되었지만 순수 마이크로커널의 모든 기준을 충족시키지는 못했습니다.NT 기반 윈도우는 단일 커널이 아닌 하이브리드 커널(또는 매크로 커널[4])로 분류되는데, 이는 에뮬레이션 서브시스템이 단일 커널처럼 커널 모드가 아닌 사용자 모드 서버 프로세스에서 실행되기 때문입니다.또한 마하의 디자인 목표와 유사한 디자인 목표의 수가 많기 때문에(특히 일반적인 커널 디자인에서 OS의 성격을 분리하는 것)반대로 NT가 마이크로커널 시스템이 아닌 이유는 시스템 구성 요소의 대부분이 커널과 동일한 주소 공간에서 실행되기 때문입니다. (전통적인 단일 설계에서는 마이크로커널 자체가 존재하지 않을 것입니다.)그러나 커널은 NT의 마이크로커널 및 커널 모드 서브시스템과 광범위하게 유사한 기능을 구현할 것입니다.
Windows의 기본 운영 체제 특성은 항상 존재하는 Windows API입니다.윈도우즈 특성을 구현하는 에뮬레이션 하위 시스템을 클라이언트/서버 런타임 하위 시스템(csrs.exe)이라고 합니다.NT 4.0 이전 버전에서는 이 하위 시스템 프로세스에 윈도우 관리자, 그래픽 장치 인터페이스 및 그래픽 장치 드라이버도 포함되어 있었습니다.그러나 성능상의 이유로 버전 4.0 이상에서는 이러한 모듈(모놀리식 시스템에서도 종종 사용자 모드로 구현되며, 특히 내부 그래픽 지원 없이 설계된 모듈)이 커널 모드 서브시스템으로 실행됩니다.[4]
NT에서 실행되는 응용 프로그램은 OS 개인(일반적으로 Windows API) 중 하나에 기록되며, 문서를 공개적으로 사용할 수 없는 네이티브 NT API에는 기록되지 않습니다(장치 드라이버 개발에 사용되는 루틴은 제외).OS 속성은 에뮬레이션 서브시스템 서버 프로세스(앞에서 설명한 바와 같이)와 함께 필요에 따라 애플리케이션 프로세스의 주소 공간에 매핑되는 일련의 사용자 모드 DLL(Dynamic-link library 참조)을 통해 구현됩니다.응용 프로그램은 주소 공간에 매핑된 OS 개인 DLL을 호출하여 시스템 서비스에 액세스하고, 이 DLL은 NT 런타임 라이브러리(ntdll.dll)에도 호출되며, 프로세스 주소 공간에도 매핑됩니다.NT 런타임 라이브러리는 커널 모드로 트래핑하여 커널 모드 Executive 루틴을 호출하거나 로컬 프로시저 호출(LPC)을 해당 사용자 모드 서브시스템 서버 프로세스에 수행함으로써 이러한 요청을 처리합니다. 이 서버는 NT API를 사용하여 애플리케이션 프로세스,[5] 이러한 요청을 처리합니다.
XNU 커널
XNU는 애플사가 맥OS, iOS, 와치OS, tvOS 운영체제에 사용하기 위해 인수하여 개발한 커널로 다윈 운영체제의 일부로 자유 및 오픈 소스 소프트웨어로 출시되었습니다.XNU는 유닉스가 아닌 X의 약자입니다.[6]
원래 NeXTSTEP 운영 체제용으로 NeXT가 개발한 XNU는 마하 커널 버전 2.5와 4.3의 구성 요소를 결합한 하이브리드 커널이었습니다.드라이버 키트(Driver Kit)라는 드라이버 작성을 위한 BSD와 객체 지향 API.
애플이 NeXT를 인수한 후, 마하 구성 요소는 마이크로커널인 OSFMK 7.3으로 업그레이드되었습니다.[7][8]Apple은 FreeB의 일부와 하이브리드 커널로 기능하는 대폭 수정된 OSFMK 7.3을 사용합니다.SD가 [7]포함되어 있습니다. (OSFMK 7.3에는 유타 대학교 마하 4 커널의 적용 가능한 코드와 원래 카네기 멜론 대학교 마하 3.0 커널에서 파생된 많은 마하 3.0 변종의 적용 가능한 코드가 포함되어 있습니다.BSD 구성 요소는 FreeB의 코드로 업그레이드되었습니다.SD 프로젝트와 Driver Kit는 I/O Kit이라는[citation needed] 드라이버 작성을 위한 C++ API로 대체되었습니다.
묘사
다른 일부 현대 커널과 마찬가지로 XNU는 단일 커널과 마이크로 커널의 기능을 모두 포함하는 하이브리드로서 마이크로 커널의[citation needed] 메시지 전달 기능과 OS의 더 많은 부분이 보호 메모리의 혜택을 누릴 수 있도록 하는 등 두 기술을 모두 최대한 활용하려고 시도합니다.[citation needed]특정 중요한 작업에 대해 단일 커널 속도를 유지하는 것은 물론입니다.
다른이들
- BeOS
- 음절
- BSD 기반의
- DragonFly BSD (하이브리드 커널을 사용하는 최초의 비 마하 BSD OS)
- 넷웨어[9]
- Bell Labs의 Plan 9
- OS/2[10]
- 리액트OS
참고 항목
메모들
- ^ "Hybrid Kernel - OSDev Wiki". wiki.osdev.org. Retrieved 2021-01-11.
- ^ "What is Hybrid Kernel? - Definition from Techopedia". Techopedia.com. 22 August 2011. Retrieved 2021-01-11.
- ^ "Linus Torvalds".
As to the whole "hybrid kernel" thing - it's just marketing. It's "Oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has.
- ^ a b "MS Windows NT Kernel-mode User and GDI White Paper". Microsoft Corporation. 2007. Retrieved 2022-08-24.
- ^ Probert, Dave (2005). "Overview of Windows Architecture". Using Projects Based on Internal NT APIs to Teach OS Principles. Microsoft Research/Asia - Beijing. Archived from the original on 2007-11-28. Retrieved 2007-03-01.
- ^ "Porting UNIX/Linux Applications to OS X: Glossary". Apple Computer. 2005. Retrieved 2017-06-16.
- ^ a b Jim Magee. WWDC 2000 Session 106 - Mac OS X: Kernel. 14 minutes in.
- ^ Douglas M. Wells (1994). A Trusted, Scalable, Real-Time Operating System Environment (PDF). 1994 IEEE Dual-Use Technologies and Applications Conference. S2CID 5205380. Archived from the original (PDF) on 2017-08-22.
- ^ Drew Major; Greg Minshall; Kyle Powell. "An Overview of the NetWare Operating System".
- ^ "OS/2 Kernel". Retrieved 2020-09-04.
참고문헌
- Mark Russinovich (November 23, 2004). "Inside the Native API". Sysinternals. Archived from the original on March 15, 2006. Retrieved July 24, 2006.