디자인과 다른 측면에서 유닉스와 리눅스의 기본적인 차이점은 무엇입니까? [닫은]


24

이 문장을 계속 읽습니다.

리눅스는 유닉스 계열 시스템이지만 유닉스가 아닙니다.

두 사람의 실제 차이점이 무엇인지 모르겠습니다. 나는 리눅스가 유닉스로부터 많은 아이디어를 얻었고 두 라이센스가 다르다는 것을 안다. 그 외에도, 나는 그들 중 하나의 전문가가 아니기 때문에 디자인이나 다른 중요한 측면에서 그들 사이에 기본적인 차이점이 있는지 알고 싶습니다.


2
어디서 읽었는지 분명히 말씀해 주시겠습니까? 웹 검색 에서 Robert Love의 Linux Kernel Development (3 판) 가 표시됩니다.
gnat

답변:


30

"Unix like"시스템은 Unix 시스템에 적합한 표준 이름 인 Single UNIX Specification을 완전히 준수 할 수 있지만 동시에 Unix는 The Open Group 의 등록 상표 이며 Unix와 같은 시스템 공급 업체는 공식적 으로 유닉스 자격 을 갖도록 시스템을 등록합니다 . 현재 등록 된 UNIX 03 시스템 은 다음과 같습니다.

  • Apple Inc .: Intel 기반 Macintosh 컴퓨터의 Mac OS X 버전 10.5 Leopard
  • Apple Inc .: Intel 기반 Macintosh 컴퓨터의 Mac OS X 버전 10.6 Snow Leopard
  • Fujitsu Limited : Fujitsu PRIMEPOWER® 64 비트 SPARC® 기반 플랫폼의 Solaris ™ 10 운영 체제
  • Hewlett-Packard Company : HP Integrity 서버의 HP-UX 11i V3 릴리즈 B.11.31 이상
  • IBM Corporation : APAR이있는 2004 년 8 월 8 일 이후의 POWER V5.2 용 AIX 5L : pSeries CHRP 시스템에서 IY59610, IY60869, VAC 6.0.0.8 이상이있는 IY61405
  • IBM Corporation : POWER ™ 프로세서와 함께 CHRP 시스템 아키텍처를 사용하는 시스템에서 2006 년 7 월 7 일 이후의 POWER V5.3 용 AIX 5L
  • IBM Corporation : POWER ™ 프로세서 및 2, 8 또는 128 포트 비동기 카드가있는 CHRP 시스템 아키텍처를 사용하는 시스템의 SP1 이상이 설치된 AIX 6 운영 체제 V6.1.2
  • Oracle Corporation : SPARC 기반 플랫폼, 32 비트 및 64 비트 및 X86 기반 플랫폼, 32 비트 및 64 비트에서 Oracle Solaris 11 FCS 이상
  • Oracle Corporation : 64 비트 X86 기반 시스템의 X86 용 Solaris 10 운영 체제 및 패치 118844-06
  • Oracle Corporation : Solaris 10 운영 체제 이상, 32 비트 및 64 비트 SPARC 기반 시스템
  • Oracle Corporation : Solaris 10 운영 체제 및 32 비트 X86 기반 시스템

시스템 (대부분 Linux 및 FreeBSD)과 같은 오픈 소스 Unix 공급 업체는 일반적으로 인증 비용을 피하거나 그렇게하는 데 큰 가치가 없기 때문에 Open Group에 등록하지 않습니다. 이론적으로 유닉스 계열 시스템은 기술적으로 유닉스 일 수 있으며, 누락 된 것은 인증뿐입니다.

반면에 Linux Foundation은 Linux를 표준화하기 위해 ISO 표준Linux Standard Base를 만들었습니다 . POSIX 준수 는 SUS와 LSB의 핵심이며 Unix와 Linux 간의 연결을 유지합니다.

유닉스와 유닉스 계열 시스템은 다른 것보다 더 유사합니다. 이론적으로 등록되거나 등록되지 않은 모든 인기있는 유닉스 풍미는 POSIX 호환 (전체 또는 대부분)이므로 핵심 프로그래밍 인터페이스, 쉘 및 유틸리티 (및 기타 여러 가지)를 공유합니다 물건). IEEE와 Open Group은 POSIX 준수의 실제 의미에 대한 자세한 정보를 찾을 수 있는 최신 버전 POSIX.1-2008 의 무료 사본을 유지 관리합니다 .

