9front “THIS WAS SUPPOSED TO BE FUN” 릴리스
요약
Plan 9 계열 운영체제인 9front가 그래픽 API 개편, 원격 디버깅 기능 강화, 하드웨어 드라이버 확장을 포함한 대규모 업데이트를 발표했습니다. affinewarp API 개선을 통한 그래픽 성능 향상과 gdbfs를 통한 원격 디버깅 지원이 주요 특징입니다.
핵심 포인트
- affinewarp API 개편으로 Doom 등 게임 및 이미지 도구의 그래픽 변환 성능 개선
- gdbfs 도입을 통해 원격 gdb를 /proc 형태로 마운트하여 디버깅 가능
- x2APIC 지원, Synaptics 터치패드 및 UPS USB 드라이버 등 하드웨어 지원 확대
- libsec 내 SHA3, SHAKE 등 보안 함수 추가 및 시스템 안정성 강화
Plan 9 계열 운영체제 9front 가 그래픽 변환 API 개편, 원격 디버깅, 새 하드웨어 드라이버를 중심으로 기능을 확장함
개편된 affinewarp API 를 page
, Doom을 비롯한 게임과 이미지 도구에 적용하고, 고정소수점 정밀도와 BGR15 처리 성능을 개선함
원격 gdb
를 /proc
로 마운트하는 gdbfs(4) 와 Synaptics 터치패드 드라이버, UPS용 USB HID 배터리 드라이버, USB 설명자 출력 도구를 추가함
libsec
에 SHA3·SHAKE 및 HMAC 함수 를 넣고 awk
테스트 스위트와 git/commit -p
부분 커밋을 추가했으며, Git packfile 파싱과 여러 보안·메모리 오류를 수정함
PC·Raspberry Pi·MNT Reform·QEMU용 설치 이미지를 제공하며, PC/pc64 커널의 x2APIC 지원 과 gefs·네트워크·USB·메일·Git 전반의 안정성 개선을 포함함
그래픽 변환과 affinewarp API
affinewarp API 를 개편하고 확대·축소와 화면 변환이 필요한 여러 프로그램을 새 API로 전환함
page
는 탐색과 확대·축소에 affinewarp(2)
를 사용함
Doom, eui
, rotzoomer
등 게임과 image/affinewarp
, image/histogram
이 새 API를 사용함
games/doom
은 업스케일링에도 affinewarp(2)
를 적용함
libdraw
와 libmemdraw
의 Warp 고정소수점 정밀도 를 13비트로 높임
libmemdraw
는 BGR15용 최적화 픽셀 루틴과 수평·수직선 특수 처리를 추가하고, 정수 오버플로 검사와 오류 처리를 보강함
libmemlayer
는 memlaffinewarp()
의 목적지·원본 사각형 초기화 오류를 수정함
draw(2)
문서는 mkwarp()
의 새 동작과 affinewarp()
설명을 반영함
원격 디버깅과 개발 도구
새 gdbfs(4) 는 원격 gdb
를 /proc
형태로 마운트하는 파일 서버임
메모리 쓰기의 짧은 버퍼와 인자 파싱 오류 메시지의 off-by-one 문제를 수정함
gdb
프로세스를 파일 서버 프로세스의 note group에서 실행하고 표준 스택 크기를 사용함
매뉴얼에 기본 포트를 추가하고 문구를 다듬음
awk
에 테스트 스위트 를 추가하고, 일치 항목이 없을 때 RLENGTH
가 잘못 설정되는 문제를 고침
컴파일러 cc
는 최대 include 디렉터리 수를 늘리고 불완전 정의 타입의 주소 처리와 클래스·타입 지정자 처리를 수정함
acid
는 중단점 명령이 asm()
출력을 훼손하지 않도록 변경함
커널과 하드웨어 지원
PC/pc64 커널에 x2APIC 지원을 구현함
CPU 0이 x2APIC을 사용할 때 이를 활성화하며 *x2apic=
설정을 지원함
LAPIC·IOAPIC 관리를 배열에서 연결 리스트로 바꾸고 MP 인터럽트 코드를 재작업함
ACPI의 _CRS
메서드를 열거하며 *noenumcrs=
로 비활성화할 수 있음
Synaptics 터치패드용 devmouse 드라이버 를 추가하고 절대 좌표 마우스 추적의 nil 포인터 충돌을 수정함
devkbd
에는 인터럽트가 고장 난 시스템을 위한 *kbdpoll=
부팅 매개변수를 추가함
9boot
는 부팅 전에 PXE 스택을 수동으로 중지하며, bootaa64.efi
를 /arm64
에 설치함
Intel·Realtek·Oxford Semi 장치를 비롯한 여러 네트워크·UART 장치 ID와 지원을 추가함
USB xHCI 초기화, Radeon의 amd64 KADDR
panic, VMX 부동소수점 레지스터 쓰기의 잠재적 버퍼 오버플로를 수정함
USB·전원·네트워크
nusb/battery
에 UPS용 USB HID 배터리 드라이버 를 추가함
stats
가 shr/usb/battery
를 읽고 두 배터리의 용량을 합산할 수 있음
nusb/dump
는 USB 장치 설명자를 사람이 읽을 수 있는 형태 로 출력함
nusb/joy
에 Xbox 360 호환 컨트롤러 2종을 추가하고, nusb/disk
의 USB 엔드포인트 제한 시간을 늘림
이더넷 계층은 링크가 내려갔을 때 전송을 막고, 우회 처리 중 패킷 손실과 RX DMA 정지 및 전송 고착 문제를 수정함
IP 계층은 헤더보다 짧은 패킷을 올바르게 처리하고 전달 전에 전체 헤더가 있는지 확인함
ICMPv6의 잠재적 범위 밖 접근과 ip/tinc
의 재생 방지 필터 오류를 고침
tlssrv
에는 연결 점유를 제한하는 -T
타임아웃 옵션 을 추가함
보안과 암호 라이브러리
libsec
에 SHA3·SHAKE 함수군 과 SHA3·SHA2 BIGMAC HMAC 함수를 추가하고 APE용 libsec
에도 동기화함
blake2s
블록 분할, named curve 검색의 off-by-one, X.509 대체 이름 추가 처리를 수정함
ecdsaverify()
에서 s < n
검사가 실패하던 오타를 바로잡음
libc
는 stat
포맷 과정의 버퍼 오버플로와 문자열 끝을 넘어 읽던 utfwbreak
를 수정하고, privalloc
메모리를 0으로 초기화함
Git packfile 파싱에서 정수 오버플로·부호 확장 을 추가로 검사하고 의심스러운 이름을 거부함
파일 시스템과 Git 작업 흐름
gefs
는 스냅샷과 deadlist의 참조 횟수·충돌 복구·일관성 검사 를 대폭 보강함
불변 스냅샷에 쓰거나 설정을 기록하지 못하도록 막음
충돌 시 deadlist 일관성, 이중 해제, 참조 횟수 누수와 트리 불일치를 수정함
check
가 참조 횟수를 검증하고 종료 시 상태를 출력함
읽기 전용 모드, 짧은 디스크 읽기, 스냅샷 보존 설정과 제어 인터페이스를 정리함
git/commit -p
로 부분 커밋 을 지원하며, 새 파일과 namespace 처리 및 수정된 hunk가 있는 파일만 포함하는 동작을 수정함
Git은 하위 디렉터리·submodule·중복 ref·빈 저장소의 HEAD 처리와 packfile offset 파싱을 개선함
git/pull
은 브랜치를 전환하기 전에 변경 로그를 보여주며, git/fs
는 .git
경로로의 walk를 차단함
disk/qcowfs
는 새 refcount block의 참조 횟수를 1로 설정함
프로그램과 사용자 경험
htmlfmt
는 링크를 기본적으로 각주 형태 로 출력하고 문서 제목을 한 번만 표시함
upas/Mail
도 각주 URL 형식을 사용하며 메시지 작성 과정의 누수를 수정함
rio
와 samterm
은 마우스 chord를 더블 클릭 시작으로 오인하지 않으며, 버튼 1·3 스크롤의 momentum 동작을 수정함
Mega Drive 에뮬레이터는 6버튼·두 번째 포트 컨트롤러, SEGA mapper와 TMSS 를 지원함
Game Boy 에뮬레이터는 save state에 SRAM을 함께 저장함
astro
는 3자를 넘는 시간대 이름을 지원하고 Egypt DST 시간대 이름을 수정함
mothra
, patch
, Mail
, zuke
등에서 파일 누수, 잘못된 패치 대상, 렌더링 및 표지 이미지 잔상 문제를 수정함
다운로드와 지원 플랫폼
PC용 ISO, Raspberry Pi·MNT Reform용 IMG, QEMU용 QCOW2 이미지 를 제공함
pi.img
는 Raspberry Pi 1·2·3에서 사용할 수 있음
pi3.img
는 Raspberry Pi 3·4에서 사용할 수 있음
PC ISO는 CD에 굽거나 USB 매체에 직접 기록할 수 있음
Raspberry Pi와 MNT Reform 이미지는 SD 카드에 직접 기록함
배포 파일과 체크섬은 9front ISO 미러 에서 확인할 수 있음
소스는 9front Git 저장소 , 릴리스 매뉴얼은 DASH 1 에서 제공함
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기