Linus Torvalds가 Linux 커널에 C++ 도입을 고려할 수 있습니까?

Linustorvalds

Linus Benedict Torvalds는 Linux 커널 개발을 시작하고 유지하는 것으로 알려진 소프트웨어 엔지니어입니다.

몇 주 전여기 블로그에서 제안에 대한 소식을 공유하겠습니다. 생존가능성과 관련하여 수년이 지나 부활한 것입니다. Linux 커널에 C++ 코드를 채택하는 것, 2018년 농담으로 시작한 제안이다.

La 제안이 다시 시작되었습니다 커널 메일링 리스트에 있지만 심각한 방식으로 한스 피터 앤빈, 주요 Intel 커널 개발자이자 개발자는 C++를 Linux의 세 번째 프로그래밍 언어로 포함시키는 가능성을 제기했습니다.

리눅스 C++
관련 기사 :
리눅스의 C++, 6년 만에 화제가 되살아난다

의 도입으로 휴식과 리눅스, 많은 개발자와 커뮤니티의 일부가 좋은 길을 보았습니다. Linux에서 앞서 나갈 뿐만 아니라 다른 프로그래밍 언어를 구현하기 위한 다양한 "아이디어"가 등장했습니다., C++ 구현 제안은 많은 커널 개발자들 사이에서 다시 한 번 논쟁을 불러일으켰고 심지어 Linus Torvalds조차도 가능한 가장 수동적이고 이해하기 쉬운 방식으로 Linux가 C++에 준비되지 않은 이유를 다시 한 번 설명합니다(비꼬는 말).

우리는 Rust가 Linux에서 어느 순간부터 받아들여지지 않았다는 것을 기억해야 합니다.Linux의 Rust 프로젝트(Linux용 Rust)는 Linux의 주요 분기에 포함되기 전에 Linus Torvalds가 직접 일련의 개정을 했기 때문에 Linux의 아버지는 부드러운 것이 아니었다는 점을 언급할 가치가 있습니다. 제안된 변경 사항을 수정하고 의견을 제시할 때.

기사를 전개하기에 앞서 기사의 모든 내용은 제가 인터넷에서 접한 정보와 뉴스에 대한 해석을 통해 생성된 개인적인 의견이므로 독자 여러분이 생각하는 해석과 다를 수 있다는 점을 말씀드립니다. 여기 댓글을 통해 공유하고 싶으시다면 시간을 내어 기꺼이 읽어보겠습니다.

지금 C++를 제3의 프로그래밍 언어로 제안하는 경우, 그리고 나는 "물론이지"라고 말해요. 구현은 유사한 일련의 검토를 거쳐야 합니다., Rust의 경우보다 훨씬 더 엄격하지는 않더라도 말이죠. 그리고 이것을 언급하는 사실은 C++과 Linus가 그들의 역사를 가지고 있기 때문입니다. 작지만 이미 오랜 세월이 흘렀습니다.

언급한 이유 C++가 세 번째 Linux 언어인 경우 "아마도" 이는 Linux의 아버지인 Linus Torvalds가 C++를 호의적으로 보지 않았으며 앞으로도 좋아하지 않을 것이기 때문입니다., 왜냐하면 그는 기회가 있을 때마다 C++는 "끔찍한 언어"라고 언급했기 때문입니다.

언급으로r C++ 사용을 고려한 몇 가지 순간 리눅스와 리누스 토발즈(Linus Torvalds)는 자신의 의견 차이뿐만 아니라그러나 C++에 대한 "확실한 증오"는 "단순히 Linux의 옵션이 아닌 이유"를 언급하기 위해 겹쳐집니다. 가장 최근의 것 중 하나는 리뷰 중이었습니다. Rust 구현 이후 Google 게시물에 대한 토론 중, C++ 포함이 제안으로 언급되었습니다.

"여기서의 해결책은 간단합니다. Rust 대신 C++를 사용하면 됩니다."

어느쪽으로 Linus Torvalds는 웃지 않을 수 없었고 그의 반응은 다음과 같았습니다.

"ㅋㅋㅋ". «C++는 C의 어떤 문제도 해결하지 못하고 상황을 더욱 악화시킬 뿐입니다. 정말 쓰레기 언어입니다.

C를 좋아하지 않는 사람들은 실제로 가치 있는 것을 제공하는 언어를 선택하세요. 메모리 안전 및 "그" 언어는 C의 함정 중 일부를 피할 수 있거나 내부 GC "가비지 수집" 지원이 있는 언어와 같이 메모리 관리를 더 쉽게 만들 수 있습니다. "C++는 모든 잘못된 문제를 해결합니다. 'C++로 핵심을 다시 작성하라'고 말하는 사람은 너무 무지해서 그 사실조차 알지 못합니다."

라이너스 Torvalds는 항상 C++를 “낭비”하고 “쓸모없다”고 생각했습니다. "C++는 C 언어의 문제를 전혀 해결할 수 없으며 상황을 더욱 악화시킬 뿐입니다." 토발즈 C 언어를 좋아하지 않는 사람들도 실제로 가치를 더할 수 있는 언어를 찾을 수 있다고 믿습니다. 예를 들어, 메모리에 안전하고 C로 인한 숨겨진 위험(예: Rust)을 피할 수 있는 언어입니다.

C++와 비교하면, Linus는 왜 C가 표준 선택인지 언급했습니다.

