>  기사  >  기술 주변기기  >  C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

王林
王林앞으로
2023-05-30 21:31:041620검색

C++를 대체하면 Rust가 실제로 모든 것을 다시 작성할 것입니다!

Linux, Google, Amazon Cloud와 같은 주요 제조업체의 선호를 받은 후 최신 속보는

Microsoft가 36,000줄의 Rust 코드로 Windows 커널을 다시 작성했다는 것입니다.

그리고 진행이 꽤 빠르네요. 4월의 스포일러 소식은 2주 후에 Windows 11 내부 프리뷰 버전이 사용되었다는 점입니다.

Microsoft Cloud Azure CTO는 Twitter에서 다음과 같이 신나게 외쳤습니다.

Windows 11 Insider Preview에 참여하면 처음으로 Rust에서 지원하는 Windows 커널을 경험하게 됩니다!

C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

다시 작성된 커널에는 주로 DWriteCore와 Win32 GDI라는 두 개의 프로젝트가 포함되어 있으며 모든 Windows 부팅 테스트를 통과했습니다.

그 중 Win32 GDI는 1980년대 후반에서 1990년대 초반에 작성된 것으로, 30년 이상의 작업 경험이 있는 오래된 코드입니다.

이제 Rust로 대체된 이유는 간단하고 조잡합니다.

Rust 언어는 메모리 안전성이 매우 높으며 원래 커널에 있는 안전하지 않은 서브루틴의 상당수도 다시 작성된 후 사라졌습니다. 동시에 Rust 언어는 더 간결하고 효율적입니다.

공개 정보에 따르면 시간이 지남에 따라 Windows 커널의 Rust 채택이 상당히 확장될 것입니다.

Rust는 주요 제조업체들로부터 사랑을 받을 뿐만 아니라 Stack Overflow 개발자 설문조사에서 수년 연속으로 "가장 인기 있는 프로그래밍 언어"로 선정되었습니다. 최근에는 유닉스 시스템의 기본 도구인 sudo와 su도 Rust로 다시 작성되었습니다.

그런데 조금 놀라운 점은 Rust가 원래 엘리베이터 수리를 위해 발명되었다는 것입니다. ? ?

21층을 오른 후, 나는 새로운 언어를 개발하기로 결심했다

모든 것의 기원은 2006년 어느 날, 그레이던 호어라는 남자가 살던 아파트의 엘리베이터가 또 고장이 났다는 것이다. n번째로 욕을 하면서 21층 집으로 기어가려고 애썼습니다. 그는 엘리베이터 시스템이 왜 그렇게 쉽게 무너졌는지 알 수 없었나요? 그러면 안 됩니다!

대형 공장의 코더인 그레이던 형제는 이 문제를 해결하는 것이 불가능하지는 않다고 생각합니다.

그는 당시 29세였으며 오픈 소스 웹 브라우저 회사인 Mozilla(Firefox를 만든 회사)

에서 파트타임으로 일하고 있었습니다. 업계 관계자로서 그는 대부분의 엘리베이터 오류가 실수로 메모리 오류를 쉽게 발생시켜 소프트웨어 충돌을 일으키는 프로그래밍 언어로 인해 발생한다는 것을 알고 있습니다.

당시 엘리베이터 소프트웨어는 C나 C++ 언어로 작성되는 경우가 많았습니다.

컴팩트하고 속도가 장점이지만 문제는 메모리 오류가 발생하기 쉽고, 시스템 충돌이 발생하며, 심지어 보안 문제까지 발생한다는 것입니다.

그래서 그레이던 형제는 이것저것 하는 대신 계단 오르기를 멈추기 위해 새로운 프로그래밍 언어를 생각해내기로 결정했습니다.

목표는 메모리 오류가 발생하지 않는 언어, 가급적이면 짧고 빠른 언어를 만드는 것입니다.

그래서 Rust 언어가 탄생했습니다.

그리고 Rust라는 이름도 매우 흥미롭습니다.

러스트는 곰팡이와 같은 이름을 가지고 있으며 중국 이름은 식물 녹입니다. Graydon은 "생존을 위해 과도하게 설계되었습니다"라고 말했습니다.

이 곰팡이 생물학적 구조는 완전히 분산되어 있으며 우주에서 단일 실패 지점이 없습니다. 즉, 어떤 부분을 제거해도 생존에 영향을 미치지 않으며 매우 견고합니다.

전체 생활사에서 녹균류는 총 5가지의 생명체를 가지고 있으며 그 중 3개는 이전 형태로 되돌아갈 수 있습니다. 이는 나비가 다시 애벌레로 변해 다시 자랄 수 있다는 사실과 거의 동일합니다.

