Home > 열린마당 > 공개SW 소식

공개SW 소식

2021.03.30

©ZDNet Korea /임유경 기자 

 

오픈소스 운영체제 리눅스에 모질라가 만든 프로그래밍 언어인 러스트를 접목하려는 시도가 이어지고 있다. 리눅스 커널의 취약점은 메모리 안전성과 관련된 것이 많은데, 안전성 높은 메모리 관리가 특장점인 러스트가 도움이 될 수 있다는 기대가 반영된 흐름이다.

 

근시일 내에 리눅스 커널이 C언어에서 러스트로 포팅될 가능성은 낮지만, 드라이버나 사용자공간에서 작동하는 프로그램부터 러스트를 접목하려는 시도가 이어지다 보면 커널까지 확산되는 날이 올 것이란 기대가 높아지고 있다.

최근 미국 지디넷은 리눅스 개발자 커뮤니티 동향과 리눅스 창시자 리누스 토발즈와의 인터뷰 등을 종합해 "느리지만 분명히 러스트가 리눅스 안으로 들어가고 있다"고 분석한 기사(☞원문 링크)를 게시했다.

 

미국 지디넷은 먼저 리눅스 안으로 러스트를 들여오려는 다양한 시도를 소개했다.

 

지난해 '리눅스 플러머스 컨퍼런스'에서 구글 엔지니어 닉 디소니어스는 러스트를 리눅스 인라인 코드 언어로 사용하는 방안에 대한 진지한 논의를 제안했다. 그는 컴퍼일러 기반구조인 LLVM과 C언어 컴파일러 프론트엔드 클랭(Clang)에 기여한 인물로도 잘 알려진 개발자다.

 

아마존웹서비스(AWS)는 최근 컨테이너에 최적화된 리눅스 배포판인 '보틀로켓'을 공개했는데, 보틀로켓에는 상당한 양의 러스트 코드가 포함돼 있기도 하다.

 

러스트를 개발한 모질라 재단의 디렉터이자 리눅스 배포판 데비안 개발에 기여하고 있는 실베스트리 레드루는 LLVM과 클랭을 이용해, 리눅스에서 작동하는 러스트 버전의 '코어유틸'을 만들기도 했다. 코어유틸은 GNU 셸 핵심 유틸리티다.  레드루는 러스트 버전 코어유틸로 리눅스를 부팅하고 데비안 패키지를 실행시키는 데 성공했다. 아직 프로덕트 수준이 아니기 때문에 사용하려면 추가 작업이 필요하지만, 작동에는 문제 없다는 게 지디넷의 설명이다.

 

그렇다면, 리눅스 커널 언어를 C에서 러스트로 바꾸려는 시도는 왜 계속 되는 걸까? 러스트는 소프트웨어의 보안성을 쉽게 높여준다는 점에서 인기를 끌고 있다.

 

AWS 제품 매니저 사마르타 찬드라 셰카르는 러스트가 "스레드 안정성을 보장하고 보안 취약점으로 이어질 수 있는 버퍼 오버플로 같은 메모리 관련 오류 방지하는 데 효과적이다"고 설명했다. 다른 많은 개발자들도 비슷한 의견을 보이고 있다.

 

리눅스 커널은 메모리 안전 문제가 전체 보안에 상당한 영향을 미치는 것으로 알려졌다. 2019년 '리눅스 시큐리티 서밋'에서 알렉스 게이너와 제프리 토마스는 리눅스 커널 취약점의 3분의2는 메모리 안전 이슈에서 비롯된다는 내용의 연구를 발표한 바 있다.

 

이론적으로 러스트의 더 안전한 API를 사용하면, 리눅스 커널 메모리 안전 문제를 해결할 수 있다는 얘기다.

그렇다고 리눅스 러스트 지지자들이 리눅스커널을 러스트로 재작성하자고 주장하는 것은 아니다. 새로 작성하는 코드만이라도 러스트로 만들어 보자는 게 그들의 생각이다.

 

리눅스에서 러스트를 지원하고자 할 때 우려되는 문제도 있다. 커널에서 기존 API 사용하고 아키텍처를 지원하는 문제도 있고, 러스트와 C 사이 애플리케이션 바이너리 인터페이스(ABI)의 호환성을 확보하는 일도 과제다.

(후략)

 

[원본기사 : https://zdnet.co.kr/view/?no=20210330064519]

※ 본 내용은 (주)메가뉴스 (https://zdnet.co.kr/)의 저작권 동의에 의해 공유되고 있습니다.

© 2020 ZDNET, A RED VENTURES COMPANY. ALL RIGHTS RESERVED. 무단전재 및 재배포 금지.

 

 

맨 위로
맨 위로