커널 ( 컴퓨팅 ) - 위키백과, 우리 모두의 백과사전 커널 ( 컴퓨팅 ) 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 커널이 응용 소프트웨어를 컴퓨터 하드웨어에 연결하고 있다. 컴퓨터 과학에서 커널 ( kernel ) 은 컴퓨터의 운영 체제의 핵심이 되는 컴퓨터 프로그램의 하나로, 시스템의 모든 것을 완전히 통제한다. [ 1 ] 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다. 핵심 ( 心 ) [ 2 ] 이라고도 한다. 목차 1 커널의 역할 2 역사 2. 1 초기의 커널 3 종류 3. 1 단일형 커널 3. 2 마이크로커널 3. 3 혼합형 커널 ( 수정 마이크로커널 ) 3. 4 엑소커널 3. 5 노커널 4 모놀리식 커널 대 마이크로 커널 논쟁 5 같이 보기 6 각주 7 외부 링크 커널의 역할 [ 편집 ] 커널은 운영 체제의 핵심 부분이므로, 커널의 역할 역시 운영 체제의 핵심 역할이라 할 수 있다. 보안 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임진다. 자원 관리 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다. 특히 프로세스에 처리기를 할당하는 것을 스케줄링이라 한다. 추상화 같은 종류의 부품에 대해 다양한 하드웨어를
##면서 사람들은 로더와 디버거 같은 작은 프로그램들이 상주해 있는 것이, 다른 프로그램으로 교체하거나 새로운 프로그램을 개발하는 데 유리하다는 사실을 알게 되었다. 이와 같은 로더, 디버거들이 초기 운영 체제 커널의 기초가 되었다. 종류 [ 편집 ] 단일형 커널 ( monolithic kernel ) - 커널의 다양한 서비스 및 높은 수준의 하드웨어 추상화를 하나의 덩어리 ( 주소 공간 ) 로 묶은 것이다. 운영 체제 개발자 입장에서 유지 보수가 일반적으로 더 어려우나 성능이 좋다. 마이크로커널 ( microkernel ) - 하드웨어 추상화에 대한 간결한 작은 집합을 제공하고 더 많은 기능은 서버라고 불리는 응용 소프트웨어를 통해 제공한다. 혼합형 커널 ( hybrid kernel ) - 성능 향상을 위해 추가적인 코드를 커널 공간에 넣은 점을 제외하면 많은 부분은 순수 마이크로커널과 비슷하다. 수정 마이크로커널이라고도 한다. 나노커널 ( nanokernel ) - 실질적으로 모든 서비스를 책임진다. 엑소커널 ( exokernel ) - 낮은 수준의 하드웨어 접근을 위한 최소한의 추상화를 제공한다. 전형적으로 엑소커널 시스템에서는 커널이 아닌 라이브러리가 단일형 커널 수준의 추상을 제공한다.
특히 프로세스에 처리기를 할당하는 것을 스케줄링이라 한다. 추상화 같은 종류의 부품에 대해 다양한 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 문제를 매우 복잡하게 만들 수 있다. 일반적으로 커널은 운영 체제의 복잡한 내부를 감추고 깔끔하고 일관성 있는 인터페이스를 하드웨어에 제공하기 위해 몇 가지 하드웨어 추상화 ( 같은 종류의 장비에 대한 공통 명령어의 집합 ) 들로 구현된다. 이 하드웨어 추상화는 프로그래머가 여러 장비에서 작동하는 프로그램을 개발하는 것을 돕는다. 하드웨어 추상화 계층 ( HAL ) 은 제조사의 장비 규격에 대한 특정한 명령어를 제공하는 소프트웨어 드라이버에 의지한다. 역사 [ 편집 ] 초기의 커널 [ 편집 ] 초창기의 컴퓨터에서 운영 체제 커널은 필수적인 것이 아니었다. 초기의 프로그램은 하드웨어 추상화나 운영 체제의 지원을 받지 않고도 컴퓨터만으로 불러들인 다음 실행될 수 있었으며, 이것은 초창기 컴퓨터들의 일반적인 운영 방식이었다. 다른 프로그램을 실행하기 위해서는 컴퓨터의 전원을 다시 입력자료를 읽어들여야 하는 방식이었다. 이러한 과정이 반복되면서 사람들은 로더와 디버거 같은 작은 프로그램들이 상주해 있는 것이, 다른 프로그램으로 교체하거나 새로운 프로그램
다른 프로젝트 공용 인쇄 / 내보내기 책 만들기PDF로 다운로드인쇄용 판 다른 언어 日 本 語 / / 中 文 링크 편집 이 문서는 2018년 11월 2일 ( 금 ) 17 : 13에 마지막으로 편집되었습니다. 모든 문서는 크리에이티브 커먼즈 저작자표시 - 동일조건변경허락 3. 0에 따라 사용할 수 있으며, 추가적인 조건이 적용될 수 있습니다. 자세한 내용은 이용 약관을 참고하십시오. 미국 및 다른 국가에 등록되어 있는 Wikimedia Foundation, Inc. 소유의 등록 상표입니다. 개인정보 정책 위키백과 소개 면책 조항 개발자 쿠키 정책 모바일 보기
모드 수퍼바이저 모드 스케줄링 알고리즘 공동 다중작업 / 시분할 선점 라운드 로빈 고전 우선순위 스케줄링 멀티레벨 피드백 큐 최단 작업 우선 메모리 관리 메모리 보호 메모리 세그먼트 페이징 세그멘테이션 오류 일반 보호 실패 버스 오류 예 아미가OS BeOS BSD 도스 GNU 리눅스 크롬 OS 맥 OS 모르프OS OS / 2 ReactOS 솔라리스 유닉스 윈도우 더 보기 기타 개념 부트 로더 라이브 CD 라이브 USB PXE API 가상 파일 시스템 가상 테이프 라이브러리 CLI TUI GUI VUI HAL 전거 통제 GND : 4338679 - 9 원본 주소 " " 분류 : 운영 체제 커널운영 체제 기술숨은 분류 : 영어 표기를 포함한 문서GND 식별자를 포함한 위키백과 문서 둘러보기 메뉴 개인 도구 로그인하지 않음토론기여계정 만들기로그인 이름공간 문서토론 변수 보기 읽기편집역사 보기 더 보기 검색 둘러보기 대문사용자 모임요즘 화제최근 문서 보기임의 문서로도움말기부 도구 여기를 가리키는 문서가리키는 글의 최근 올리기특수 문서 목록고유 링크문서 정보위키데이터 항목이 문서 인용하기 다른 프로젝트 공용 인쇄 / 내보내기 책 만들기PDF로 다운로드인쇄용 판 다른 언어 日 本 語 /
##은 오히려 모든 사용자가 각기 실제 호스트 컴퓨터의 자원을 모방한 컴퓨터를 받는VM / 370 운영 체제와 비슷하다. 반면에 모놀리식 커널이든 마이크로 커널이든 전통적인 커널 설계는 하드웨어 추상화 계층 ( HAL ) 이나 장치 드라이버 아래 자원을 숨김으로써 하드웨어를 추상화한다. 한 예로 전통적인 시스템에서 물리 메모리가 할당할 때 실제 위치를 알려주지 않기 때문에 오프셋과 기억 관리 장치를 통해서만 문제를 해결 할 수 있다. 노커널 [ 편집 ] TUNES Project [ 1 ] 와 UnununiumOS [ 2 ] 는 노커널 [ 3 ] 실험이다. 노커널 소프트웨어는 단일 중앙 입구의 제약이 없다. 모놀리식 커널 대 마이크로 커널 논쟁 [ 편집 ] 1990년대 초기 모놀리식 커널은 진부한 것으로 여겨졌다. 리누스 토르발스와 앤드류 타넨바움간에 일어난 리눅스의 설계인 모놀리식 커널과 마이크로커널에 대한 프레임 워는 유명했다. [ 4 ] [ 5 ] 타넨바움과 토르발스의 토론에 제시된 두 진영의 의견은 일장일단이 있다. 두 진영의 성공 사례가 있다. 모놀리식 커널은 정확한 설계가 쉽고 마이크로커널 기반 시스템보다 빨리 성장할 수
##T 벨로나2 AIX AGNIX 마이크로커널 [ 편집 ] 이 부분의 본문은 마이크로커널입니다. 마이크로커널의 구조 마이크로커널은 하드웨어 위에 매우 간결한 추상화를 정의한다. 기본 연산 집합과 운영 체제 서비스를 구현한 스레드 관리, 주소 공간, 프로세스간 통신의 작은 시스템 콜으로 이루어져 있다. 일반적으로 커널이 제공하는 네트워킹과 같은 다른 서비스들은 사용자 공간 프로그램인 서버로 구현한다. 운영 체제는 서버를 다른 일반적인 프로그램처럼 간단히 시작하고 끌 수 있다. 이를테면 네트워킹 지원이 필요 없는 작은 시스템에서는 간단히 서버를 끄면 된다. 이 경우 전통적인 시스템에서는 재컴파일이 필요했고 일반 사용자의 능력 밖의 일이다. 이론적으로 마이크로커널에서 시스템은 더 안정적이다. 서버가 중단될 때 커널의 충돌이 아니기 때문에 단 하나의 프로그램만 내려버리면 된다. 그러나 서버가 실패한 후 시스템 상태도 잃어버릴 경우 응용 프로그램이 계속 수행되는 것은 그 응용 프로그램이 막 복사된 다른 서버를 이용하게 되더라도 보통은 매우 힘들다. 예를 들어 TCP / IP 연결을 요구하는 ( 이론적인 ) 서버가 다시 시작되면 응용 소프트웨어는 연결이 " 끊어졌습니다. " 라고 말하고 서버의 새 인스턴스를 찾아서 다시 연결한다.
OS ( 나노커널 ) KeyKOS ( 나노커널 ) L4 마이크로커널 Mach ( 커널 ) - GNU 허드, 넥스트스텝, 오픈스텝, OS X에 사용 됨. MERT 미닉스 MorphOS NewOS QNX Phoenix - RTOS RadiOS Spring operating system VSTa 심비안 OS 혼합형 커널 ( 수정 마이크로커널 ) [ 편집 ] 이 부분의 본문은 하이브리드 커널입니다. 혼합형 커널의 구조 혼합형 커널은 본질적으로 마이크로커널을 따르나, 일부 커널의 비 ( 非 ) 본질적 기능이더라도 사용자 레벨에서 수행될 때 성능상 느린 코드들을 커널 레벨에서 수행하도록 수정한 것을 말한다. 이는 다양한 운영 체제 개발자들이 마이크로커널 기반의 설계를 받아들이던 시점에 순수한 마이크로커널의 성능상의 한계를 인식하고 타협한 결과이다. 예를 들어, OS X의 커널인 XNU는 Mach 커널 3. 0 마이크로커널에 기반을 두고 있지만, 전통적인 마이크로커널 설계의 지연 현상을 줄이기 위해 BSD 커널의 일부 코드들을 들여와 동일한 주소 영역에서 실행하고 있다. DragonFly BSD는 첫 번째 비 Mach 기반의 BSD OS로 혼합형 커널 구성을 적용한 예이다. 하이브리드 커널로는 다음
있다고 주장한다. 리눅스, FreeBSD, 솔라리스와 같은 최신의 단일형 커널은 실행 모듈을 실시간으로 읽어들일 수 있다. 실시간으로 실행 모듈을 읽는 특징은 커널이 허용하는 범위 내에서 손쉽게 확장할 수 있게 커널 공간의 코드의 양을 최소한으로 유지시켜 준다. 마이크로소프트 윈도 NT 제품군 ( NT, 2000, XP, 2003, 비스타, 7, 8, 8. 1, 10 ) 은 처음에는 혼합형 커널이었으나 나중에 나온 것들은 단일형 커널로 바뀌었다. 윈도 NT 시리즈는 상위의 서비스들을 NT executive이라는 서버로 구현하였다. Win32 특성은 처음에는 사용자 모드의 서버 형태로 구현되었으나, 최근 버전에서는 관리자 주소 영역으로 이동하였다. 다양한 서버들이 로컬 프로시저 콜 ( LPC : Local Procedure Call ) 이라 불리는 주소 영역간 매커니즘을 통해 통신하며, 성능을 최적화하기 위해 공유 메모리를 이용한다. 주로 다음 운영 체제들의 커널이 단일형 커널인 것으로 알려져 있다. 유닉스 BSD 리눅스 솔라리스 윈도 NT 벨로나2 AIX AGNIX 마이크로커널 [ 편집 ] 이 부분의 본문은 마이크로커널입니다. 마이크로커널의
##X는 우주 왕복선의 로봇 팔과 ( 작은 실수가 수십억의 손실을 입히는 허블 우주망원경의 거울 등의 ) 오차에 민감한 유리를 닦는 기계에도 적용되었다. 같이 보기 [ 편집 ] 운영 체제 셸 각주 [ 편집 ] ↑ " Kernel ". 《 Linfo 》. Bellevue Linux Users Group. 2016년 9월 15일에 확인함. ↑ 컴퓨터인터넷IT용어대사전 - 핵심 외부 링크 [ 편집 ] 소스포지의 운영 체제 커널 Freshmeat의 운영 체제 커널 MIT 엑소커널 운영 체제 KeyKOS 나노커널 구조, 1992년 노르만 하르디저 넷웨어 운영 체제 개론, 1994년 Drew Major, Greg Minshall, Kyle Powell 저 ( 넷웨어 운영 체제 뒤의 기본 구조 ). vdeh운영 체제일반 역사 연표 목록 점유율 비교 개발 커널일반 구조 모놀리식 커널 마이크로커널 하부 구조 엑소커널 나노커널 하이브리드 구성 요소 사용자 / 커널 공간 서버 적재 가능 커널 모듈 장치 드라이버 프로세스 관리개념 프로세스 프로세스 제어 블록 인터럽트 스레드 문맥 교환 스케줄링 CPU 모드 보호 모드 수퍼바이저 모드 스케줄링 알고리즘 공동 다중작업 / 시분할 선점 라운드 로빈 고전 우선순위 스케줄링 멀티레벨 피드백 큐 최단
컴퓨터 과학에서 커널(kernel)은 컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 제어(control)한다. 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다. 핵심(核心)이라고도 한다.