답변:
OS의 매우 다른 두 부분을 혼동하는 것 같습니다. 그것들은 종종 상호 교환 가능하게 참조되기 때문에 이해할 수 있지만 기술적으로 잘못되었으므로 귀하의 질문은 잘못된 전제에 기초합니다. 묻고 자하는 질문을 충분히 탐구하고 희망적으로 대답하기 위해서는 짧은 역사 수업이 필요합니다.
첫째, 유닉스가있었습니다. 기본적으로 그 당시 유닉스 는 AT & T 유닉스 시스템을 의미 했습니다 . 그러나 AT & T UNIX는 Free가 아니기 때문에 Richard Stallman은 Free 인 Unix 시스템을 작성하기 위해 GNU 프로젝트를 시작했습니다 . 따라서 Gnu 라는 이름은 GNU가 아닌 Unix가 아닙니다 . GNU에 대한 계획은 1983 년에 공개 되었고 1984 년에 개발이 시작되었습니다 .
1990 년대 초, GNU는 대부분의 유닉스 유틸리티를 처음부터 다시 구현했습니다. 위키 백과는 재 작성되지 않은 전체 시스템의 일부 구성 요소를 나열 합니다 (TeX, X Window System 및 Mach 마이크로 커널은 재 작성되지 않은 구성 요소의 예로 언급 됨). 그러나 대부분 사용자 영역 도구는 충족시키기 위해 처음부터 재 작성되었습니다. AT & T (또는 비 무료) 코드의 재사용을 피하고 명령 행 옵션을 추가하여 기능을 확장하는 것을 목표로합니다. 결과적으로 GNU 유틸리티는 원래 영감을 얻은 도구보다 정기적으로 더 강력했습니다.
이 시점에서 GNU에는 여전히 핵심 구성 요소 인 운영 체제 커널이 누락 되어 다른 OS를 실행하지 않는 실제 컴퓨터에서 모든 것이 함께 작동하도록합니다. 1991 년 Linus Torvalds는 장난감 프로젝트를 시작했으며 결국 Linux로 알려졌습니다. 당시 새로운 32 비트 Intel 80386 CPU 에 대해 배우는 것은 기본적으로 학교 프로젝트였으며 , 매우 간단하게 시작되었지만 결국 실제로 사용 가능한 운영 체제 커널로 변형되기 시작했습니다. 그러나 사용자 소프트웨어는 없었습니다. Linux 자체는 셸, 커널 초기화 이외의 시스템 시작 기능, 텍스트 편집기, 그래픽 인터페이스, 아무것도 제공하지 않습니다.. 커널은 자동차 엔진과 같습니다. 유용한 자동차를 만드는 데 필수적이지만 자체적으로 쓸모가 없습니다 (유용한 자동차의 경우 바퀴, 변속기, 조향, 운전자가 앉을 수있는 곳, 연료 탱크 또는 기타 에너지 저장 장치 등)가 필요합니다. 리눅스 커널은 결국 GNU 소프트웨어와 같은 GNU 일반 공중 사용 허가서에 따라 배포되었습니다 .
그래서 사람들은 둘을 짝짓기 시작했습니다. 유닉스와 유사한 유저 랜드와 POSIX 와의 유사성을 포함한 Unix의 아이디어를 기반으로 한 커널과 함께 원하는만큼 해킹 할 수있는 소스 코드를 제공하며 비용이 들지 않았습니다. . 특히 리눅스 배포판 이 일반화 되기 전에는 약간의 작업이 필요했지만 약간의 시간을 투자 할 의향이있는 사람들이 사용할 수있을 정도로 완성되었습니다.
요즘 GNU는 자체 커널을 제공합니다. 아마 들어 보지 못했지만 GNU Hurd 라고 합니다. 그러나 허드는 1990 년대 초반 리눅스가 애호가들과 땜장이들 사이에서 인기를 끌기 시작했을 때 주변에 없었기 때문에 리눅스 커널과 대부분의 GNU 사용자 조합이 개발자들 사이에서 가장 주목을 받았습니다.
또한 오늘날 많은 유닉스 시스템은 GNU 사용자 영역의 일부를 설치하거나 관리자가 쉽게 설치할 수 있도록합니다. GNU 이외의 시스템에서는 GNU bash, GNU Compiler Collection, GNU C 라이브러리 (바닐라 또는 패치) 등을 볼 수 있습니다.
설상가상으로, 일부 시스템은 Linux 커널을 사용하지만 GNU 사용자 영역은 전혀 없습니다. 널리 사용되는 예를 보려면 기본적으로 사용자 정의 사용자 영역과 연결된 Linux 커널 인 Android OS를 고려 하십시오.
이것은 GNU, Linux 및 다양한 유닉스 사이의 경계를 크게 흐리게하기 때문에 중요 합니다 ( UNIX 는 하나 뿐이지 만 많은 유닉스와 더 많은 유닉스 계열 OS가 있습니다 ). 리눅스에 관해 물어볼 때, GNU / 리눅스 시스템에 대해 자주 묻는 것입니다. 그러나 Linux를 전혀 사용하지 않고 FreeBSD 커널 위에서 GNU 사용자 영역을 실행하는 Debian GNU / kFreeBSD를 고려 하십시오. 또는 예 를 들어 coreutils를 포함한 다양한 GNU 패키지를 쉽게 설치할 수있는 Solaris와 같은 . Mac OS X에는 GNU 사용자 영역의 일부도 포함되어 있다고 생각합니다. 또는 위에서 언급 한 Android를 고려하십시오.
결국 사용 가능한 GNU 시스템 은 GNU 이외의 코드를 실행할 수 있고 GNU 이외의 시스템은 GNU 코드를 실행할 수 있지만 GNU 유틸리티 에는 GNU 이외의 코드가 포함되어 있지 않습니다.