게다가 Rust 곰팡이는 여러 호스트에 기생할 수 있는데, 이는 Rust 언어가 언어 간 상호 운용성을 강조한다는 것을 반영합니다.

ΔRust가 있는 식물(암호 공포증이 있는 분들은 죄송합니다!)C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

Rust는 수년간의 단독 개발 끝에 2009년 Mozilla 연구소의 지원을 받아 2010년에 프로젝트가 발표되었습니다.

개발 과정에서 Rust는 매우 활발한 커뮤니티를 구축했습니다. 모든 개발자는 이 프로젝트에 버그를 직접 보고하거나 소스 코드에 직접 기여할 수 있습니다.

2015년 5월 Rust 버전 1.0이 공식적으로 출시되었습니다.

Rust는 단 1년 만에 수많은 팬을 확보했습니다. 2016년부터 Stack Overflow 개발자 설문조사에서 7년 연속 '가장 인기 있는 프로그래밍 언어'

로 평가되었습니다.

계속 1위를 유지하는 장점은 첫째, 빠른 실행 속도, 둘째, 높은 메모리 활용도, 셋째, 세그폴트 방지입니다. 간단히 말하면 일부 부분에서 C/C++를 대체할 수 있는 강력한 도구입니다. 그래서 코드계에는 러스트를 파쿠르에 비유하는 말이 있습니다. 위험도가 높은 동작을 할 수는 있지만 자신을 다치게 하는 것은 쉽지 않습니다.

이에 비해 C++는 불타는 전기톱을 가지고 노는 것처럼 보일 수 있습니다.

그리고 Rust를 개발한 덕분에 Graydon 형제도 한 전투에서 유명해졌습니다.

향후 몇 년 동안 그는 Swift 개발에도 참여했습니다.

이것도 흥미로운 이야기입니다. 저는 팀장보다는 일선 개발을 더 좋아하는 것 같아요.

한때 그는 "러스트 팀을 떠난 이유"에 대해 2013년경 개인적인 감정생활이 큰 타격(이혼)을 겪었고 그로 인해 러스트 팀을 책임질 힘이 별로 없었다고 말한 적이 있습니다. Mozilla에서는 서두르지 말고 프로젝트를 시작한 다음 직장을 그만 두십시오.

2016년 초까지 그는 Apple 팀으로부터 Swift 개발을 도울 프로그래머를 찾고 있다는 전화를 받았습니다. "비리더십 직책이었고 저는 그것을 선호했습니다."

안전에 의지하여 주요 제조업체의 사랑을 받았습니다

그러나 여기에서 Rust의 전설적인 이야기는 절반만 전해지고 있습니다.

"높은 안전성"이라는 본래 의도로 최근 몇 년간 대형 제조업체들 사이에서 점점 인기가 높아지고 있습니다.

Windows뿐만 아니라 Linux, Android 등 주류 시스템도 Rust를 채택했습니다. Amazon Cloud, Microsoft, Google 및 Rust의 관계는 항상 좋았습니다.

이에 대한 주된 이유는 C/C++가 실제로 메모리 안전성에 좋지 않기 때문일 수 있습니다.

예를 들어, Microsoft는 몇 년 전에 Rust에 큰 관심을 보였습니다. 그들은 제품 출시 전에 메모리 안전 취약점을 제거하는 좋은 방법이라고 생각했습니다.

2019년 마이크로소프트는 자사 제품에서 CVE가 공개한 취약점 중 70%가 C/C++ 사용으로 인한 메모리 보안 취약점 때문이라고 인정했습니다.

Rust 툴 체인은 코드의 잠재적인 취약점을 찾아내는 데 중점을 두어 코드가 공격받을 가능성을 이상적으로 줄입니다.

한편, Rust도 Linux 커널에 도입되었습니다.

지난해 Linux Foundation이 주최한 2022 Open Source Summit에서 Linus 씨는 갑자기 Rust가 다음 버전에 추가될 수도 있다고 발표했습니다!

이는 Linux용 Rust의 공식 PR이 Linux 커널의 메인라인에 병합된다는 의미입니다.

(Rust for Linux는 Linux와 Rust의 결합을 요구하는 단체입니다.)

Rust 지원 패치만으로도 7번째 버전이 나왔다는 사실을 아셔야 합니다.

관객들은 소식을 듣자마자 곧바로 박수를 터뜨렸고, 리누스가 모두를 진정시키는 데 시간이 좀 걸렸을 정도였습니다.

