더 많은 녹
Rust는 우리 모두가 우리를 구원할 것으로 기대하는 언어이며 방금 두 가지 목표를 더 달성했습니다. Chromium 프로젝트는 이를 지원하기로 결정했으며 Rust의 원래 본거지인 Mozilla는 Servo 프로젝트에 활력을 불어넣었습니다.
Linus Torvalds가 오랫동안 C 광팬이었기 때문에 Rust가 Linux에 진출한 것은 그 자체로 놀라운 일입니다. 결과적으로 Linux 커널에 사용할 수 있는 유일한 언어는 C였지만 이제 Rust가 진출하고 있습니다. 이렇게 미약하지만 중요한 이득은 열정적인 얼리 어답터의 손에서 언어가 주류.
이제 Rust가 Chrome과 Edge의 오픈 소스 부분인 Chromium이라는 또 다른 "큰" 프로젝트에 합류했다는 소식이 있습니다. Google 보안 블로그에서는 다음과 같이 말합니다.
"앞으로 Chromium 프로젝트가 Chromium에서 C++의 제3자 Rust 라이브러리 사용을 지원할 것임을 발표하게 되어 기쁘게 생각합니다. 이를 위해 우리는 현재 빌드 시스템에 프로덕션 Rust 도구 체인을 추가하는 것을 적극적으로 추진하고 있습니다. 내년 안에 Chrome 바이너리에 Rust 코드를 포함할 수 있게 될 것입니다. 우리는 천천히 시작하고 준비가 되면 어떤 라이브러리를 고려할 것인지에 대한 명확한 기대치를 설정하고 있습니다."
내가 처음에 말했듯이, Rust는 우리를 구원해주기를 바라는 것입니다. 하지만 정확히 무엇으로부터는:
Rust를 Chromium으로 가져오는 우리의 목표는 개발 속도를 높이기 위해(코드 감소) 두 가지 규칙을 충족하는 더 간단하고(IPC 없음) 더 안전한(전체적으로 덜 복잡한 C++, 샌드박스에 메모리 안전 버그 없음) 방법을 제공하는 것입니다. 작성, 디자인 문서 감소, 보안 검토 감소) Chrome의 보안을 향상(메모리 안전 버그 없이 코드 줄 수 증가, 코드 버그 밀도 감소)합니다. 그리고 우리는 이 목표를 달성하기 위해 타사 Rust 라이브러리를 사용할 수 있다고 믿습니다.
와... 그리고 Rust가 또 다른 언어일 뿐이라고 생각하셨나요? C나 C++를 사용할 때 가장 큰 문제는 메모리 안전성입니다. Google Android 팀의 최근 블로그 게시물을 인용하려면:
"10년 넘게 메모리 안전 취약점은 제품과 업계 전반에 걸쳐 지속적으로 취약점의 65% 이상을 차지했습니다."
같은 게시물에서는 Rust, Kotlin, Java와 같은 메모리 안전 언어가 C/C++를 대체하는 등의 문제가 꾸준히 감소하고 있다고 보고합니다. Android 12는 새로운 구성요소의 핵심 개발을 위해 Rust를 지원합니다. 현재 Android의 Rust 코드에는 메모리 안전 취약점이 없습니다.
그러나 기적의 치료법이 모두 단순한 항해는 아닙니다. 블로그 게시물에서는 C++와 Rust 코드를 연동해야 할 때의 몇 가지 어려움을 간략하게 설명합니다. 양방향 상호 운용성을 허용하면 문제가 발생할 위험이 있습니다. 현재 상호 운용성은 안전한 Rust 코드를 호출하는 C++ 코드에서 이루어집니다. 문제가 발생할 수 있는 방법을 나열한 이 게시물은 상황을 통제하기 위해 도구가 필요하다고 제안하므로 Google은 C++를 Rust에서 더 안전하게 만드는 방법에 대한 실험에 Cubit에 투자하고 있습니다.
두 번째 좋은 소식은 Servo가 다시 한 번 개발 중이라는 것입니다. 기억나지 않으신다면, Servo는 Rust로 작성된 Firefox용 새로운 렌더러로 만들어졌습니다. Mozilla는 코드를 작성하는 것보다 불필요한 관리 계층에 많은 돈을 지불하는 것이 더 중요하다고 결정하면서 프로젝트가 해체되었습니다. 그들이 Rust를 일반 커뮤니티에 넘겨주고 더 많은 선한 일을 할 수 있는 기회를 잃어버린 것도 같은 시기였습니다. Rust로 작성된 새로운 렌더러는 Firefox가 사용자 기반을 현재 명령하는 아주 작은 비율에서 좀 더 존경할 만한 수준으로 끌어올리는 데 꼭 필요한 것일 수도 있습니다. 나는 Servo의 부활이 Mozilla가 자신의 길을 되찾았다는 표시라고 보고하고 싶지만 그렇지 않습니다. 블로그 게시물은 다음과 같이 말합니다.
"우리는 Servo 프로젝트에 대한 흥미로운 소식을 공유하고 싶습니다. 올해 새로운 외부 자금 덕분에 개발자 팀이 Servo에 적극적으로 작업할 것입니다. 첫 번째 작업은 프로젝트와 주변 커뮤니티를 다시 활성화하는 것입니다. 프로젝트에 대한 새로운 협력자와 후원자를 유치할 수 있습니다."
다른 사람들은 Mozilla보다 Servo를 더 믿는 것 같습니다. 모방의 대부분은 Igalia가 프로젝트에 참여하기 위해 4명에게 비용을 지불했기 때문입니다. 왜? Mozilla만 그랬다면 그들은 오픈 소스 코드를 믿기 때문인 것 같습니다.