10P by neo 4일전 | favorite | 댓글 2개
  • Linus Torvalds가 6.11 커널을 출시했음
    • 그의 메시지 : "다시 한번 여행 중이고, 내 일반적인 시간대가 아니지만, 여기 비엔나에서는 일요일 오후이고, 6.11이 나왔음."
  • 이번 릴리스의 주요 변경 사항에는 io_uring의 새로운 bind()listen() 작업, 중첩된 하프 락킹 패치, 바쁜 실행 파일에 쓰기 기능, Rust로 블록 드라이버 작성 지원, 블록 레이어에서 원자적 쓰기 작업 지원, 전용 버킷 슬랩 할당자, getrandom()의 vDSO 구현 등이 포함됨

아키텍처별 변경 사항

  • 64비트 Arm 아키텍처는 이제 ACPI 시스템에서 CPU 핫플러그를 지원함. 자세한 내용은 이 문서 커밋 참조
  • X86 커널은 이제 AMD의 SEV-SNP 보안 암호화 가상화 기능을 사용하여 게스트로 실행 가능. 보안 VM 서비스 모듈 이용
  • X86의 "fake EFI 메모리 맵" 기능 제거됨. 이 기능은 부팅 시 허구의 메모리 맵 항목을 만들 수 있게 하지만, 기밀 컴퓨팅 구성과 일치하지 않음
  • x86-64 시스템용 AES-GCM 암호의 새로운 구현. 성능 향상이 항상 환영 받지만, 이 기여는 코드와 작동 방식에 대한 광범위한 문서화로도 주목할 만함. 자세한 내용은 이 커밋 참조
  • PowerPC 40x 플랫폼 지원이 제거됨
  • RISC-V 시스템에 메모리 핫플러깅 지원이 추가됨

코어 커널

  • io_uring 서브시스템은 이제 bind()listen() 구현하는 작업 제공
  • nsfs(네임스페이스) 파일 시스템의 새로운 ioctl() 작업 세트는 PID 네임스페이스 간 프로세스 및 스레드 그룹 ID 변환 수행
  • pidfd 파일 시스템은 pidfd로 표현되는 프로세스의 네임스페이스 파일 디스크립터 획득을 위한 새로운 ioctl() 호출 지원
  • 중첩된 bottom-half 잠금 패치가 병합됨. 이는 주로 실시간 커널의 지연 시간 개선을 위한 것이지만, 다른 사용자에게도 이점이 있을 것
  • 현재 x86-64 시스템에서만 구현된 새로운 시스템 호출인 uretprobe()가 있음. 이것의 역할은 사용자 공간 프로세스에 동적으로 삽입되는 uretprobe(함수 반환 추적점)의 처리를 최적화하는 것
  • function-graph tracer에 대한 단일 사용자 제한이 제거됨
  • 새로운 reserve_mem= 커맨드 라인 매개변수를 사용하여 명명된 메모리 영역을 예약할 수 있음. 이는 pstore 하위 시스템과 함께 새로운 ramoops.mem_name= 매개변수와 함께 사용하기 위한 것

파일 시스템 및 블록 I/O

  • statx() 시스템 호출은 이제 AT_EMPTY_PATH 플래그가 설정된 경우 경로 인수가 null 포인터일 수 있음
  • open_by_handle_at() 시스템 호출은 6.11에서 호출자가 파일에 적절한 액세스 권한이 있다고 커널이 확인할 수 있는 상황에서 이 시스템 호출에 대한 권한 검사가 다소 완화됨
  • 리눅스 커널은 전통적으로 시스템 어딘가의 프로세스에서 사용 중인 실행 파일에 대한 쓰기를 차단했음. 이는 실행 중인 프로그램의 불쾌한 놀라움을 방지하기 위한 것. 커널 개발자들은 몇 년 동안 이 제한을 점차 없애고 있음. 6.11부터는 커널이 더 이상 사용 중인 실행 파일에 대한 쓰기를 방지하지 않음
  • Btrfs 파일 시스템은 rescue= 마운트 옵션에 대해 몇 가지 새로운 값(ignoremetacsums 및 ignoresuperflags)을 인식함. 이들은 사용자 공간 도구에 의해 부분적으로 변환된 파일 시스템(특히 체크섬 변환을 수행하는 파일 시스템)의 복구를 지원하기 위한 것
  • Btrfs가 블록 그룹 회수를 수행하는 방식이 개선되었음. 이는 파일 시스템이 가득 차지 않았음에도 여유 공간을 사용할 수 없는 상황을 피하기 위한 것. 새로운 동적 회수 임계값 작동 방식에 대한 설명은 이 커밋 참조

하드웨어 지원

  • Qualcomm SM8650 카메라 클록 컨트롤러
  • SPD5118을 준수하는 온도 센서, Monolithic Power Systems MP2993 듀얼 루프 디지털 멀티-페이즈 컨트롤러 등 하드웨어 모니터링
  • ChromeOS 임베디드 컨트롤러 센서, ChromeOS EC 기반 충전 컨트롤러 등 기타
  • Realtek RTL8192DU USB 무선 네트워크 어댑터, Renesas Ethernet-TSN 인터페이스, Vining 800 CAN 인터페이스 등 네트워킹
  • Amlogic C3 PLL 클록 컨트롤러, Qualcomm SM7150 디스플레이/카메라/비디오 클록 컨트롤러 등 시계 관련
  • NXP IMX91 핀 컨트롤 유닛, Nuvoton MA35 핀 및 GPIO 컨트롤러 등 GPIO 및 핀 컨트롤
  • Lincoln Technologies lcd197 패널, Ilitek ILI9806E 기반 패널 등 그래픽
  • 산업용 I/O, 입력장치, 미디어, 기타, PHY, 사운드, USB 등 다양한 분야에 새로운 하드웨어 지원 추가