몇 달 후 Linux 버전 6.1이 출시되었고 커널에 Rust에 대한 지원이 추가되어 C에 이어 두 번째 공식 언어가 되었습니다.

Google은 실제로 더 일찍 조치를 취했습니다.

2021년 Android 12가 출시되면 Rust 지원을 발표할 예정입니다. 그 이후로 그들은 Android 오픈소스 프로젝트에서 Rust의 사용을 확대해 왔습니다.

그러나 Google의 접근 방식은 C/C++를 Rust로 즉시 대체하는 것이 아니라 Rust로 새로운 코드를 작성하는 것입니다.

공식 데이터를 보면 C와 C++가 여전히 지배적이며 Rust의 비율이 점차 증가하고 있음을 알 수 있습니다.

C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

작년 말 기준으로 Google은

Rust로 작성된 Android 부분에서 보안 취약점이 발견되지 않았다고 밝혔습니다.

이 결과는 Rust가 Android의 가장 일반적인 취약점, 즉 메모리 안전 취약점을 효과적으로 예방할 수 있다는 것을 의미하므로 매우 중요합니다. Google의 22년 데이터에 따르면 메모리 보안 취약점은 모든 유형의 취약점 중에서 매우 높은 비율을 차지하고 있습니다.

C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

C/C++로 작성된 많은 구성 요소(예: Bluetooth, NFC 등)에는 코드 천 줄마다 취약점이 있습니다. 이 비율에 따르면

Rust는 아마도 수백 개의 취약점을 차단했을 것입니다.

그리고 높은 동시성 이점을 기반으로 Android에서 Rust를 사용하면 시스템 보안과 대기 시간의 균형을 더욱 높일 수 있습니다. 일반적으로 일부 보안 조치로 인해 프로그래밍 언어가 느려집니다.

예를 들어, 새로운 UWB 스택을 사용하면 몇 메가바이트의 메모리를 절약하고 기존 프로세스를 통해 실행하여 일부 IPC 지연을 피할 수 있습니다.

Amazon Cloud도 Rust를 매우 좋아합니다.

에너지 절약에도 매우 좋기 때문입니다.

한 연구에서 27개 프로그래밍 언어를 테스트한 결과 C와 Rust가 에너지 활용 측면에서 Java보다 50% 더 효율적이고 Python보다 98% 더 효율적인 것으로 나타났습니다.

하지만 C의 문제는 여러번 언급됐고, 메모리 보안 취약점도 많기 때문에 이를 토대로 또 Rust가 승리합니다.

C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

실제로 주요 제조업체들은 Rust를 선호할 뿐만 아니라 심지어 그것을 좋아하기까지 합니다.

2020년, Rust를 만든 회사인 Mozilla가 대규모 정리해고를 발표했고, Rust 팀도 해고되었으며, Rust의 운명은 큰 불확실성에 빠졌습니다.

이러한 숨겨진 걱정을 피하기 위해 Amazon, Microsoft, Google, Huawei 등 주요 제조업체가 공동으로 Rust 비영리 재단을 설립했습니다. Rust 프로젝트 유지 관리를 지원하기 위해 2년 이내에 약 100만 달러의 예산을 투자하기로 약속합니다.

업계에서 Rust의 업적은 셀 수 없이 많습니다.

최근 두 가지 핵심 Unix 유사 유틸리티인 sudo와 su가 Rust로 다시 작성되었습니다. 이전에 GitHub는 Go 서비스인 Discord도 Rust를 기반으로 하도록 검색 엔진을 변경했습니다...

그러나 Rust 단점도 있습니다. 예를 들어 나중에 배우기가 더 어렵고, 초기 개발 속도가 Go 및 Java보다 훨씬 느립니다.

그래서 Rust는 높은 평가를 받고 있지만 "판매율"은 여전히 ​​상대적으로 평균 수준이며 심지어 "비인기 언어"로 분류될 수도 있습니다.

특히 중국에서는 Rust의 채용이 "불쌍하게 적다"고 할 수 있습니다.

일부 네티즌들은 비관적인 태도를 취하고 있습니다.

C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.

이러한 이유로 Rust도 자체적으로 더욱 최적화하고 있습니다.

공식 팀은 Rust 2024 경로에 따라 학습 문턱을 낮추고 생태학적 연결을 강화하기 위한 노력을 강화할 예정입니다.

그래서 러스트가 앞으로 어떻게 발전할지 기대해볼만 합니다~

위 내용은 C++를 교체하세요! 36,000줄의 Rust 코드가 Windows 커널을 다시 작성합니다. 이 언어는 엘리베이터 수리에 처음 사용되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제