저는 완전한 기능을 갖춘 시스템을 만드는 데 필요한 모든 다양한 구성 요소를 사용하여 Linux가 특히 임베디드 장치에서 실제로 어떻게 작동하는지 더 깊이 조사하고 있습니다.
나는 glibc와 같은 표준 C 라이브러리 구현이 별개이며 사용자 공간 응용 프로그램이 Linux 커널과 통신하고 함께 작동하려면 필요하다는 것을 이해합니다.
그러나 Linux 코드 자체가 실제로 이 표준 라이브러리에 의존합니까? 이것이 없어도 Linux가 자체적으로 실행될 수 있습니까?
답변1
아니요, 커널은 표준 C 라이브러리(또는 다른 라이브러리)에 의존하지 않으며 자체 포함되어 있습니다. 사용자 공간 프로그램도 반드시 C 라이브러리에 의존하는 것은 아닙니다. C 라이브러리는 시스템 호출을 위한 편리한 래퍼를 제공하지만 C 라이브러리를 거치지 않고 직접 호출할 수 있으며 다른 언어 런타임에서 자체 래퍼를 제공할 수 있습니다.
(이는 일반적으로 C 라이브러리에서 제공할 것으로 예상되는 꽤 많은 함수의 구현이 커널에 포함되어 있음을 의미하며 때로는 커널에 더 적합한 단순화된 버전에서도 제공됩니다.이 커널 초보자 FAQ자세한 내용은.)