법적, 기술적 이유를 제외하고 리눅스 는 리차드 스톨만 (Richard Stallman)이 시작한 유닉스와 같은 유닉스와 같은 GNU 와의 연관성에서 "유닉스가 아닌"만트라를 물려 받았습니다 . GNU는 "GNU 's not Unix"를 의미합니다. Stallman의 의도는 자유로울 수있는 Unix 호환 시스템을 구축하는 것이며 Unix가 독점적이므로 Unix 코드를 포함하지 않아야합니다.

초기 리눅스 개발자들은 GNU 툴을 리눅스로 포팅하기 시작했으며 그 결과 시스템은 1992 년 초 GNU / Linux 불렸다 . 거기에있다 오래 지속 논란 리눅스는 리눅스, GNU / 리눅스 (은 GNU의 여러 부분을 통합으로)라고해야하는지에 대한,하지만 그 질문에 대한 무관의 어떤 관련이있는 것은 "하지 유닉스는"단지 협회에 참조 할 수 있다는 것입니다 GNU와 관련이 있으며 상황에 따라 디자인과 거의 관련이 없습니다.

"역사 리눅스의"기사 위키 백과는 리눅스의 기원과 (을 통해 유닉스와 그것의 관계를 설명 미닉스 몇 가지 세부 사항 및 GNU)를, 당신이에 관심이 있다면 당신은 또한 기사의 참고 문헌을 읽을 시간이 좀 걸릴해야 더 배우기.


좋은 답변, 기다릴 것입니다 당신이 내 대답으로 선택하면 볼 것입니다 :)
Gnijuohz

8
@Gnijuohz 답변을 받아들이려고 서두르지 말고 항상 하루나 이틀 (또는 원하는 경우) 이상 질문을 완성 시키십시오. 대답. 답변을 수락하는 것은 전적으로 귀하에게 달려 있으며, 커뮤니티가 응답 한 방식에 관계없이 답변이 도움이되지 않은 경우에도 수락하지 않아도됩니다.
yannis April

1
흥미롭게도, 최신 버전의 OS X은 "공식적으로"UNIX가 아닙니다.
Kris Harper

@ root45 버전 준수 여부를 확인하는 데 시간이 필요하므로 예상됩니다.
yannis

@YannisRizos 아 그래. 말이 되네요 정보 주셔서 감사합니다.
Kris Harper

4

UNIX는 운영 체제 제품군이며 현재 UNIX는 The Open Group이 소유 한 브랜드입니다. 운영 체제를 UNIX로 브랜딩하려면 적합성 테스트를 받아야하며, Linux의 경우 모든 배포판 (Ubuntu, Debian, Fedora, Red Hat 등)이 모든 릴리스에 대해 별도로이 적합성 테스트를 수행해야 함을 의미합니다. . 이것이 리눅스가 유닉스 계열이 아닌 유닉스 계열 시스템 인 주된 이유 중 하나입니다.

내가 언급 한이 테스트는 OS가 현재 버전 4 SUSv4 (Single Unix Specification 버전 4) 인 Single Unix Specification을 준수하는지 확인하는 것입니다. 이 사양은 시스템이 UNIX라는 이름을 갖도록 응용 프로그램에서 사용할 수 있어야하는 API 집합을 정의합니다.


따르는 것이 좋은 표준입니까? 리눅스 저자는 시도합니까?
직업

1
그러나 불완전한 표준입니다. Linux Kernel의 기고자들은이 표준을 따르려고 노력하며 Linux는 비공식적으로 UNIX 시스템으로 간주 될 수 있습니다. Unix 표준에 따라 응용 프로그램을 개발하는 경우 Linux 시스템에서 컴파일되고 실행될 수 있습니다. 불행히도, 앞에서 말했듯이, UNIX는 다소 불완전합니다. 따라서 OS는 일부 작업에 대한 추가 API를 제공하므로 이러한 추가 API가 다양 해짐에 따라 특정 응용 프로그램을 플랫폼에 의존하게 만듭니다.
Raphael

POSIX 인증 프로세스를 시작한 Linux-FT라는 배포판이 있었지만 당연히 후원자에게 돈이 부족했습니다. ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml

이 정보에 감사드립니다! 나는 누군가가 배포판을 인증하려고 시도했는지 궁금해합니다.
Raphael

3

기존 답변에는 이미 찾고있는 몇 가지 차이점이 언급되어 있습니다. 리눅스 커널 전문가가 아니더라도 GNU / 리눅스와 다양한 Unices 사이의 많은 디자인 / 구현 차이점이 리눅스 커널 디자인 패턴 시리즈에 포함되어 있다고 덧붙였다 .


