본문 바로가기
프로그램개발/IT 트렌드·팁·상식

"코드 10만 줄 삭제" 리눅스 커널 4.18, 더 빠르고 안전해졌다

by 크레도스 2018. 9. 4.

최근 발표된 리눅스 커널 4.18과 이후 나온 4.18.1, 4.18.2, 4.18.3, 4.18.4, 4.18.5는 리눅스 생태계에 큰 변화를 몰고 왔다. 많은 기능 개선과 조정, 버그 수정이 이뤄진 것도 특징이다. 원했던 기능 개선을 확인한 개발자는 깊은 인상을 받았겠지만 최근 변화를 무심코 넘긴 리눅스 사용자도 꽤 많을 것이다. 여기서 새 커널의 주요 특징을 살펴보자.

Credit: Getty Images Bank



코드 정리
무엇보다 4.18 커널에서는 ‘시대에 뒤떨어진’ 코드 약 10만 줄이 사라졌다. 상당한 규모다. 그렇다면 이로 인해 그동안 많은 사람이 좋아하던 기능이 사라졌을까? 아니다. 그럴 확률은 아주 낮다. 큰 ‘덩어리’ 하나와 쓸모 없는 코드가 커널에서 정리되면서 오히려 코드가 깨끗해졌다. 새 커널에 필요한 메모리가 줄어들었고, 더 효율적으로 실행된다. 또 구식 코드를 표적으로 삼는 공격에도 더 효과적으로 대응할 수 있게 된다. 코드가 더 깔끔해졌고 관리도 쉬워졌다.

러스터 제거
앞서 언급했던 ‘큰 코드 덩어리’는 완전히 통합되지 않은 상태에서 커널에 존재했던 러스터(Lustre) 파일 시스템을 가리킨다. 이번 버전에서 이 러스터 파일 시스템이 제거됐다. 이 파일 시스템이 제거된 이유는 커널에 계속 유지할 정도로 빠르게 발전하고 있지 않기 때문이다. 러스터는 클러스터 컴퓨팅에 사용되는 분산형 파일 시스템이다. '러스터'라는 용어 자체가 리눅스(Linux)와 클러스터(Cluster)의 조합이다. 그러나 아직은 불완전하고 미성숙한 상태다. 앞으로 꾸준히 개선돼 커널 트리에 연결할 준비가 되면, 다음 릴리스에 재도입될 가능성도 있다.

BPF 도입
또 다른 흥미로운 기능은 BPF(Berkeley Packet Filter)다. tcpdump 등 다른 도구의 패킷 필터링 기능에서 출발한 것으로 리눅스 4.18에 처음 도입됐다. 앞으로 iptables와 nftables를 대체할 예정이다. 또 성능에 영향을 주지 않으면서, 네트워크 보안, 로드 밸런싱, 성능 모니터링 등 리눅스의 몇몇 기능을 확장한다. BPF는 네트워킹과 보안 측면에서 아주 큰 변화이다. BPF는 iptables 규칙을 고유의 규칙 형식으로 쉽게 변환하는 방법을 제공한다. 필터링 규칙에도 유연성을 제공한다(어쩌면 네트워크 인터페이스 그 자체에서도). 그리고 네트워크 스택을 현대화하고, 여기에 다시 활력을 불어넣을 것으로 기대된다.

스펙 파일 시스템 암호화
4.18에서 블록 장치 수준이 아닌 파일 시스템 수준에서 작동할 FSCRYPT는 스펙128/스펙256(Speck128/Speck256) 암호화 알고리즘을 지원한다. 이에 따라 스펙을 파일 시스템 암호화 방식으로 선택할 수 있게 됐다. 그러나 ‘논란’도 있다. 스펙은 NSA(National Security Agency)가 개발했는데, 디자인 구성 요소 중 일부를 공유하지 않을 가능성이 있다. 이 때문에 일부에서는 사용하지 않겠지만, 로우 엔드 안드로이드 장치에서는 유일한 암호화 방법이다. 결국 중요한 역할을 할 수도 있다는 의미이다.

향상된 그래픽
4.18 커널은 향상된 오픈소스 그래픽 드라이버를 제공한다. AMDGPU(최신 AMD 라데온 그래픽 카드용 오픈 소스 그래픽 드라이버)에는 향후 나올 베가 20 GPU 그래픽 카드용 코드가 포함돼 있으며, 인텔 카비레이크(Kabylake) G 프로세서에서 사용할 수 있는 라데온 그래픽인 베가 M 하드웨어를 지원한다. 또 베가M과 엔비디아 볼타 GV100 하드웨어에 대한 하이퍼-V 지원 기능도 개선됐다. 이런 변화 덕분에 빠른 그래픽 성능을 지원할 것으로 기대된다.

사운드 칩 개선
4.18에서는 사운드 칩 관련 기능과 지원도 크게 향상됐다. 예를 들어 일부 크리에이티브 랩스(Creative Labs) CA0132 장치, HP 스펙터(Spectre) x360 노트북 컴퓨터 오디오, 리얼테크(Realtek) 칩과 미디어테크(MediaTek) 컨트롤러에 대한 지원이 강화됐다.

스팀 컨트롤러 드라이버
게임을 즐기는 사용자에게 희소식이다. 스팀(Steam) 컨트롤러 드라이버를 리버스 엔지니어링해 기기를 일반 HID(Human Interface 또는 Input Device)로 작동하도록 한 것이다. 이에 따라 스팀 클라이언트나 컨트롤러 드라이버를 별도로 설치할 필요가 없어졌다. 또한, USB나 무선으로 연결된 게임 패드가 가상 마우스, 터치패드, 키패드로 작동하며, 스팀 컨트롤러에 어떤 영향도 초래되지 않는다.

원문보기: 
http://www.ciokorea.com/news/39445#csidx8c4a32b8b28f42e8f365a73c143d4b3