Linux, AIX, Solaris 및 MAC의 차이점은 무엇입니까? 이것들은 모두 일종의 유닉스 취향이 아닌가? 왜 그렇게 많은 유형이 필요합니까? 왜 한 가지 유형만 있을 수 없나요?
답변1
이것은 역사적이며, "왜 다중 민족 국가가 존재하는가?"라는 질문과 비슷합니다. 아마도 수십만 년 전 어느 시점에는 호모 사피엔스 개체군이 단 한 개밖에 없었을 것입니다. 그러나 지금은 그 수가 많습니다.
원래 UNIX는 이식성이 없는 어셈블리 언어로 작성된 단일 엔터티였습니다.플라즈마 11Bell이 이전에 기여했던 MULTICS 운영 체제와 병행(또는 파생)된 AT&T Bell Laboratories의 프로젝트입니다. 왜냐하면 PDP-11 자체를 설계하는 것만큼이나 많은 작업이 필요하기 때문입니다.아니요Bell 제품 - Bell Labs 사람들은 아키텍처별 어셈블리보다 더 높은 수준의 언어, 즉 특정 기계에 적합한 어셈블리 지침을 사용하여 구현할 수 있는 언어로 이러한 작업을 수행하는 것이 좋을 것이라고 생각했습니다. 하지만 그 자체는 어디에서나 작동합니다.
이제 이것은 소프트웨어 디자인의 매우 기본적인 원칙입니다. 레이어로 디자인하면 각 레이어는 주변의 것을 추상화로 처리합니다. 이 경우 "추상"이란 설명을 의미합니다.오직기타 사항의 관련 세부사항은 문맥에 따라 정의됩니다. Unix 예로 돌아가서 언어 B가 개발된 다음 C가 어셈블리 수준 세부 사항을 상위 수준 명령으로 추상화했습니다. 이는 관련된 하위 수준 세부 사항이 완전히 다른 경우에도 해당 언어를 사용하여 시스템 B에서와 동일한 방식으로 시스템 A에서 파일을 읽을 수 있음을 의미합니다. 전체 운영 체제를 이 언어로 작성하면 해당 언어를 구현하는 모든 시스템에서 운영 체제를 컴파일하고 실행할 수 있습니다. 이것이 일이 적다기보다는 일이 더 많은 것처럼 들리면 그렇지 않습니다. 언어는 운영 체제보다 작업량이 적고, 운영 체제와 언어를 합친 작업은 여전히 운영 체제 자체보다 작업량이 적을 수 있습니다. 어쨌든 운영 체제에 대해 구현해야 하는 상호 교환 가능한 언어 비트를 사용하기 때문에 더 이상은 아니며 아키텍처 B에 도달하면 다시 실행해야 할 것은 언어 구현뿐입니다. 게다가 이제 다른 것들과 겹쳐서 결합할 수 있는 두 가지 다른 것들이 생겼습니다.
어셈블리 수준에서는 다음과 같은 것이 존재하지 않는다는 것을 기억하십시오.하나의 문서--더 높은 수준의 예가 있습니다.추상적인실재. 이러한 개념이 사람들의 마음 속에 뿌리를 내리게 되었을 때 B, C, Unix가 탄생한 것은 이를 잘 활용했기 때문일 것입니다. 정확히 같은 사람들이 C 언어와 Unix 운영 체제를 개발했으며 서로 매우 잘 작동합니다.
수년 동안 공식적인 C 사양은 없었지만 Bell은 1970년대에 Unix의 소스 코드를 대학에 라이센스했습니다(제 생각에는 기술적인 관점에서 볼 때 지금보다 더 개방적인 시대였습니다). BSD로 알려진 유사한" OS가 등장했습니다. 또한 다음 10년 동안 Bell은 HP 및 Sun Microsystems와 여러 비즈니스 계약을 체결하여 훨씬 더 많은 변화를 가져왔습니다.
Bell은 소스 코드를 통제했지만 운영 체제 개념에 대한 소유권을 행사하지 않았습니다. 아마도 Unix에 라이선스를 부여하고 독립적으로 개발할 수 있도록 허용했기 때문일 것입니다. C를 세상에 제공한다는 것은 C가 스스로 유지하는 것보다 훨씬 더 성공적이라는 것을 의미합니다. 이것이 언어 사양의 주요 패턴이며 이는 Unix에 도움이 됩니다. 이것이 바로 OSX와 같은 것이 마침내 가능한 이유입니다. OSX는 BSD 커널을 사용하는 Mach 기반 플랫폼인 NeXTstep의 후속 제품입니다.
모든 원본 버전을 사용하여 유닉스 계열 운영 체제를 구현하는 Linux와 GNU만 남습니다.오픈 소스코드 1 - 개념무료 및 오픈 소스이 소프트웨어는 이전에 GNU와 창립자인 Richard Stallman이 옹호했습니다. 이 시점에서 각계각층의 사업가들은 다음과 같은 사실을 깨달았습니다.
흔히 유닉스 전쟁이라고 불리는 표준 경쟁은 모든 참가자에게 득보다 실이 더 많았고, 유닉스 업계는 마이크로소프트와의 새로운 경쟁에 직면하게 되었습니다.http://en.wikipedia.org/wiki/Open_Group
이러한 사양은 균일하므로 불만 사항의 상업적 변형과 함께 작동하는 소프트웨어를 더 쉽게 작성할 수 있습니다. 이것은 또한 누구나 자유롭게 준수할 수 있다는 것을 의미합니다. 어쩌면 주요 참가자들은 그것이 약간 "고유적인" 것이기 때문에 다음에 무엇이 올지 알지 못했을 수도 있고 어쨌든 신경 쓰지 않았을 수도 있지만 어쨌든 그러한 구현을 위해 노력하십시오. 소스(GNU + Linux) 개방성 자체가 많은 긍정적인 관심을 끌었으므로 여기에 있습니다: 거창한 계획은 없고, 단지 같은 태양을 공전하는 많은 독립적인 계획일 뿐입니다.
1. 당시 BSD는 원래 코드베이스에 관한 한 여전히 법적 난국에 있었습니다.
답변2
또한 질문할 수도 있습니다. 왜 한 가지 유형의 자동차만 존재할 수 없나요? 우리 모두 그렘린을 운전하는 것이 행복하지 않을까요? 아니면 엘 카미노?
Unix와 Linux의 독점 스타일 사이에 일부 편차가 있는 데에는 몇 가지 역사적인 이유가 있으며, 이는 흥미로운 읽기가 될 것입니다(이러한 모든 리소스를 찾는 것은 공개 질문의 범위를 벗어나기 때문에 맛을 검색하여 유래를 찾아보세요) 마찬가지로 최신 Linux 버전은 현재 우리가 살고 있는 오픈 소스 세계의 이점을 누리고 매우 전문화될 수 있으며 특정 목적을 위한 구성/응용 프로그램/조정을 포함할 수 있습니다(특정 시스템에 절대 필요하지 않은 추가 서비스를 실행하는 이유).
따라서 방화벽을 실행할 수 있고(그런데 Linux임), 전체 GUI 데스크탑 워크스테이션을 실행할 수 있고(그건 그렇고 Linux임) NAS를 실행할 수 있습니다(그런데 Linux임).
그래서...Linux = 잘못된 이름입니다. 그런 식으로 정의하기에는 Linux 버전이 너무 많습니다. AIX - IBM의 독점 Unix 버전입니다. Solaris - Sun의 독점 Unix 버전입니다. Mac - Apple의 Linux/Unix 독점 버전입니다(솔직히 출처가 어디인지 확인하지 않았습니다).
다양성을 수용하는 것이 좋습니다 :)