TL;DR

  • FreeLinX 1.0.0은 NetBSD 사용자 공간(userland), musl C 라이브러리와 LLVM 툴체인을 사용하며, 이미지와 저장소의 어떤 파일도 GCC로 빌드하거나 glibc에 링크하지 않는 독립 Linux 배포판임.
  • x86_64용 약 500MB ISO를 제공하며 BIOS와 UEFI를 지원하고, 이미지나 패키지 공개 전 모든 ELF 파일을 검사함.
  • Openbox 데스크톱, Firefox ESR 153, 그래픽 설치 프로그램과 약 400개 패키지를 갖추며, 패키지 관리자는 서명 검증·원자적 설치·충돌 탐지 기능을 제공함.
  • 저장 장치, 무선 네트워크, Bluetooth, 오디오, 그래픽, 입력 장치 및 여러 파일 시스템을 지원하며, 커널은 Linux 6.6.21 LTS임.
  • 최소 2GB RAM과 설치용 디스크 12GB가 필요하며, AMD GCN 이상 및 가상 머신의 OpenGL 가속과 하드웨어 동영상 디코딩은 지원하지 않음.

FreeLinX 1.0.0

  • FreeLinX는 NetBSD 사용자 공간, musl C 라이브러리와 LLVM 툴체인을 사용하는 독립 Linux 배포판임.
  • 이미지와 패키지 저장소의 어떤 파일도 GCC로 빌드하거나 glibc에 링크하지 않으며, 이미지나 패키지를 공개하기 전에 모든 ELF 파일을 검사함.
  • 다운로드 파일은 freelinx-1.0.0-x86_64.iso이며 BIOS와 UEFI를 지원하고 크기는 약 500MB임.
  • SHA256SUMS로 다운로드 파일을 검증할 수 있음.

주요 기능

  • Openbox 데스크톱에 실행기, 창 목록, 시간대 표시 시계가 있는 패널과 마우스 오른쪽 클릭 메뉴가 포함됨.
  • Intel 그래픽(iris, crocus, i915)과 NVIDIA 그래픽(nouveau)에서 OpenGL 가속을 제공함. 그 밖의 환경은 가상 머신을 포함해 실제 KMS 모드와 CPU 렌더링을 사용함.
  • FreeLinX Web은 musl용으로 clang을 사용해 빌드한 Firefox ESR 153을 제공하며, JavaScript, H.264/AAC 동영상(FFmpeg LGPL 빌드), VP9와 AV1을 지원함.
  • 그래픽 설치 프로그램에서 언어, 키보드, 시간대, 호스트 이름, root 비밀번호, 사용자 계정, Wi-Fi와 디스크를 설정할 수 있음.
  • 설치 프로그램은 Limine을 사용해 BIOS·UEFI 시스템을 설치하며, /usr, /etc, /var를 영구적으로 유지하고 /home을 별도 구성함.
  • flxpkg 패키지와 xpkg 1.0은 서명된 저장소에서 약 400개 패키지를 제공함. 패키지에는 NetBSD 사용자 공간, 개발 도구, 게임과 Xorg·Mesa·GTK·브라우저·Bluetooth를 포함한 데스크톱 구성 요소가 포함됨.
  • xpkg upgrade로 데스크톱도 업데이트할 수 있음.
  • 패키지 관리 기능은 다음과 같음.
  • Ed25519 서명 인덱스, 인증서 검증을 포함한 TLS, 인덱스 대조를 통한 다운로드 파일 검증
  • 파일을 임시 위치에 쓴 뒤 이름을 변경하고 데이터베이스 트랜잭션을 한 번 실행하는 원자적 설치
  • 파일 충돌 탐지, 의존성 인식 제거, 자동 제거
  • 편집된 설정 파일을 덮어쓰지 않고 .xpkgnew 파일로 보존
  • 이미지에 포함된 패키지도 등록하며, xpkg list, xpkg verify, xpkg upgrade로 실행 중인 시스템을 확인·관리
  • 로그인 화면은 greetd와 tuigreet을 사용하며, 콘솔 로그인은 getty를 사용함.
  • 네트워크 관리자는 유선 네트워크와 WPA2/WPA3 Wi-Fi를 지원함. 명령줄에서 flxwifi와 flxnet을 사용할 수 있으며, 시간 동기화에는 OpenNTPD를 사용함.
  • Bluetooth는 bluetoothctl을 사용함.

