Linux용으로 다시 작성된 명령과 Unix에서 유지된 명령을 알고 싶습니다.
답변1
운영 체제의 서로 다른 두 부분을 혼동하고 있는 것 같습니다. 이는 종종 같은 의미로 사용되기 때문에 이해할 수 있지만 기술적으로는 올바르지 않으므로 귀하의 질문은 잘못된 전제에 기초하고 있습니다. 여러분이 묻고 싶은 질문을 완전히 탐색하고 대답하기 위해서는 간단한 역사 수업이 필요합니다.
먼저 유닉스입니다. 기본적으로 당시 UNIX는AT&T 유닉스 시스템, 이것이 먼저 옵니다. 그러나 AT&T UNIX는 unfree가 되었기 때문에 Richard Stallman은 Unix 시스템을 작성하기 위해 GNU 프로젝트를 시작했습니다.무료. 그러므로 이름GNU는 유닉스가 아니다, 약어로 GNU. GNU 프로젝트는 1983년에 공개되었습니다.1984년 개발 시작.
1990년대 초반까지,GNU는 대부분의 UNIX 유틸리티를 처음부터 다시 구현했습니다. 위키피디아 목록전체 시스템의 일부 구성 요소는 다시 작성되지 않았습니다(TeX, AT&T(또는 무료가 아닌) 코드를 재사용하고 명령줄 옵션을 추가하여 기능을 확장했습니다. 결과적으로 GNU 유틸리티는 원래 영감을 받은 도구보다 더 강력한 경우가 많습니다.
그 당시 GNU에는 여전히 중요한 구성 요소가 누락되어 있었습니다.하나운영 체제 커널, 이를 통해 다른 운영 체제를 실행하지 않는 실제 컴퓨터에서 모든 것이 함께 작동할 수 있습니다. GNU 프로젝트는 HURD라는 커널을 제공합니다. 불행히도 여러 가지 이유로 몇 년이 늦어졌습니다. 요즘은 다음과 같이 사용할 수 있습니다.GNU 허드.
한편, 1991년에 Linus Torvalds는 나중에 Linux라고 불리는 장난감 프로젝트 작업을 시작했습니다.이것은 기본적으로 32비트를 배우기 위한 학교 프로젝트입니다.인텔 80386CPU, 매우 간단하게 시작했지만 결국 실제 작동하는 운영 체제 커널로 발전하기 시작했습니다. 그러나 사용자 수준 소프트웨어는 없습니다. Linux 자체는 셸을 제공하지 않으며, 시스템 시작 도구도 없고, 텍스트 편집기도 없으며, 커널 초기화를 제외한 그래픽 인터페이스도 없습니다.아무것도 없다. 핵심은 유용한 자동차를 만드는 데 필수적인 자동차 엔진과 같지만 그 자체로는 쓸모가 없습니다(유용한 자동차에는 바퀴, 기어박스, 스티어링, 운전자가 앉을 장소, 연료 탱크 또는 기타 에너지 저장 장치가 필요함). 등.). Linux 커널은 결국 GNU General Public License에 따라 배포됩니다.GNU 소프트웨어와 동일.
그래서 사람들은 둘을 짝짓기 시작했습니다. Unix와 유사한 사용자 공간과 Unix 아이디어를 기반으로 한 커널(포함)을 얻게 됩니다.POSIX)에는 비용 부담 없이 마음대로 수정할 수 있는 소스 코드가 함께 제공됩니다. 특히 이전에는리눅스 배포판일반화되면서 제대로 작동하려면 약간의 손길이 필요하지만, 시간을 투자하려는 사람들에게는 충분합니다.
HURD는 Linux가 취미생활자나 땜장이들 사이에서 인기를 얻기 시작한 1990년대 초반에는 아직 사용할 수 없었기 때문에 Linux 커널과 주로 GNU로 구성된 사용자 영역의 조합은 개발자들에게 가장 큰 관심을 끌었습니다.
또한 오늘날 많은 Unix 시스템에서는 관리자가 GNU 사용자 공간의 일부를 쉽게 설치할 수 있도록 하고 있습니다. GNU가 아닌 시스템에서는 GNU bash, GNU 컴파일러 컬렉션, GNU C 라이브러리(일반 또는 패치) 등을 볼 수 있습니다.
설상가상으로 일부 시스템은 Linux 커널을 사용하지만 GNU 사용자 영역은 전혀 사용하지 않습니다. 널리 사용되는 예를 들어 다음을 고려하십시오.안드로이드 운영체제, 이는 기본적으로 Linux 커널과 사용자 정의 사용자 공간입니다.
이건 매우 중요합니다왜냐하면 GNU, Linux 및 다양한 Unix 사이의 경계가 크게 모호해지기 때문입니다(유닉스는 하나뿐이다, 그러나 Unix 시스템에는 훨씬 더 많은 기능이 있습니다.유닉스 계열 운영체제). Linux에 대해 물어보면 GNU/Linux 시스템에 대해 묻는 경우가 많습니다. 하지만 생각해 보세요데비안 GNU/kFreeBSD, FreeBSD 커널 위에서 GNU 사용자 영역을 실행하고 Linux를 전혀 사용하지 않습니다. 또는 예를 들어 쉽게 설치할 수 있는 Solariscoreutils를 포함한 다양한 GNU 패키지. 내 생각에는 Mac OS X에도 GNU 사용자 공간이 일부 포함되어 있는 것 같습니다. 아니면 위에서 언급한 Android를 고려해 보세요.
결국,작동하는 GNU 시스템GNU가 아닌 코드를 실행할 수 있고 GNU가 아닌 시스템에서 GNU 코드를 실행할 수 있지만GNU 유틸리티GNU가 아닌 코드를 포함하지 않습니다.