2

"UNIX"는 복잡한 문제입니다. 표준 적합성 측면에서, Solaris와 Mac OS X 는 모두 "공식적으로"UNIX이지만 둘 사이에 큰 차이를 찾기 전에 많은 시간을 소비하지 않아도됩니다. 거기에다양한 종류의 UNIX 또는 UNIX 유사 운영 체제의 릴리스와 이들이 서로 영향을주고받는 방식을 문서화 훌륭한 다이어그램 이 있습니다.

유닉스처럼 보이고 걷거나 and 거리는 거대한 계획에서 리눅스 시스템 [*]은 가장 일반적인 릴리즈 중 하나입니다. 사람들이 Unices 또는 * nix를 참조하고 Linux를 포함하는 "UNIX와 유사한 것"을 의미하는 것은 매우 일반적입니다. 그러나 UNIX는 상업적으로 적용되는 방법에 제한이있는 등록 상표입니다. Linux 배포판은 이러한 제한을 준수하지 않습니다.

[*]이 질문에 시맨틱 헤어 스 플리 팅 (splictic hair-splitting) 수준이 필요하기 때문에이 경우에는 리눅스 자체가 운영 체제를 구축 할 수있는 커널 일 뿐이라는 점을 주제로 생각합니다. Linux 기반으로 UNIX와 유사한 시스템을 구축하는 것이 일반적이며,이 시스템은 일반적으로 GNU 프로젝트 구성 요소로 구축됩니다. 위의 답변에서 "Linux"는 "Linux 커널을 통합 한 운영 체제"의 약어로 읽을 수 있습니다.


@YannisRizos 답변에 대한 참조를 추가 할 것입니다. 확실히 인증되었습니다.

예. Leopard부터 Mac OS는 UNIX 03 인증을 받았으며 여기에 또 다른 참조가 있습니다.
yannis

2

나는 한때 리눅스가 PC 개발자를 데려 가서 유닉스 OS를 작성 해달라고 요청하는 반면, FreeBSD는 유닉스 개발자를 데려 가서 PC OS를 만들어달라고 요청했을 때 ... 비교할 때 BSD를 잊지 마십시오!

사용자 공간 응용 프로그램 (예 : ls 포함)이 모두 GNU 프로젝트의 일부이므로 차이점은 주로 커널에 있습니다. 이것은 유닉스, FreeBSD 및 리눅스가 모두 거의 같은 것으로 보인다는 것을 의미합니다.

그러나 자세히 보면 차이가 있습니다. 디렉토리 레이아웃은 다를 것입니다 (그러나 많은 Linux 배포판은 대부분 호환 가능하지만 여전히 다른 레이아웃을 사용합니다). 공통 FS (예 : ZFS)

그런 다음 핵심 API에는 차이가 있으며 Linux는 파일 변경 시점을 알려주 는 inotify API를 제공하고 Mac OSX는 FSEvents 를 제공하며 FreeBSD는 kqueue를 제공합니다 .

따라서 동일한 제품군으로 간주 될 수 있습니다. GNU 시스템이있는 Windows 시스템과 동일한 시스템이있는 Linux 시스템을 비교하십시오. 그것들은 피상적으로 동일하게 보일 것이지만, 유닉스 나 FreeBSD 시스템은 여전히 ​​비슷한 것으로 보일 것입니다. 자세히 살펴보면 Windows와 같은 대체 OS로 포팅하는 것과 비교하여 FreeBSD, Unix 및 Linux 간의 포팅 앱이 상대적으로 쉽다는 것을 알 수 있습니다.


1

유닉스는 더 이상 단일 운영 체제가 아닙니다. 이전에는 Bell Labs / AT & T에서 구현했지만 이제는 표준입니다.

기술적으로 리눅스는 커널 일뿐입니다. 이 커널은 OS와 같은 유닉스가 아닌 곳에서 찾을 수 있으며 가장 인기있는 것은 안드로이드입니다. 반면에 유닉스와 같은 많은 Linux 기반 OS가 있습니다. 그들 중 대부분은 전부는 아니지만 Gnu 라이브러리와 유틸리티를 사용하고 있습니다. 이 조합은 Linux 배포판에 Unix API 및 표준 준수 (또는 비준수)를 제공합니다.

유닉스 표준은 호환 시스템이 독점적이거나 특정 라이센스를 갖도록 요구하지 않습니다. BSD, OpenSolaris / Illumos, darwin은 Linux가 아닌 무료 Unix 구현의 예입니다.