하드웨어 지원

  • 저장 장치: NVMe, SATA/AHCI, USB 대용량 저장 장치(UAS), Realtek 리더기를 포함한 SD/MMC
  • Wi-Fi: Intel(iwlwifi), Qualcomm Atheros(ath9k/10k/11k/12k), Realtek(rtw88/rtw89), MediaTek(MT7921/7922), Broadcom
  • Bluetooth: Intel, Realtek, MediaTek, Qualcomm, Broadcom(USB), UART
  • 오디오: Intel SOF/SoundWire(2018년 이후 노트북), HDA 코덱, AMD ACP, USB 오디오
  • 그래픽: Intel, NVIDIA(nouveau), AMD(amdgpu/radeon), virtio, simpledrm
  • 입력 장치: I2C-HID 터치패드, Wacom, Xbox·PlayStation·Switch 컨트롤러
  • 기타: UVC 웹캠, USB4/Thunderbolt, amd-pstate
  • 파일 시스템: ext4, exFAT, NTFS(ntfs3), FAT, ISO 9660, UDF, squashfs
  • 펌웨어는 zstd 압축된 linux-firmware 20260916 및 Sound Open Firmware 2026.09.1임.

내부 구성

  • 커널: clang/LLD 21.1.8로 빌드한 Linux 6.6.21 LTS
  • libc: musl 1.2.5
  • C++ 런타임: LLVM libc++/libc++abi/libunwind 21.1.8
  • 사용자 공간: NetBSD 10.1; ps, top, free, pgrep, getty, login에는 toybox 사용
  • 초기화 시스템: runit와 mdevd
  • 그래픽: Xorg 21.1.24, Mesa 24.0.9, GTK 3.24, cairo, pango, harfbuzz
  • 인증: Linux-PAM 1.7, doas
  • 시간대 데이터: IANA tzdata 2026d
  • 패키지 관리자: xpkg 1.0
  • Rust 프로그램인 greetd와 tuigreet은 소스에서 빌드한 Rust 표준 라이브러리를 사용하므로, rustup이 GCC로 빌드한 musl 객체 파일은 이미지에 포함되지 않음.

요구 사항

  • x86_64 CPU와 BIOS 또는 UEFI가 필요함.
  • RAM은 최소 2GB, 권장 4GB임. 라이브 시스템과 설치된 OS 이미지가 RAM에서 실행됨.
  • 설치에는 12GB 이상의 디스크 공간이 필요함.

알려진 제한 사항

  • AMD GCN 및 이후 그래픽에서는 OpenGL 가속을 제공하지 않음. radeonsi에는 LLVM으로 빌드한 Mesa가 필요함.
  • 가상 머신에서도 OpenGL 가속을 제공하지 않으며 CPU로 렌더링함.
  • 하드웨어 동영상 디코딩(VA-API)은 지원하지 않아 동영상을 CPU로 디코딩함.
  • QEMU/KVM에서 라이브 부팅, 디스크 설치, 그래픽 로그인, 일반 사용자 계정으로 브라우저 실행, 패키지 사용, 가상 무선 장치를 이용한 Wi-Fi, Bluetooth까지 전 과정을 테스트함.
  • 실제 하드웨어에서 Wi-Fi, Bluetooth, 오디오와 GPU를 사용한 보고를 요청함.
  • 커널과 펌웨어는 xpkg가 아니라 새 이미지 릴리스로 업데이트됨.
  • 라이브 세션은 root 계정으로 로그인함.

문제 보고