“사람들이 C로 인한 위험에 대해 이야기할 때 C가 그토록 강력한 이유 중 일부에 대해서도 이야기합니다. 'C를 사용하면 이 모든 하위 수준 항목을 효율적으로 구현할 수 있습니다'라고 Linus는 말했습니다. 또한 GC는 대부분의 경우 프로그래밍을 단순화하는 데는 좋지만 일반적으로 저수준 시스템 프로그래밍에서는 수행할 수 없는 작업입니다.

실제로 메일링 리스트에는 다음과 같이 언급되어 있습니다. 1992년 어느 시점에서 Linux에서 C++를 사용하려는 시도가 있었습니다. (Linux가 탄생한 지 약 1년 후) 그러나 이는 Torvalds 이후로 "시도"에 불과했습니다. 이 시도에 대해 언급:

끔찍해요. 저를 믿으십시오. C++로 커널 코드를 작성하는 것은 빌어먹을 멍청한 생각입니다.

사실 C++ 컴파일러는 신뢰할 수 없습니다. 1992년에는 상황이 더욱 악화되었지만 몇 가지 근본적인 사실은 변하지 않았습니다.

– C++의 모든 예외 처리 기능이 근본적으로 손상되었습니다. 커널의 경우 "특히" 손상되었습니다.
– 메모리 할당과 같은 것을 뒤에서 숨기는 것을 좋아하는 컴파일러나 언어는 커널에 대한 좋은 선택이 아닙니다.
– "C++라는 쓰레기 없이" C로 객체 지향 코드(파일 시스템 등에 유용함)를 작성할 수 있습니다.

이러한 의견과 기타 많은 의견을 고려해 볼 때, Linus Torvalds가 C++를 끔찍한 언어로 간주하는 이유를 조금 이해할 수 있습니다., 사용되는 언어를 비판하는 것 외에도 «품질이 낮은 프로그래머는 완전하고 완전한 쓰레기를 생성하는 것이 훨씬 더 쉽습니다..» 그리고 그것은 C++는 어느 시점에서 토발즈의 입에서 쓴맛을 풍기던 것 같습니다., 당신의 비판에 따르면 나는 C++를 시도하려는 것 같습니다. 나는 이메일에서 다음과 같이 언급했습니다.:

"C++는 정말 잘못된 디자인 선택으로 이어집니다. STL, Boost 및 기타 완전하고 완전한 쓰레기와 같은 "좋은" 언어 라이브러리 기능을 항상 사용하기 시작합니다. 이는 프로그래밍에 "도움"이 될 수 있지만 원인은 다음과 같습니다.

작동하지 않을 때 끝없는 고통(STL과 특히 Boost가 안정적이고 이식 가능하다고 말하는 사람은 말도 안 되는 소리로 가득 차 있어 재미도 없습니다)
"2년 후 일부 추상화가 그리 효율적이지 않다는 것을 알게 되었지만 이제 모든 코드는 주변의 모든 예쁜 객체 모델에 의존하고 애플리케이션을 다시 작성하지 않고는 수정할 수 없는 비효율적인 추상 프로그래밍 모델입니다."

따라서 출판물의 제목으로 돌아가서 Linus Torvalds가 C++에 대해 품고 있는 증오의 빙산의 일각을 이미 조금 이해했으므로 많은 것을 조사할 필요는 없습니다. Torvalds의 경우 Linux에는 C만으로 충분하므로 다른 언어가 필요하지 않습니다. 그리고 이 기간 내내 C는 그의 작업에 적합한 언어였으며 앞으로도 그럴 것이며 Linus는 그가 좋아하지 않는 프로그래밍 언어, 특히 C++를 계속해서 공격할 것입니다.

그리고 C++가 고려되지 않는 많은 이유 중 하나 Linux의 경우 예외를 허용한다는 것입니다, Rust는 C를 좋아하지 않습니다. 커널 프로그래밍에서는 허용될 수 없습니다. 포착되지 않은 예외는 운영 체제를 비활성화할 수 있으므로 커널이 실패할 것이라고 생각조차 해서는 안 됩니다.

Y Torvalds가 C++를 고려하게 되었다는 가정하에 리눅스에서, 이는 이점 이상의 것일 수 있습니다. 세 번째 이상의 프로그래밍 언어 포함 문제가 될 것이다, 예를 들어 Rust는 현재 몇 가지 문제가 드러나기 시작했습니다., 우리가 이미 출판물에서 언급한 것과 같은 Linux에서의 Rust의 현재 상태.

Linux의 Rust 드라이버
관련 기사 :
Linux의 Rust: 발전, 과제 및 현재 상태

기사에서 언급한 현재 과제 중 하나는 다음과 같습니다. «코드에 대한 더 많은 검토자를 모집합니다. 개발 중"이라는 내용과 함께 GCC 기반 Rust 컴파일러의 진행 속도가 느려졌습니다. ~도Rust에서 커널의 많은 부분을 다시 작성할 가능성은 거의 없습니다. 단기적으로는 모든 종류의 오류, 특히 호환성 문제 없이 작업을 수행할 수 있는 가능성이 매우 낮습니다.

이런 문제라면, Rust에 반영되고 있는 것 C++나 다른 언어로 추가합니다. Linux에 추가할 수 있는 커널 개발에 큰 영향을 미칠 것입니다. 처음에는 두 달에 한 번씩 버전을 받는 것이 아니라 더 긴 버전 간의 개발이 될 것이며 더 많은 개발자와 더 많은 리뷰어가 필요할 것이며 이 모든 것이 더 큰 노력으로 이어질 것입니다.

의심할 여지 없이 C++를 제3의 프로그래밍 언어로 도입하는 접근 방식은 아직 고려되지 않고 있으며 이미 언급했듯이 이에 대한 주요 장애물 중 하나는 Linus Torvalds 자신입니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.