Linux 커널은 Linux 운영 체제(OS)의 중추이며 컴퓨터 하드웨어와 해당 프로세스 간의 기본 인터페이스입니다.
최근 리누스 토르발스는 리눅스 6.3 커널 병합 기간이 종료되었으며 , 이 버전에서 인텔 ICC 컴파일러 지원이 제거될 것이라고 발표했습니다 . 구체적으로 말하자면, 인텔 ICC 컴파일러는 최신 인텔 DPC++ 컴파일러와 함께 LLVM/Clang으로 전환되기 전에는 "인텔 C++ 컴파일러 클래식"으로 더 잘 알려져 있었습니다.
Linux 6.3의 첫 번째 릴리스 후보를 통해 우리는 이 새로운 커널 버전의 기능과 변경 사항에 대해 조금 더 알게 되었습니다. Linux 6.3에 추가된 주요 기능 중 하나는 새로운 "rtla hwnoise" 도구입니다.
몇 달 전, 리눅스 커널이 인텔의 ICC 컴파일러 지원을 중단할 것이라는 이야기가 있었는데 , 리눅스 6.3에서 실제로 그렇게 되었습니다 . 사실, LLVM/Clang 컴파일러는 오랫동안 주력 컴파일러였던 GCC 컴파일러를 보완하기 위해 다양한 개발자와 조직에서 리눅스 커널을 빌드하는 데 점점 더 많이 사용되고 있지만, 인텔의 ICC 컴파일러 또한 널리 사용되지는 않았더라도 리눅스 커널을 빌드할 수 있었습니다. 그러나 커널 개발자들은 ICC 컴파일러 지원을 중단하기로 결정했습니다.
첫째, Intel ICC는 일부 개발자와 조직에서 Linux 커널을 개발하는 데 사용하는 고도로 최적화된 C(icc) 및 C++(icpc) 컴파일러입니다 . 독립 실행형 버전은 Intel OneAPI로 대체되었습니다.
인텔 ICC 컴파일러 지원을 제거하자는 아이디어는 작년 10월 리눅스 개발자 마사히로 야마다에 의해 처음 제기되었습니다 . 리눅스 커널 개발자들에 따르면, 인텔 ICC 컴파일러 지원 과 관련된 커널 변경 사항은 최소한이며, 현재 커널 빌드에서 ICC 지원은 별다른 문제 제기 없이 사실상 비활성화된 상태인 것으로 보입니다. 아무도 신경 쓰지 않거나 알아채지 못하는 상황이기 때문에, 이 제안은 메인라인 커널에서 ICC 지원을 제거하여 현재 ICC 지원에 사용되는 약 300줄의 코드를 확보하는 것을 목표로 합니다.
커널 개발자인 리누스 토르발스는 인텔 ICC 컴파일러를 포기하는 데 찬성하는 입장을 밝혔습니다.
“ICC를 실제로 사용한 사람은 아무도 없다고 생각합니다. ICC의 문제점에 대해 한 마디도 들은 기억이 없고, GCC를 너무 잘 에뮬레이트해서 아무도 문제가 없었기 때문이 아닌가 합니다.
다른 커널 개발자들은 이러한 변화에 찬성했습니다. 또한 Intel의 ICC 컴파일러가 이전 독점 코드 베이스에서 LLVM 기반 모델로 이동함에 따라 새로운 ICC 컴파일러는 결국 Clang 경로를 사용하여 커널을 컴파일할 수 있게 될 수 있습니다.
기본적으로 인텔 컴파일러용 리눅스 커널 메인 헤더 파일은 3년 동안 수정되지 않았고, 많은 개발자/사용자는 커널 빌드를 위한 ICC 지원 여부를 잊었거나 아예 모르고 있으며, ICC 커널 빌드에서 보고된 명백하고 수정되지 않은 문제가 적어도 하나 존재합니다.
게다가 인텔의 기존 ICC 컴파일러는 LLVM 기반의 최신 oneAPI DPC++/C++ 컴파일러로 대체되었습니다 . 그리고 10월 이후로 이 기존 인텔 컴파일러를 사용하여 최신 커널 코드를 컴파일하는 데 관심을 표명한 사람은 아무도 없습니다.
따라서 인텔 ICC 지원 중단이 실질적인 손실이 되어서는 안 됩니다. GCC와 LLVM/Clang은 여전히 기본 Linux 커널을 빌드하기 위한 두 가지 주요 컴파일러입니다.
GCC는 오랫동안 메인라인 커널 구축을 위한 사실상의 선택이었으며 최근 몇 년 동안 LLVM/Clang 메인라인은 Linux 커널 구축에 매우 적합하다는 것이 입증되었으며 다양한 빌드에 사용됩니다.Linux 프로덕션 커널 및 포팅 LLVM. 다양한 컴파일러 기능에 대한 /Clang. 따라서 Intel의 ICC 컴파일러는 Linux 커널 버전 6.3의 출시와 함께 폐기됩니다.
마지막으로, 이 주제에 대해 더 자세히 알고 싶으 시다면 다음 링크 에서 자세한 내용을 확인하실 수 있습니다 .