기타

  • 시스템의 장치를 올바른 순서로 가동하도록 하는 새로운 전원 시퀀싱 서브시스템이 등장
  • "sloppy logic analyzer" 모듈은 GPIO 라인 세트를 저예산 논리 분석기로 전환할 수 있음
  • perf 도구에 많은 새로운 기능이 추가되었음
  • 펌웨어 로딩을 위한 작은 Rust 추상화 세트가 병합됨. 아직 Rust로 중요한 드라이버를 작성하는 데 필요한 많은 부분이 있지만, 그 목록은 점점 줄어들고 있음

네트워킹

  • 새로운 net.tcp_rto_min_us sysctl 노브를 사용하여 TCP 소켓의 최소 재전송 시간 초과 조정 가능
  • ethtool 유틸리티는 Net DIM을 사용하는 인터페이스에 대한 인터럽트 구성을 미세 조정할 수 있게 되었음

보안 관련

가상화 및 컨테이너

  • KVM에서 AMD의 SEV-SNP 보안 암호화 가상화 메커니즘에 대한 초기 지원이 추가됨
  • 게스트가 실행되기 전에 게스트의 메모리를 미리 채우기 위한 새로운 KVM ioctl() 호출이 있음

내부 커널 변경

  • 6.11에 병합된 첫 번째 변경 사항은 리누스 토발즈가 추가한 새로운 "런타임 상수" 메커니즘
  • iomap 하위 시스템에 대한 일부 문서화가 마침내 이루어짐
  • 커널을 빌드하는 데 필요한 GNU Make의 최소 버전이 4.0으로 높아짐
  • 6.11에서 118개의 내보낸 기호가 제거되고 464개가 추가되어 순 증가가 346개. 6개의 새로운 kfunc도 있음

GN⁺의 의견

  • 6.11 커널 릴리스에서는 많은 아키텍처 별 개선 사항들과 하드웨어 지원이 확장된 것이 인상적. 특히 64비트 ARM과 x86에서의 CPU 핫플러그와 AMD의 SEV-SNP 지원 등은 보안과 가상화 측면에서 의미가 큼
  • io_uring과 BPF에 새로운 기능들이 추가되면서, 고성능 I/O와 eBPF 프로그래밍에 대한 커널 수준의 지원이 강화되는 추세. 이는 시스템 성능 최적화와 모니터링, 네트워킹 등에 큰 도움이 될 것
  • 전원 시퀀싱이나 sloppy 논리 분석기 같은 새로운 서브시스템과 모듈의 등장은 임베디드나 IoT 환경에서 리눅스 커널의 활용도를 높일 것으로 기대됨
  • 런타임 상수나 문서화 개선 등 커널 내부적인 코드 최적화와 개발 편의성 개선도 꾸준히 이루어지고 있음. 하지만 아직 문서화가 부족한 부분들이 많은 만큼, 커뮤니티 차원의 협력이 더욱 필요해 보임
  • 6.11 병합 윈도우의 후반부에는 여러 아키텍처에 대한 성능 개선과 새로운 하드웨어 지원이 주를 이룸. 특히 x86-64의 AES-GCM 암호 최적화와 RISC-V의 메모리 핫플러깅 지원 등은 주목할 만한 변화
  • KVM에서 AMD의 SEV-SNP에 대한 초기 지원이 추가되는 등 가상화 보안 측면에서도 발전이 있었음. 이는 클라우드와 엣지 컴퓨팅 환경에서 리눅스 커널의 역할이 더욱 확대될 것임을 시사
  • 펌웨어 로딩과 힙 스프레이 방지 등을 위한 Rust 추상화 도입은 시스템 프로그래밍 언어로서 Rust의 가능성을 보여줌. 앞으로 커널 내 Rust 코드의 비중이 점차 늘어날 것으로 예상됨
  • 확장 가능한 스케줄러 클래스 병합이 연기된 것은 아쉽지만, 충분한 검토와 안정화를 위해 불가피한 선택으로 보임. 스케줄러는 시스템 성능에 직결되는 만큼 신중한 접근이 필요

토발즈형 한 200살은 더 살아야겠다

Hacker News 의견
  • 6.10 버전은 여러 주요 버그로 인해 문제가 많았음
    • amdgpu 관련 버그 3개로 비디오 손상, 시스템 중단 및 충돌 발생
    • 6.10.10으로 업데이트 후에도 간헐적으로 절전 모드에서 깨어나지 않음
  • Linux 3.11 버전 이후로 많은 발전이 있었음
  • Torvalds가 여전히 Linux 커널 릴리스 노트를 작성하는 것에 감탄함
  • 기뻐할 만한 소식
    • Rust로 블록 드라이버 작성 지원
    • 블록 레이어에서 원자적 쓰기 작업 지원
  • 6.12 버전에 대한 기대: sched_ext, PREEMPT_RT
  • 새로운 Snapdragon X 지원에 대해 의견을 구함
  • 런타임 상수를 어떻게 구현할지 궁금해함
  • 스마트폰용 GNU/Linux의 시대는 언제 올지 궁금해함
    • Android는 적합하지 않음
    • 스마트폰에 데스크탑처럼 쉽게 배포판을 설치할 수 있기를 바람
  • 이제 Linux 노트북을 RAM에 일시 중지할 수 있는지 궁금해함
  • Ubuntu가 Oracular 베타에 이 기능을 며칠 동안 적용하고 테스트했다고 주장할 날을 기다림