커널 이외의 운영 체제에는 무엇이 있습니까?


43

알다시피 커널은 하드웨어와의 모든 상호 작용을 수행하고 메모리, I / O 장치 등을 관리합니다. 따라서 커널은 모든 작업을 수행하지만 운영 체제의 일부일뿐입니다. 그렇다면 OS에는 무엇이 있습니까? 번들로 제공되는 응용 프로그램 만? 예를 들어, 우분투는 커널 이외의 것을 가지고 있습니까? Gnome Desktop 및 기타 응용 프로그램

답변:


54

물론 껍질.

처음에 이것을 위해 "커널"이라는 단어를 얻은 원래의 은유는 너무 자주 잊혀집니다. 은유는 운영 체제가 시드 또는 너트라는 것입니다. 시드의 "커널"은 운영 체제의 핵심으로, 응용 프로그램에 운영 체제 서비스를 제공하며, 사용자는 외부에서 보는 시드의 "쉘"로 둘러싸여 있습니다.

어떤 사람들은 "커널"(그리고 실제로 "쉘")을 그보다 더 구체적으로 묶기를 원합니다. 그러나 실제로 운영 체제마다 많은 변형이 있습니다. 이러한 변형이 "쉘"(Solaris sh에서 Netware의 Console Command Interpreter를 통한 OS / 2의 Workplace Shell 및 Windows NT 탐색기에 이르기까지 다양 함)을 구성하는 것은 아니지만 운영 체제마다 차이가 있습니다. "커널"의 일부는 무엇입니까 (예 : 디스크 I / O를 포함하거나 포함하지 않을 수 있음). 이 용어는 은유라는 것을 기억하는 것이 가장 좋습니다 .

다른 용어가 있습니다. IBM 메인 프레임 용어에서 시드 / 너트 은유의 "커널"을 제어 프로그램 이라고합니다 . 다른 이름으로는 감독자 , 모니터 , 핵심임원이 있습니다. 핵심은 또 다른 명백한 생물학적 은유입니다. 다른 이름도 흥미 롭습니다. 하비 M. Deitel는 그의에서 운영 시스템 의 제어 프로그램을 호출 , 말한다

핵은 일반적으로 전체 운영 체제로 일반적으로 생각되는 것의 코드의 작은 부분을 나타냅니다 [...]

"nucleus"라는 단어는 라틴어 에서 나 왔으며 너트의 커널을 의미합니다 ( "nut"을 의미 하는 Latin nux 참조). 따라서 제어 프로그램을 "핵"이라고 부르는 것조차도 사실상 동일한 운영 체제를 너트로 비유하는 것입니다. 단순한 운영 체제 이상으로 사용되는 비유입니다. 예를 들어 화학에 익숙하다면 원자핵 이 전자 껍질로 둘러싸여 있다는 것을 알게 될 것입니다 .

가상의 사람 new123456이 아래에 쓴 내용은 이러한 은유의 기원을 잊어 버려서 발생하는 실수를 전체의 일부를 실수로하고 전체 운영 체제의 커널을 실수로 범하는 정도를 나타냅니다. "userland"프로그램이라고해서 쉘이 운영 체제 외부로 떨어지거나 커널을 둘러싸고있는 것으로 만들지는 않습니다. 또한, 버전 7 이후의 Unix에는 적용되지 않는 DOS 전용 아이디어와는 거리가 멀다.

new123456DOSism으로 오해하는 것은 아이러니 한 일이다. 커널 / 쉘 은유는 초기에는 DOS와 상당히 이질적이었으며 , CP / M의 명령 프로세서 와 그와 유사한 것을 선호했다 . 에 기본 디스크 운영 체제 (BDOS)의 기본 입출력 시스템 (BIOS -이 아닌 시스템 펌웨어 주)는 명령 프로세서가사 유틸리티 . 코드는 실제로 파일에이 방법을 소포로 된이 다른 것입니다. 실제로 커널 / 쉘 메타포 가 실제로 많은 운영 체제 의 실제 디비전을 다루거나 완전히 일치시키지 않는 방법에 대한 예 )

new123456전체 운영 체제 의 일부인 핵에 대해 Deitel이 작성한 것을 잊고 있습니다. 운영 체제는 모두 커널과 쉘. 그것은 결국 은유입니다. Deitel도 혼자가 아닙니다. 1980 년대부터 유닉스와 같은 비유를 설명하는 유닉스 책이 많이 있습니다. 나는 어번과 Tiemann이 24 시간 안에 FreeBSD를 가르쳐라 (SAMS, ISBN 9780672324246). 그렇게하는 몇 권의 책.

"핵"이라는 이름은 아마도 이전 이름 ​​일 것입니다. 확실히 유닉스를 포식하는 것은 오늘날 유닉스 덕분에 커널 / 쉘 용어가 더 선호된다는 커널 / 쉘 용어를 선호한다. 다음은 Alan C. Shaw의 1974 년 책 운영 체제의 논리적 설계 (Prentice-Hall, ISBN 9780135401125)에있는 내용입니다.

