"C 라이브러리 또는 표준 C 헤더 파일에 액세스할 수 없습니다"는 무엇을 의미합니까? [폐쇄]

"C 라이브러리 또는 표준 C 헤더 파일에 액세스할 수 없습니다"는 무엇을 의미합니까? [폐쇄]

나는 최근에 라는 책을 읽고 있었습니다.리눅스 커널 개발, 작성자로버트 러브. 그는 2장에서 이렇게 지적한다.

커널은 C 라이브러리나 표준 C 헤더 파일에 액세스할 수 없습니다.

초보자로서 표준 파일이나 C 라이브러리에 액세스하지 않고 어떻게 모든 커널을 작성하는지 묻고 싶습니다. 운영 체제를 개발할 때 이것이 일반적인 동작입니까? 가르쳐주세요

답변1

C 라이브러리의 많은 기능은 커널에 의존합니다. 커널이 C 라이브러리를 사용하려고 하면 루프가 발생합니다. 표준 C 헤더 파일은 C 라이브러리에서 제공하므로 사용할 수 없습니다. 유일한 도서관할 수 있다커널에 사용되는 라이브러리에는 C 라이브러리를 포함하여 자체 외부 종속성이 없습니다(즉, 메모리 할당이나 I/O가 없음...을 의미함).

일반적으로 커널은 필요한 모든 코드를 작성하여 개발됩니다(경우에 따라 적절한 라이센스가 부여된 라이브러리에서 코드를 복사할 수도 있음). 어떤 모습인지 알고 싶다면 이전 버전의 Linux 커널에 대한 소스 코드를 계속 사용할 수 있습니다.버전 0.01예를 들어.

그 이후로 상황이 조금 바뀌었고 이제 Linux 커널은나만의 "도서관"(재사용을 위해 설계된 커널 코드 모듈) 및 C 라이브러리 스타일 루틴의 다양한 구현(예:문자열 조작 함수). 그것은 자신의 것을 가지고 있습니다개괄적인 제목또한. 하지만 Linux 커널에서 최신 C를 작성하는 것은 다른 곳에서 최신 C를 작성하는 것과 매우 다릅니다.

답변2

다른 라이브러리를 사용합니다. 시스템 호출이 커널에 들어가게 하는 표준 라이브러리를 사용할 수 없습니다. 이것이 핵심입니다.

그래서 다른 도서관도 있습니다. 책에 설명이 있어야합니다.

관련 정보