Linux에 기본적으로 C 컴파일러가 있는 이유는 무엇입니까?

Linux에 기본적으로 C 컴파일러가 있는 이유는 무엇입니까?

Linux 배포판에 gcc가 사전 설치된 상태로 제공되는 이유는 무엇입니까? Linux의 대부분의 응용 프로그램이 C로 작성되었기 때문입니까?

gcc 디렉토리를 삭제하면 어떻게 되나요?

답변1

Linux 배포판에 gcc가 사전 설치된 상태로 제공되는 이유는 무엇입니까?

Linux 배포판은 매우 모호합니다. 일부 사람들은 이를 설치하지만 대부분의 사람들은 설치를 제안합니다(설치 중에 기본값을 선택한 경우에도 가능). 그러나 모든 배포판에서 이를 설치하는 것은 아니며 일반적으로 선택 사항이 있습니다.

Linux의 대부분의 응용 프로그램이 C로 작성되었기 때문입니까?

아니요. C 컴파일러(모든 C 컴파일러,걸프 협력 협의회이건 예시일 뿐이고 그럴수도 있지소노러스/lvm, 또는 기타) 매우 편리합니다. Linux 시스템에서 사용할 수 있을 뿐만 아니라 BSD 또는 Windows 설치에서도 사용할 수 있습니다.

gcc 디렉토리를 삭제하면 어떻게 되나요?

GCC의 일부(또는 전처리기와 같은 일부)에 의존하는 프로그램이 설치되어 있지 않다고 가정하면 모든 것이 계속해서 잘 작동할 것입니다. 방금 제거한 GCC 버전으로는 새로운 C 프로그램을 컴파일할 수 없습니다. 마지막 C 컴파일러인 경우(여러 컴파일러를 설치할 수 있음) 나중에 C 프로그램을 컴파일하려면 바이너리 패키지를 사용하여 다시 설치해야 합니다.

주의하시기 바랍니다gcc 디렉토리를 삭제하면 어떻게 되나요?올바른 패키지 관리자를 사용하여 제거할 것이라고 가정합니다. 디렉토리를 무작위로 삭제하는 것은 모든 운영 체제에서 수행되는 안전하지 않은 작업입니다.

답변2

Linux에서는 많은 유틸리티가 사용됩니다 gcc. 대부분의 유틸리티는 런타임 공유 라이브러리를 호출하며 전체 패키지를 제거하는 경우에도 공유 라이브러리를 유지해야 합니다.

/bin/ls이 명령을 사용하여 검색을 해보니 strings -a /bin/lsLinux의 표준 C 라이브러리인 libc.so가 사용되는 것으로 나타났습니다. Linux는 공식적으로 Gnu/Linux이므로 대부분의 유틸리티는 Gnu/C 또는 gcc로 컴파일된다고 가정할 수 있습니다. 이렇게 하면 man libc대부분의 Linux 유틸리티가 glibc를 사용한다는 메시지가 표시됩니다. 따라서 유틸리티가 제대로 작동하려면 보존 libc하고 유지해야 합니다.glibc

답변3

ABI 호환성이 부족했기 때문에(특히 과거에는) 소스에서 빌드하는 것이 매우 일반적이었습니다. 물론 많은 경우 빌드를 위해 C 컴파일러 이상의 것이 필요합니다.

답변4

유명 브랜드 서버(HP Enterprises Proliant, Fujitsu Primergy 등)에서 공급업체별 하드웨어 모니터링 드라이버는 일반적으로 일부 기본 커널 인터페이스 구성 요소가 포함된 소스 코드 형식을 취합니다. 드라이버 패키지에는 일반적으로 드라이버 패키지 출시 당시 하드웨어 공급업체에 알려진 지원 커널 버전에 대해 미리 컴파일된 드라이버도 포함되어 있습니다.

이렇게 하면 Linux 배포판이 커널 보안 업데이트를 출시할 때마다 하드웨어 공급업체가 업데이트된 커널과 일치하는 새 패키지를 테스트하고 릴리스할 때까지 기다리지 않고도 업데이트된 커널과 일치하도록 하드웨어 모니터링 모듈을 다시 컴파일할 수 있습니다.

일반적으로 모니터링 드라이버에는 시스템이 새 커널 버전으로 처음 부팅될 때 적절한 모듈을 자동으로 다시 컴파일하는 일부 자동화 스크립트가 포함되어 있습니다. 물론 이는 컴파일러와 필요한 커널 개발/헤더 패키지가 시스템에 설치된 경우에만 성공합니다.

그렇지 않은 경우 중요한 보안 업그레이드를 설치하면 시스템의 PSU 상태, 온도, 팬 및 최신 서버의 일반적인 전력 소비량과 같은 기본 하드웨어 모니터링 정보가 많이 소모될 수 있습니다.

데이터 센터에서 이러한 유형의 모니터링은 "아, 중복 팬/PSU가 고장났습니다. 내일 업무 시간 동안 데이터 센터 직원에게 핫 플러그를 연결하라고 할 예정입니다"와 "서버가 너무 많이 손실되었습니다"를 구별할 수 있습니다. 팬이 과열되기 시작하고 자동으로 종료됩니다. 이제 SLA가 깨져서 고객이 불만을 나타냅니다. 최대한 빨리 오후 30시에 서버를 수리하거나 교체해야 합니다(예, 아니요.모든 것클라우드 기반이거나 심지어 가상화되어 있습니다. )

관련 정보