FreeBSD가 GCC를 기본 컴파일러로 사용하는 이유는 무엇입니까?
내 생각에 FreeBSD 철학의 중심 기둥은 다음과 같습니다.아니요GNU 소프트웨어, 특히 GPL 코드를 사용하세요.
그러나 GNU이자 GPL인 GCC는 FreeBSD와 함께 번들로 제공됩니다.
왜?
답변1
프리BSD 10BSD 라이선스 Clang 컴파일러를 사용합니다.32비트 및 64비트 Intel x86 시스템용 GCC 대신. FreeBSD가 출시하는 모든 CPU 플랫폼에서 대규모 변환을 방해하는 유일한 것은 개발자의 시간과 관심입니다.
FreeBSD 9의 경우 - 그렇습니다.곧 출시될 예정이 질문이 처음 제기되었을 때연설Clang을 기본 컴파일러로 만드는 것과 관련하여 GCC와 함께 Clang을 출시하고 GCC를 이 버전의 기본 컴파일러로 유지하기로 결정한 데에는 충분한 문제가 있었습니다.
FreeBSD가 몇 년 전에 GPL이 아닌 컴파일러로 전환하려고 시도하지 않았거나 자체 컴파일러를 만들려고 하지 않은 이유는 간단합니다. 어렵습니다.
컴퓨터 과학 학부생이라면 누구나 컴파일러를 작성할 수 있습니다. 이는 필수 과정일 수도 있지만 컴파일러 작성은 필수입니다.좋아요컴파일러는 어렵다. C나 C++ 같은 언어에 대한 좋은 컴파일러를 작성하는 것은 훨씬 더 어렵습니다. 새 컴파일러에 최소한 요구되는 합리적인 결정을 내리면 작업이 더욱 어려워집니다.방법GCC의 성능과 기능에는 수십 년의 개발 가치가 있습니다.
따라서 GCC 4.2는 FreeBSD 9의 기본 컴파일러로 남아 있습니다.
그건 그렇고, GCC 3.4, 4.4, 4.6, 4.7 및 4.8은 모두 FreeBSD 9 포트 트리에 있으며 일부 GCC 버전은 앞으로 수년 동안 포트에 남아 있을 수 있습니다. GCC로만 구축된 많은 패키지(그 중 다수는 FreeBSD 포트에 있음)가 있습니다.
답변2
이것은 아마도 필요에 의한 것일 가능성이 높습니다. 최근까지 BSD 라이센스를 받은 C 컴파일러는 거의 없었거나 gcc
.
~에서FreeBSD 프로젝트 목표:
GNU General Public License(GPL) 또는 Library General Public License(LGPL)에 해당하는 소스 트리의 코드에는 더 많은 문자열이 첨부되어 있지만 적어도 일반적인 반대가 아닌 액세스 시행 측면에서는 그렇습니다. 그러나 GPL 소프트웨어를 상업적으로 사용하면 추가적인 복잡성이 발생할 수 있으므로 선택이 합리적일 경우 더 허용적인 BSD 저작권에 따라 제출된 소프트웨어를 선호합니다.