주 저장 장치에 영구적으로 상주하는 시스템의 일부를 역사적으로 이라고합니다 . 핵은 일반적으로 프로세스, 자원 및 입출력을 관리하기위한 최소한의 기본 요소와 프로세스로 구성됩니다.
Shaw도 다이어그램을 가지고 있습니다. ☺


7
나는 이것이 은유 "쉘"과 "커널"사이의 관계를 내 마음에 가져 왔기 때문에 훌륭한 대답이라고 생각한다. 나는 둘 다 알았고 결코 연결하지 못했습니다. 나는 그 질문에 대한 답을 알고 있었지만 여전히이 대답에서 무언가를 배울 수있었습니다. 따라서 공감. 감사!
앤드류 J. Brehm

유닉스 쉘은 버전 7 이후 커널 자체에서 추상화되었으며 모든 의미에서 userland 프로그램을 가지고 있기 때문에 이것을 망설이게 될 것입니다. 그러나 DOS는 특히 끔찍한 디자인 선택입니다.
새로운 123456

잘 연주했습니다. 그러나 @사용자 이름을 언급 할 때 응답 대기열에 게시되도록 어딘가에 남겨 두십시오 .
새로운 123456

많은 흥미로운 역사를 가진 포괄적 인 답변으로 변모했습니다 (컴퓨터 용어 또는 라틴어 어원으로 핵을 알지 못했습니다). 그러나 다른 사용자의 (현재 삭제 된) 답변을 명시 적으로 언급하지 않으면 독립형 답변으로 훨씬 잘 읽힐 것이라고 생각합니다.
Anthony G-Monica의 정의

45

운영 체제의 다른 부분에는 커널과 상호 작용하는 드라이버, 사용자 인터페이스, 네트워킹 및 커널과 실제 응용 프로그램 사이에있는 OS의 기타 핵심 부분을 처리하는 여러 계층의 도우미 프로그램이 있습니다.

예를 들어, OS X구조를 보여주었습니다. 커널 (하늘색) 위에 보이는 것처럼 "핵심"기능, 시스템 도구, 서비스 및 API (응용 프로그램 프로그래밍 인터페이스)의 여러 계층이 있습니다. 심지어 실제 응용 프로그램 자체에서 일반적으로 사용하는 GUI에 액세스하십시오.

여기에 이미지 설명을 입력하십시오

대부분의 운영 체제는 비슷한 구조를 가지고 있지만 실제로 커널의 일부가 얼마인지에 대한 차이점은 광범위합니다. 비교 에 대한 마이크로 커널에 대한 Wikipedia 기사를 참조하십시오 .

편집-귀하의 의견에 답하기 위해 (내 의견이 약간 길었습니다)

리눅스 커널 만 부팅 있지만 실제로 많은 것을 달성 할 수는 없습니다. 보시고 사용하는 모든 인터페이스를 제공하는 모든 도우미 응용 프로그램입니다.

커널이 부팅되고 하드웨어가 초기화되면 서비스를 시작하기위한 기능을 제공하는 GNU / Linux 운영 체제의 다른 부분 (예 : 원시 장치 인터페이스로 채워진 UDEV 등) /dev을 사용하여 프로그램을 사용할 수 있습니다. 응용 프로그램이 GNOME 또는 KDE 와 같은 창 관리자를 통해 창과 아이콘을 표시 할 수 있도록 X.org 와 같은 네트워크 ( dhcpcd ) 및 API 를 설정하는 하드 드라이브 및 직렬 포트 등) 및 프로그램 .

그러나 그렇습니다. 커널 자체를 부팅 할 수 있습니다. "부팅했습니다. 이제 무엇을해야합니까?" 신속한.


그래서 커널 부팅 할 수 있고 OS가 일반적으로 가지고있는 추가 항목은 없습니다.
AnkurVj

이론적으로, 나는 생각하지만,하지 않을 그 위에 다른 프로그램없이 아무것도. 사람들이 재미를 위해 만든 커널, 셸, 컴파일러 또는 어셈블러 같은 작은 운영 체제가 있습니다 (리눅스가 실제로 이런 방식으로 시작된 것 같습니다).
user55325

@AnkurVj 답변에 추가했습니다.
Mokubai

3
리눅스 커널 만 부팅 할 수 있다고 생각하지 않습니다. 커널은 시스템이 커널 모드에서 사용자 모드로 전환 할 때 init를 호출하는 지점에 도달합니다. init을 사용할 수 없거나 bash와 같은 가짜 init을 사용하면 커널 패닉이 발생하고 충돌합니다. 따라서 공황을 피하기 위해 init 프로세스가 실행 중이어야합니다.이 시점에서 실제로 커널이 실행되는 것은 아닙니다.
Joe Internet

1
베어 커널을 부팅 할 수 있지만 나머지 OS가 없으면 사용자는 해당 커널과 상호 작용할 수 없습니다.
Keltari
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.