컴플 라이언트 시스템은 일반적으로 독점 및 오픈 소스 구성 요소가 혼합 된 것은 아니지만 Gnu / Linux는 완전히 오픈 소스이거나 독점적 인 내용을 포함 할 수 있습니다.

유닉스 컴플라이언스에 관한 한 큰 차이는 없습니다. 대부분의 Linux 배포 및 Unix 구현은 동일한 옵션 세트를 사용하여 동일한 명령 세트를 공유합니다. 그러나 표준 명령의 많은 확장, 특히 Gnuisms라고하는 Gnu 측에서 처음에는 표준에 의해 정의되지 않은 수많은 명령 (컴파일러, 관리 명령, 설치, 패키징, 그래픽 환경). 이것은 많은 발산, 비 호환성 및 때로는 거룩한 전쟁을 찾을 수있는 영역입니다.

GNU / 리눅스 개발 모델은 일반적으로 "유기적"과 "바자"와 같은 것으로 간주되는 반면 다른 유닉스 계열 시스템은 "디자인"과 "성당"과 유사합니다. 서브 시스템에 따라 차이는 그리 명확하지 않으며 개인 및 / 또는 그 뒤에있는 회사에 따라 다릅니다.


1

Linux에는 다음과 같은 많은 도구가 제공됩니다.

  • GUI 시스템
  • GNU 유틸리티 (cp, mv, ls, date, bash 등)
  • 설치 및 관리 도구
  • GNU C / C ++ 컴파일러
  • 편집자 (vi)
  • 다양한 응용 프로그램 (예 : OpenOffice, Firefox).

그러나 모든 것이 단일 소스 또는 공급 업체에서 제공되므로 대부분의 UNIX 운영 체제는 완전한 운영 체제로 간주됩니다.

그들이 공유하는 것들 :

  • GUI, 파일 및 Windows 관리자 (KDE, Gnome)
  • 껍질 (ksh, csh, bash)
  • OpenOffice.org와 같은 다양한 사무실 응용 프로그램
  • 개발 도구 (perl, php, python, GNU C / C ++ 컴파일러)
  • POSIX 인터페이스

리눅스는 또한 유닉스 철학을 확장합니다 ...
Job

2
리눅스는 단순한 커널이 아니라 리눅스 커널은 커널입니다. Linux는 일반적으로 Linux 커널을 기반으로 구축 된 전체 시스템을 나타냅니다.
yannis

@Anonymous-때로는 답변을 편집하고 수정하면 다운 보터가 다운 보트를 제거 할 수 있습니다. 보장되지는 않지만 때로는 도움이됩니다. (나는 공감하지 않고 단지 도움을 주려고 노력했다) :) 나머지 대답은 IMHO이므로 정확하지 않으므로 불일치를 제거하면 공감대를 피하거나 더 많은 공감대를 피할 수 있습니다.
jmort253

-7

실제로 리눅스가 유닉스의 역 엔지니어링 된 것은 아니기 때문에 커널 디자인은 Ken Thompson의 철학을 따랐다. 리눅스 방식은 독창적 인 사고로 그들 자신에게 부담을주지 않고 가능한 한 유닉스 철학을 최대한 모방하는 것 같습니다.


@YannisRizos "하지만 실제로 사용할 수 없었습니다"는 무슨 뜻입니까? AFAIK는 완전히 사용할 수 있었지만 PDP 어셈블리로 작성 되었기 때문에 다른 아키텍처로 이식하기가 어려웠습니다.
사키 스크

@ samual-johnson -1 문장을 참조로 백업하지 않기 때문입니다. 내가 "켄 톰슨 철학"(그리고 톰슨이 아닌 톰슨)에 대해 들어 본 것은 처음입니다.
사키 스크

1
@faif 필자가 언급 한 기본 커널은 PDP가 아니라 GE-645 용으로 작성 되었기 때문에 Unix 커널이라고 부르는 것이 늘었다. 어쨌든 참고 사항이 부족했기 때문에 의견을 삭제했으며 귀하의 의견은 해당 메시지를 전달하기에 충분합니다. -samual 귀하의 주장을 확고한 참조로 뒷받침하거나 의견이 적은 것으로 수정하십시오.
yannis

@YannisRizos 재미있는. GE-645에 대해서는 들어 보지 못했습니다. Wikipedia 에 따르면 Multics의 향상된 버전이었습니다. 정보에 대해서 감사드립니다.
사키 스크
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.