답변:
운영 체제의 기술적 정의는 "응용 프로그램을 구축하고 서로 상호 작용할 수있는 특정 라이브러리 및 인프라로 구성된 플랫폼"입니다. 커널은 그런 의미에서 운영 체제입니다.
최종 사용자 정의는 일반적으로 "데스크톱, 응용 프로그램 바로 가기, 웹 브라우저 및 미디어 플레이어를 제공하는 소프트웨어 패키지"와 관련이 있습니다. 커널이 그 정의와 일치하지 않습니다.
따라서 최종 사용자에게는 Linux 배포판 (예 : Ubuntu)이 운영 체제 인 반면 프로그래머에게는 Linux 커널 자체가 달성하려는 대상에 따라 완벽하게 유효한 OS입니다. 예를 들어 임베디드 시스템은 대부분 매우 적은 수의 특수 프로세스가 실행되는 커널입니다. 이 경우 커널 자체가 OS 자체가됩니다.
해당 OS에서 실행되는 대부분의 응용 프로그램이 필요로하는 것에 선을 그릴 수 있다고 생각합니다. 그들 대부분이 커널만을 필요로한다면, 커널은 OS이고, 그들 대부분이 X Window 시스템 실행을 요구한다면, OS는 X + 커널이됩니다.
커널 를 중개 시스템 자원에 접근하는 운영 체제의 일부입니다. CPU, 메모리, 디스크 I / O 및 네트워킹에 대한 액세스를 제어하여 여러 응용 프로그램이 하드웨어를 효과적으로 공유 할 수 있도록합니다.
운영 체제 커널 플러스 수행 뭔가를 얻을 할 수 있도록 응용 프로그램 (즉, 컴파일러, 텍스트 편집기, 윈도우 관리자 등).
처음에 이것을 위해 "커널"이라는 단어를 얻은 원래의 은유는 잊혀진 것 같습니다. 은유는 운영 체제가 시드라는 것입니다. 시드의 "커널"은 운영 체제의 핵심으로, 응용 프로그램에 운영 체제 서비스를 제공하며, 사용자는 외부에서 보는 시드의 "쉘"로 둘러싸여 있습니다.
어떤 사람들은 "커널"(그리고 실제로 "쉘")을 그보다 더 구체적으로 묶기를 원합니다. 그러나 실제로 운영 체제마다 많은 변형이 있습니다. 이러한 변형은 "쉘"(Solaris sh
에서 Netware의 Console Command Interpreter를 통한 OS / 2의 Workplace Shell 및 Windows NT 탐색기에 이르기까지 다양 함)을 구성하는 것입니다 . 그러나 운영 체제마다 차이가 있습니다 "커널"의 일부는 무엇입니까 (예 : 디스크 I / O를 포함하거나 포함하지 않을 수 있음).
이 용어는 은유라는 것을 기억하는 것이 가장 좋습니다 .
커널과 OS에는 차이가 있습니다. 위에서 설명한 커널은 OS의 핵심 기능을 관리하는 OS의 핵심이며 일부 유용한 응용 프로그램과 유틸리티가 커널에 추가되면 전체 패키지가 OS가됩니다. 따라서 운영 체제는 커널 공간과 사용자 공간으로 구성되어 있다고 쉽게 말할 수 있습니다.
따라서 우리는 리눅스가 파일 시스템 유틸리티, 윈도우 시스템 및 그래픽 데스크탑, 시스템 관리자 명령, 텍스트 편집기, 컴파일러 등과 같은 응용 프로그램을 포함하지 않기 때문에 커널이라고 말할 수 있습니다. 따라서 다양한 회사가 Linux 커널을 통해 이러한 종류의 응용 프로그램을 추가합니다 우분투, 수세, centOS, redHat 등과 같은 운영 체제를 제공합니다.
커널은 운영 체제 자체가 아닌 운영 체제의 일부입니다. 커널이하는 모든 일을 다루는 대신 wikipedia 페이지 ( http://en.wikipedia.org/wiki/Kernel_%28computing%29)를 참조하겠습니다 . 훌륭하고 철저한 개요.
간단한 답변
커널은 운영 체제의 핵심 부분입니다. 반드시 운영 체제 자체는 아닙니다.
그 밖의 모든 것이 그 주위에 내장되어 있습니다.
정교한 정의
컴퓨팅에서 '커널'은 대부분의 컴퓨터 운영 체제의 핵심 구성 요소입니다. 응용 프로그램과 하드웨어 수준에서 수행되는 실제 데이터 처리 사이의 다리입니다. 커널의 책임에는 시스템 리소스 관리 (하드웨어와 소프트웨어 구성 요소 간의 통신)가 포함됩니다. 일반적으로 운영 체제의 기본 구성 요소 인 커널은 응용 프로그램 소프트웨어가 기능을 수행하기 위해 제어해야하는 리소스 (특히 프로세서 및 I / O 장치)에 가장 낮은 수준의 추상화 계층을 제공 할 수 있습니다. 일반적으로 프로세스 간 통신 메커니즘과 시스템 호출을 통해 이러한 기능을 응용 프로그램 프로세스에서 사용할 수 있습니다.
커널은 운영 체제이거나 운영 체제의 일부일 수 있습니다. Linux에서는 커널이 먼저로드되어 실행됩니다. 그런 다음 시스템을 유용하게 만들기 위해 OS의 다른 비트 (init와 같은)를 시작합니다.
이것은 마이크로 커널 환경에서 특히 그렇습니다. 커널은 최소한의 기능을 가지고 있습니다. 파일 시스템 및 TCP / IP와 같은 다른 모든 것은 사용자 프로세스로 실행됩니다.
ruby -e "puts Kernel.methods"
많은 메소드가 정의되어 있습니다.