그것은 보인다 패치 개발 Linux에서 Rust 드라이버 지원을 위해 좋은 속도를 얻었다 글쎄요, 제거된 제안이 발표된 지 한 달이 조금 넘었습니다. 세 번째 버전 이후로 매달 새로운 제안이 전달되고 이제 새로운 제안이 발표되어 이번이 XNUMX번째 판입니다.
Miguel Ojeda가 새로운 릴리스를 제안했습니다. Linux 커널 개발자가 고려해야 할 Rust 장치 드라이버 개발 구성 요소. 이것은 여섯 번째 판이다. 여전히 실험적인 것으로 간주 그러나 그것은 이미 linux-next 브랜치에 포함되어 있으며 드라이버와 모듈을 작성하는 것뿐만 아니라 커널 하위 시스템 위에 추상화 계층을 만드는 작업을 시작할 만큼 충분히 성숙했습니다.
아직 이 발전을 모르는 사람들을 위해, 그들은 다음을 알아야 합니다. Google 및 ISRG에서 자금을 지원합니다. (Internet Security Research Group)은 Let's Encrypt 프로젝트의 창시자이며 인터넷 보안을 강화하기 위한 HTTPS 및 기술 개발을 촉진합니다.
기억해야합니다. 제안된 변경 사항을 통해 Rust를 두 번째 언어로 사용할 수 있습니다. 드라이버 및 커널 모듈을 개발합니다. Rust 지원은 기본적으로 활성화되지 않은 옵션으로 제공되며 Rust가 커널에 필요한 빌드 종속성에 포함되지 않습니다.
Rust를 사용하여 드라이버를 개발하면 메모리 영역을 해제한 후 액세스하거나 null 포인터를 역참조하거나 버퍼 오버플로와 같은 문제 없이 최소한의 노력으로 더 좋고 안전한 드라이버를 만들 수 있습니다.
메모리 안전은 Rust e에서 제공됩니다.컴파일 시 참조를 확인하고 개체 소유권 및 개체 수명(범위)을 추적하고 코드 실행 중 메모리 액세스의 정확성을 평가합니다. Rust는 또한 정수 오버플로 보호를 제공하고, 사용 전에 변수를 초기화해야 하며, 표준 라이브러리의 오류를 더 잘 처리하고, 기본적으로 불변 변수와 참조의 개념을 시행하고, 논리적 오류를 최소화하기 위해 강력한 정적 유형을 제공합니다.
패치의 새 버전에서는 첫 번째 패치에 대한 토론 중 댓글이 계속 삭제되었으며, 초, 세 번째, 쿼터 y 퀸타 패치의 에디션(해당 링크를 남겨두겠습니다).
여섯 번째 제안의 주요 참신함
이 새로운 제안의 도착과 함께 툴킷이 업데이트되었습니다 Rust 1.59.0이 출시되기 전에 alloc 라이브러리의 변형 또한 새 버전의 Rust와 동기화되어 메모리 부족과 같은 오류가 발생할 때 "패닉" 상태의 가능성을 제거합니다.
또 다른 변경 사항은 이제 플랫폼 사양 파일을 제공하는 대신 미리 만들어진 목적지 커널 구성에 따라 동적으로 생성됩니다.
또한 HAVE_RUST 커널 매개변수가 Rust 호환 아키텍처를 활성화하기 위해 추가되었으며 하드웨어 의사 난수 생성기용 Rust 코드에서 사용하기 위해 추상화가 제안되었습니다.
반면에 어셈블러 인서트를 사용하는 기능이 안정화되었습니다. ("feature(global_asm)") 및 커널 빌드 프로세스에서 사용되는 Rust의 호스트 프로그램 생성 지원을 추가했습니다.
다른 변경 사항 중 이 새로운 제안에서 눈에 띄는 것은:
- "Error::" 접두사 없이 오류 코드를 사용하면(예: "return Err(EINVAL)") C에서 오류 코드를 대략적으로 처리할 수 있습니다.
- 기본 C 문자열에 대한 "CString" 유형이 추가되었습니다. 결합된 포맷터 및 버퍼 유형.
- Bool 및 LockInfo 특성을 추가했습니다.
- 스핀락의 단순화된 구현.
최종적으로 그것에 대해 더 많이 알고 싶다면 이 새로운 제안에 대해 자세한 내용을 참조할 수 있습니다. 다음 링크에서.